From: Subject: Top Ten Date: Wed, 1 Aug 2007 23:04:03 -0400 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0099_01C7D490.40EC5E00" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3138 This is a multi-part message in MIME format. ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://music.podshow.com/music/lists/NewTopTenListsGenres.php?genre=Rock =EF=BB=BF Top Ten  = =20
3D""=20 3D""=20 3D""=20

 
3D""=20
3D""=20
sort by = Show = all=20 genres
sort by=20 date

Genre Selected: Rock

most played on podcasts: XML Link
#1 First Date by Danko Jones = =20 =20
#2 Waking Up The = Neighbourhood by Planet Of Women = =20 =20
#3 Without You by Black Lab = =20 =20
#4 Learn To Crawl by Black Lab = =20 =20
#5 Baby Hates Me by Danko Jones = =20 =20
#6 SKIMMING by Mike Errico = =20 =20
#7 Throw Me a Line by Kevin Reeves = =20 =20
#8 Somebody by American Heartbreak = =20 =20
#9 The Last of The Superheros = ( of the=20 1970s) by American Heartbreak = =20 =20
#10 Mark My Words by Granian = =20 =20

 

most played on podcasts this month: XML Link
#1 What About = Everything? by Carbon Leaf = =20 =20
#2 Deep In My Bones by Sophia Ramos = =20 =20
#3 Stop freaking me out by The RoundSquare = =20 =20
#4 Free by Quiet Riot = =20 =20
#5 Where Are We Now by Holly Woods = =20 =20
#6 Vertigo by The Distants = =20 =20
#7 Blind Faith by Quiet Riot = =20 =20

 

most played on podcasts this week: XML Link
#1 First Date by Danko Jones = =20 =20
#2 Without You by Black Lab = =20 =20
#3 Waking Up The = Neighbourhood by Planet Of Women = =20 =20
#4 The Last of The Superheros = ( of the=20 1970s) by American Heartbreak = =20 =20
#5 The War Was In Color by Carbon Leaf = =20 =20
#6 Mark My Words by Granian = =20 =20
#7 What About = Everything? by Carbon Leaf = =20 =20
#8 Baby Hates Me by Danko Jones = =20 =20
#9 Learn To Crawl by Black Lab = =20 =20
#10 Somebody by American Heartbreak = =20 =20

 

most=20 played on podcasts today: XML Link
#1 What About = Everything? by Carbon Leaf = =20 =20
#2 Deep In My Bones by Sophia Ramos = =20 =20
#3 Stop freaking me out by The RoundSquare = =20 =20
#4 Free by Quiet Riot = =20 =20
#5 Where Are We Now by Holly Woods = =20 =20
#6 Vertigo by The Distants = =20 =20
#7 Blind Faith by Quiet Riot = =20 =20
 = =20
3D""=20
------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://music.podshow.com/sue_html/images/admin_01.gif R0lGODlhRACwAMQAANTU1Pv7+/7+/vz8/P39/dra2tzc3PPz89bW1uXl5evr6/r6+vf39/b29vT0 9OHh4eDg4Ofn59fX1/X19dvb2+bm5u7u7vHx8dXV1e/v7/n5+fLy8v///wAAAAAAAAAAACH5BAAA AAAALAAAAABEALAAAAX/ICeOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRK rVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGS k5SVlpeYmZqbnJ2enzECAgQDpQGnqKhTowsHCg8FEhgAtLW0UgIHBba8vVG5u73Ct0/AtAgGCRkN CwNXAg7ByAkWDc5YBAbHEAoTzVkCA7UGCgwEAloEG7QUEQzoWwQJtBUXBF0D2gAOGl7itOf81QIT YOCXgsS8IARA0KBCh10WNkwYESIXiQctbsH4kOJFjVo4VvS4EWQWkR9JPYY0iQVlSZUnWV5xuRJm S5lWaMa0ORNnFZ03eeb0SQVoT6E/iU4xOhRpUaVSmCZ1uhRqFKlPqUa1CgVriRAAOw== ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://music.podshow.com/sue_html/images/admin_02.gif R0lGODlhxgCwAOYAALPUUwwNDPr79bXVWTAvLuPuxNHkmouJieXwyc7Nzc3ilKnQPbzYa7jWYsLc e9vqsurz1MXdgcvgjtTloa7SSeDtvu302afPO7DTTrm4uL3ZcGt3Sq3RRlBgJdnoroiOcnh2dqrQ QElHR3WKO1hWVmdkZPb57N7ruPH24sDadsnfiZelb/b/18jmdLvFm+bm5o6kUIShNcXNrNbmpqGy brnXZYaVW/P45qvQQtXooLjWYKvIV7rYaKm1hc/qhNjnqzg+KWBsQFRbQLnNf3R9WikpJsbWmK/a O6fHSbrbXcfehcfeh5+6UrzgVU9MTNjqpXBtbMDdcbjcUu/13mBeXfLy8oB8f+37wpm8OoOBgOHz r3NxcRsfEXx5esDlWKrBa9njutfnqGNgYrTZTEdONT48PENBQbfWXVNRUazRRCQjI7HXRKzVO2tp aBcXFjg2NlxaWrPePR4eHtvb28HhZtftl8/ar5ybm7DCfejxz+33zqHHOabOOQICAgAAAP///yH5 BAAAAAAALAAAAADGALAAAAf/gH+Cg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWm p6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyKJVL3MJGXcHVlBUcHBoTtckYlsHGXMv VcnilQIvzndZJU5vRe1q73JybvNuAfZ9+G5FZnDdcwLjAiKqMufZFjgi3igkwLBdkXdq4smbZy8A vosXA6h508YbQIHizN0BgcaMmTIoFb5hSMAhxHj06t3DSPOiGzNdEoQDOexFhgNt0IgYahJlGZUs Wz6EN5HizJpQ+wQgsEUnz15VEtwJes3JUBFFU65sCS9mRYt9/Khd6ycq1ABl/w7MuYqrYBc4JEig 6Uo07MoiDN+YISMkSJANRBIn3hBECBkgBNTUY9vWrU0SGT7ShaV1WrW8Xb2CPSoYTRAiK2jgGRJB hQQFdWLLjp0jhwEFRvDQ+LCBTJEAlC0HMHNH8+ZUAhIcKCGGCjW8ep14NekkiI0VeFIo8cGdu4Tv 4BWIV2CgvIEcT55oWa/lyQQXKzYAccPWMoE7O4+XSg60DXPnn10jghNwoDaEAy20EMGCDCqxhAqu gffaeOaVN8GFM8wQhgcPrPcAfEKokZZabr1RnH6jzHHHFlC04V9z1JCADRU20KBBgi04kIIDPDao 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 Ow== ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://music.podshow.com/sue_html/images/admin_03.gif R0lGODlh5AE9AMQAAPv7+/7+/vz8/NnZ2fj4+Nzc3Pb29uDg4P39/e/v7+rq6vX19fLy8uXl5d3d 3eHh4dfX19XV1ePj497e3uvr69bW1vDw8OTk5Onp6fr6+vHx8fPz8/T09Nra2tTU1P///yH5BAAA AAAALAAAAADkAT0AAAXo4CeOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRK rVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjY6PkJGS k5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrL zM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxI sKDBgwgTKlzIsKHDhxAjSswUAgA7 ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://music.podshow.com/sue_html/images/admin_05.gif R0lGODlhZwBzAMQAAPv7+/7+/vz8/NnZ2fj4+Nzc3Pb29uDg4P39/e/v7+rq6vX19fLy8uXl5d3d 3eHh4dfX19XV1ePj497e3uvr69bW1vDw8OTk5Onp6fr6+vHx8fPz8/T09Nra2tTU1P///yH5BAAA AAAALAAAAABnAHMAAAXf4CeOZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ikcslsOp/QqHRK rVqv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/i8fs/v+/+AgYKDhIWGh4iJiouMjXIBhguQ hAWShB4FBpOBHpiagp0eDpt/EKECpH0HA52fgBgSnRQIgRwJnQ8CgQIEnQO6u50RwIABoQCDx8md yKDMyx7NnM/O0dDSgMrV2H/a09bb1+Lh5N/cft7Z1Obj7OXq4O7y8Od96d3r9O367/jx/PP81eNz D10+gfsQ9uMTAgA7 ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://music.podshow.com/sue_html/images/admin_06.gif R0lGODlhfQE4AMQAAPv7+/7+/vz8/NnZ2fj4+Nzc3Pb29uDg4P39/e/v7+rq6vX19fLy8uXl5d3d 3eHh4dfX19XV1ePj497e3uvr69bW1vDw8OTk5Onp6fr6+vHx8fPz8/T09Nra2tTU1P///yH5BAAA AAAALAAAAAB9ATgAAAX/oCeOZGmeaKqubOu+cCzPdG3feK7b1TA1CYMgsCsaj8ikcslsOouFp3RK rVqv2Ozow+16v+CweEwum8/otHrNbrvf8Lh8Tn8HBISN4jAQ1f+AgYKDhIWGh4hwARkMe32JkJGS k5SVlpQIAAQaDR2Xn6ChoqOkhQEADBelq6ytrq+XAhawtLW2t7hlBLm8vb6/lgjAw8TFxsfIycrL zM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxI sKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTIKpcybKly5cwY8qcSbOm zZs4c+rcybOnz59AgwodKikEADs= ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://music.podshow.com/sue_html/images/admin_10.gif R0lGODlh7gI7AMQAAOXl5fj4+O/v7/Hx8efn5/v7+1ZWVqampv7+/vz8/P39/dzc3Nra2vPz8/b2 9tnZ2fr6+uDg4NbW1uvr69XV1fLy8vX19eHh4dfX193d3ff39+rq6vT09OLi4tTU1P///yH5BAAA AAAALAAAAADuAjsAAAX/4CeOZGmeaPoVXqu+cCzPdG3feK7vfO//wKBwSCwaj7KWp4BsOoks13NK rVqv2Kx2y+16Y0rmd9yMesjotHrNbrvf8GRLHK/DzPa8fs/v+/9WYYB7eIOGh4iJiotfgoxthY+S k5SVlpKOl1+Rmp2en6ChVJmiV5ylqKmqq6qkrGVKr7KztLWArrZCp7m8vb6/T7jAO7vDxsfIySjC yjTFzdDR0qzM0yrP1tna24vV3CTY3+Lj5GwI3uMJseXs7e5e6h4UCe8kCRQtCgj1/P3+QQkCtHhA r1+CDC04BPjHsKFDGAoaCGhxoSA/BQBaABig4KHHjw0DbOjQYkLHfgoq/7RYQEDDPpAwY5JLICDC gxYOXvJDEM/Dggka9MkcShQaggIVAGBQkkDnxQUtJESYYAGCxaJYs9ZSUCDAAAAMlGRwupNDWA8S FgAQ4OCq1rdwQyGAUGGDTSULcjZE0OBs2rUOIJyMS7iwJJ4BGti9uVKvQ75nlUieTLmy5cuYM2ve zLmz58+gQ4seTbq06dOoU6tezbq169ewfVogyxBy7Nu4c+vezbu379/AgwsfrnnBbJgIFEBoMOEC Awz4iEufTr269evYs2v3LeFBBsBNaXtEkDyB+QLo06tfz769+/fw48ufT7++/fv48+vfz7+///8A BijggAQWaOCB+Zlnnv8+4hnm4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy2 SKIBJRxQDoxrGECjizgydKMIMmJho40m/DgCkCIQ+eOONiBJBIxK1tBkD0/mKGU7SPZoxY5PMlnk BzRq+UaUNICpg5hTlgnMkUMSyaWQB7T5QZtu8hhnj3SWIOSaXQKp5pZ4cnmCl4D6+eeeaPqp5Y1M IqrnkCQU2qehRS7KZ5pY5rlloolGiuSddwpqqJFkmilqJ4h66qWfVqb65ggy1rkqo7BCKiiWntbK Z5ezPtoooYwaeWmjtp466amHBmurrrl+euuvdvbaLLPJjiqtKKVWC6vkq6uq2mq2wMYaaK3Cbgrr t5Nq2q2sueYpLLrDmgqpuEp2OquQpSYrLrTtzrvntPxqYi20N27L46uvuhknu//iOq6k5eKqcLko /JvuxMDei26x8MbwsLvR0oovx+z2K/IljnaKJpwE03mwqreCqvDG4NrJqaLmwlBovaa6HCulijpc 87EpqMuxw/tyGiS9Oo+s9CShouGoEU3LEO+YS1ftUdSgYP1Ck1qfa/XXYIct9thkl2322Winrfba bLft9ttwxy333HTXbffdeOet99589+3334AHLvjghBdu+OGIJ6643SEAADs= ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://music.podshow.com/sue_html/images/admin_07.gif R0lGODlhRAAhA5EAAPv7+9TU1P///wAAACH5BAAAAAAALAAAAABEACEDAAL/lI+pyy0Qopu0WgTl 3fzm0IXi8o3mWJ7qlq7u1L6yEs/2E4H3Xu9v71sBg6chEZU7yozKDrPJSkJVz2mlaoVJsyIsl+H9 0rbiqKZs1qE95DUl7Iav5Wh62S7Gf/VcftZvBTglCEXYZKiEeKRIxBjk6APJ0+bmIHlzaZM5s7lE WQn2CTp2NtrQ+SNqeoDq0iqkuopTKpvwShW7eluUa7pr8otEW8vaOxrcZQyKHMLspFzpzCGdRkwC HYc9p13HfeedB74n3kf+Zx6IPqheyH7ongi/KN9I/2gfiT85bE3Nxk/MnwWBV/RhMqgJISeFngDW IviGYSqHsiBqoahLoiuN/7Aw+uKIy+MxkLxELiMJDKUwNdaKmYymMtnLbDO31ex281vOcDvH9Sz3 81zQdEPXFW139F3SeEvnNa339F7UfFP3sWw562pLi5ZiNvP6rOpBsQnJLjTbUGs/sNPYVsPqUm1A t//kPqQ7EG9BtBPtVtQbke9GwR39ZiQc0vBHxCUVj2ScEvJKuHEpG+B6CvBFxycly+QM0/NX0WFB 0zRtEzVO1TpZ83TtEzZQ2UJpE7VtFDdS3Up5M/XtFDhU4VKJUzVu1XJW5ZhDkW77/C3l5tei12Wu uav1vNv3Ih/7vWz4s+PTYu8euHzf8+oHty/MPr5l6qTeJ5Y/PXtm9Jvxw/+lb4t+ztnXmH9YAYiB gNURGBmDk82nYH0GbhVhgPxp5+BnE6514X4ZjvZhaRvO1eGAI95V4oIn/pWihBC2aGGI0Mko3X8V JggjjjRe9+KO3Pno3YqHAZmekIsR2V+PRj6GJIZLdtakh0+GFqWJSl6ZX46VYWmjlpfduGWWVarI 5YFgfunlcmVSmCaCYXY5potiTnkananZuRqeren5Gp+x+TkboLUJehuhuRm6G6K9Kfobo8E5Ohyk xUl6HKXJrclhnDFaCh6n4nlKHqjmYUqipjqKuh6pKJr6ppltnqnmnKqyyCqatcYKJ6ru6QrfrEPy ep+vRwJboLBMEtsgsg//yspsrsZCqayGz1IZLYjVijhtndneuW2e3e75bZ/h/jluoOUOem6h6R66 bqLtLvpuo/E+Om+k9U56b6X5Xtqsq7e6aeu1Mwpco78E89gvm//CCjCuBu/bKcSfShwqxaMmnOnB P2ocpMWpYlwqx0V6vCvJvYK8qshJokyryk6aHCzLv8JcrMzD0pwszss6a/OxOkvbM7Q/Wzs0tkFT W/TASRessMtSLo0wz1I/fLS2VXN7tbdZg7u1uF2T+7W5YaM7trpls3u2u2nDu7a8bdP7tr1x4zu3 vnXzO3XTUG+8d8d3R/z3xIFXPPjFeWfc98iFf3x4yImv3HjKj7+8eMmV/58cecuTP315zJnP3HnN n98ces6l70z16D6fDrTqQrNONOxGu4607ErbzjTiuEedeu9678438H7TbjXxWBuvNfJcK+8182A7 Lzb0ZEtvNvVoW6829mxr7zb3cHsvN/h0i283+Xj7rrv5gKsvOPuEu284+o4Lrzj8jMsvOf2Q46+5 /pTbbzkAYo5/oBOg5whIOgOKDoGrU6DpHIi630GwdQx83QRjd8HZVbB2GbxdB3M3vw/yToIbLF4J j3fC5KVweStsXguf98LoxXB6M6xeDa93w+zlcHs77F4Pv/fD8AVxfEMsXxHPR8Ikpu+I62Ni+5z4 PijGT4khlOL9qJg/ERgGT4vDs2IAvThALPaPi/UD4wHFWMAUFgAAOw== ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://music.podshow.com/sue_html/images/admin_09.gif R0lGODlhZwAhA5EAAPv7+9TU1P///wAAACH5BAAAAAAALAAAAABnACEDAAL/lIJgy+0Po5y0RhSU 3bx7j2nfSJZbaKbqeiTsC59uTNcNauc0rvcr7wuSgMIih2hMTpDKpoPpjLYy0ioDak1is8UtN+j9 9sLiHLlcO6Nj6vWr7f7N4kI43WS/D+d6Xb4PwgeYJjjIVmj4hpgoR8W4s/iIFym551jJ8ocJobn5 ROl5BBpq0UlqYHqaSroa2ur5uhmLOVtZK3n7mMu4m9hr+DsYDDjcV6x3fJdMtxzX7Pa8Fo02XVYt dv2VzbWd1W31XRUuNR5V7nTelK60rjV6uvQOfyE//9BuhN9Vb3/D379AX51/AKeIKFiKIECBYBT2 Y+gD4hiH9iT6oTjPohmM//A02vBI6BLCCiAhiRwZ7yRKeipX3uOoCiYrma5owrIpCyctnbZ44vKp Cygvob6IAjMqDCkxpcaYInOqDCozqc6oQrMqDSs1rda4YvOqDSw3sd7IgjMrDi05tebYonOrDi47 ue5auvRn925Auvn47sur12BglgcHX/E7ELDekocU32UMA7Iixy4lZ0LckPJKy40KG0aFOWLoiZpR clZxOkXqSaVHri7x2pLnz7FH1P5wO1BrhLk79Ba1u+BvGcEXjr5Y/OHxjckrLv/4PORsw8MTNs8Y 3eT0wdVJZm+8PXB3CuNThl/8PXL6yecfr798veP7zp8/xY95f2b+mvtv9v/P+d9OAfY04E8FBnXg UAkWteBRDSb14FIRNjXhUxVGdeFUGVa14VUdZvXhViF2NeJXJYZ14lgplrXiWS2m9eJaMbY141s1 xnXjXDnW1V5l86H2o2pBstbjZkPCdqRs9eFVpGlJ2vYkblHq1qRrU/p2JXBV8pYlcVsK16V1Xxq3 Y19l/jWmcmcmlqZza2bWJnZvijYnaXHKVydyd+K3p3598venf4ECOKiAhRJ4qIGJIriogo0y+KiD kUI4qYSVUniphZliuKmGnXL4qYehgjiqiKWSeKqJqaK4qoqtsviqi7HCOKuMtdJ4q4254rirjr3y uORheTL3q5nFohnsXsP/QresdMmC1qx2zwr2bHkSWEvYtNhyEqZ30YKnbbfkiWteuN+qdy575h7L 5rruVkvutfFmC2+68LEL57vJbvuSvfTViy+dAdupb7D82jewngUveTCTC9fXsLAJE/swbfNy6y+Q GQu5MZEVU3dxvxMzO7KzAH/MXcgIoyyeyg6fDPO+LkvMMnodI3mzkjEbPLOyJUu7M8M9Q/szuEFD PDS1MucMJdNSOk1lze5BjSXVWkrto9VeYm2k1mJy7aTX3haNLtnqHm2x2OOqXS7aILMtL9z0Lm32 vWBbKTfGdf9L991c5i2y32ACvrLbKRP+ct+Gt4w4zYvbvLfGkXM8uceP/09dOc6Z66x45zw37rPg ZG7eNOlPmx715VmjXjXrV6vetetbwx627F/TjrftY4uupu5r+96250KDTjTvbgIfN/Jzf6683sbL 2XzguP8dfeHCI0280sw/j2f1iW8//eDeO3592uOHHv7o3PO5vp/tA/q+oPETOr+h9SN6v6L5M7q/ o/1D+j9JBZBSA7RUATF1QE0lkFML9FQDQfVAUUWQVBM0VQVRdUFVZZBVG3RVB2H1QVmFkFYjtFUJ cXVCXaWQVyv0VQuBlb7evdBYM0RWDI9Xw3bdEHo5zNcOu9dDgQWRYD9kXxHdd0T4JVF+S6RfE+33 RPxFUX9T5F8V/XdFAP9mUYBbJGAXDfhFBIZRgWNkYBkdeEYIplGCa6RgGy34RgzGUYNz5GAdPXhH EOZRhHskYR9N+EcUBlKFg2RhIV14SBiW723nK14iafhIGy7ycI3U3vAqGTH0TZJxmExaJh25ScgN UWGR1GEoMTdKipXSh6dcXSpJ9kqTtTJ2sQTaLGtXS6PdMne5LFsvz7ZL6v3SbqsUYjGJGEzxDZNv 4Eum+o5JSmfKEJqqlCYOqQlLbMqymdy85DIl903KhdNy1uShNm3ZTex1MnuftKQ6x6k5eHIuneaT Z+nseTp8pq6cQDynLunJSH22TqCv46cRDYpEhCpRoUxkqBMdCkWISlELolSkqBUtisUlFQAAOw== ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://music.podshow.com/podshow.css A { DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #5778ab; = FONT-FAMILY: Arial,Helvetica,sans-serif; TEXT-DECORATION: none } .smallWhite { FONT-SIZE: 9px; COLOR: #ffffff; LINE-HEIGHT: 10px; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif } .textfield { BORDER-RIGHT: #99cc00 1px solid; BORDER-TOP: #99cc00 1px solid; = FONT-SIZE: 9px; BORDER-LEFT: #99cc00 1px solid; COLOR: #333333; = BORDER-BOTTOM: #99cc00 1px solid; FONT-FAMILY: Verdana, Arial, = Helvetica, sans-serif; BACKGROUND-COLOR: #cccccc } .Listfield { BORDER-RIGHT: #99cc00 1px solid; BORDER-TOP: #99cc00 1px solid; = FONT-SIZE: 8px; BORDER-LEFT: #99cc00 1px solid; COLOR: #333333; = BORDER-BOTTOM: #99cc00 1px solid; FONT-FAMILY: Verdana, Arial, = Helvetica, sans-serif; BACKGROUND-COLOR: #cccccc } .formfields { BORDER-RIGHT: #666666 1px solid; BORDER-TOP: #666666 1px solid; = FONT-SIZE: 9px; BORDER-LEFT: #666666 1px solid; BORDER-BOTTOM: #666666 = 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: 10px; = BACKGROUND-COLOR: #97a2ae } .about { FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #999999; FONT-FAMILY: Arial, = Helvetica, sans-serif; TEXT-DECORATION: none } .more_text { PADDING-LEFT: 3px; FONT-SIZE: 9px; COLOR: #999999; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: left } .podcastTitle { FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #99cc00; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif } .bandTitle { FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #99cc00; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif } .podcastListDescription { TABLE-LAYOUT: fixed; FONT-SIZE: 10px; COLOR: #666666; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif; POSITION: static } .bandListDescription { TABLE-LAYOUT: fixed; FONT-SIZE: 10px; COLOR: #666666; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif; POSITION: static } .podcastFeaturedDescription { TABLE-LAYOUT: fixed; PADDING-RIGHT: 2px; FONT-SIZE: 10px; COLOR: = #666666; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; POSITION: = static; TEXT-ALIGN: left } .bandFeaturedDescription { TABLE-LAYOUT: fixed; PADDING-RIGHT: 5px; FONT-SIZE: 10px; COLOR: = #666666; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; POSITION: = static; TEXT-ALIGN: right } .fieldLabels { FONT-SIZE: 9px; MARGIN-BOTTOM: 5px; LINE-HEIGHT: 12px; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif } .tableHeader { FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #99cc00; FONT-FAMILY: Arial, = Helvetica, sans-serif } .bandPageBio { PADDING-RIGHT: 5px; FONT-SIZE: 9px; COLOR: #666666; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif } .playerbuttonBG { BACKGROUND-IMAGE: url(images/index_73.gif); BACKGROUND-REPEAT: = no-repeat } .playerButtonHide { VISIBILITY: hidden } .requiredFields { FONT-SIZE: 9px; COLOR: #ff0000; FONT-FAMILY: Verdana, Arial, Helvetica, = sans-serif } .optionalFields { FONT-SIZE: 9px; COLOR: #666666; FONT-FAMILY: Verdana, Arial, Helvetica, = sans-serif } .searchResults { LEFT: 1px; VISIBILITY: visible; WIDTH: auto; POSITION: relative; = HEIGHT: auto } .unsortedSearch { FONT-SIZE: 9px; LEFT: 134px; WIDTH: 491px; FONT-FAMILY: Verdana, Arial, = Helvetica, sans-serif; POSITION: relative; TOP: 328px; HEIGHT: 247px } .descriptionPageSearch { LEFT: 1px; VISIBILITY: visible; WIDTH: 500px; POSITION: relative; = HEIGHT: auto } .largeBandName { FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #99cc00; FONT-FAMILY: Arial, = Helvetica, sans-serif } .smallSearchBox { LEFT: 1px; VISIBILITY: visible; WIDTH: 200px; POSITION: relative; = HEIGHT: auto } .adSpace { VISIBILITY: visible; OVERFLOW: hidden; WIDTH: 468px; POSITION: = relative; TOP: 25px; HEIGHT: 60px } .adSpaceMessagepage { VISIBILITY: visible; OVERFLOW: hidden; WIDTH: 468px; POSITION: = relative; TOP: 50px; HEIGHT: 60px } .frontBio { PADDING-RIGHT: 2px; FONT-SIZE: 9px; COLOR: #999999; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: right } aTop { FONT-WEIGHT: bold; FONT-SIZE: 9px; COLOR: #99cc00; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: underline } .adSpaceTwo { Z-INDEX: 1; LEFT: 10px; VISIBILITY: visible; OVERFLOW: hidden; WIDTH: = 201px; POSITION: relative; TOP: 1px } IMG { BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium = none; BORDER-BOTTOM: medium none } .podshowPhoto { VISIBILITY: visible; OVERFLOW: hidden; WIDTH: 120px; POSITION: = relative; HEIGHT: 120px } .blockAd { POSITION: relative; TOP: 50px } .heardOn { Z-INDEX: 1; VISIBILITY: visible; POSITION: relative; TOP: -5px } #adSpaceSingle { Z-INDEX: 2; VISIBILITY: visible; OVERFLOW: hidden; WIDTH: 240px; = POSITION: relative; TOP: 25px; HEIGHT: 60px } .sideColumn250Ad { Z-INDEX: 3; RIGHT: 6px; VISIBILITY: visible; POSITION: relative; TOP: = 30px } .even { FONT-SIZE: 10px; BACKGROUND: #f5f5f5; COLOR: #000000; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: center } .odd { FONT-SIZE: 10px; BACKGROUND: #ffffff; COLOR: #000000; FONT-FAMILY: = Verdana, Arial, Helvetica, sans-serif; TEXT-ALIGN: center } .SaleHeader { FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #ffffff; LINE-HEIGHT: 20px; = FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: = #cccccc; TEXT-ALIGN: center } ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://music.podshow.com/music/calendar/calendar-win2k-1.css .calendar { BORDER-RIGHT: #000 2px solid; BORDER-TOP: #fff 2px solid; DISPLAY: = none; FONT-SIZE: 11px; BACKGROUND: #d4d0c8; BORDER-LEFT: #fff 2px solid; = CURSOR: default; COLOR: #000; BORDER-BOTTOM: #000 2px solid; = FONT-FAMILY: tahoma,verdana,sans-serif; POSITION: relative } .calendar TABLE { BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #000 1px solid; FONT-SIZE: = 11px; BACKGROUND: #d4d0c8; BORDER-LEFT: #000 1px solid; CURSOR: default; = COLOR: #000; BORDER-BOTTOM: #fff 1px solid; FONT-FAMILY: = tahoma,verdana,sans-serif } .calendar .button { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #fff 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #fff 1px = solid; PADDING-TOP: 1px; BORDER-BOTTOM: #000 1px solid; TEXT-ALIGN: = center } .calendar .nav { BACKGROUND: url(menuarrow.gif) no-repeat 100% 100% } .calendar THEAD .title { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 1px; FONT-WEIGHT: bold; BACKGROUND: #848078; = PADDING-BOTTOM: 1px; BORDER-LEFT: #000 1px solid; COLOR: #fff; = PADDING-TOP: 1px; BORDER-BOTTOM: #000 1px solid; TEXT-ALIGN: center } .calendar THEAD .headrow { =09 } .calendar THEAD .daynames { =09 } .calendar THEAD .name { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #f4f0e8; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #000 1px solid; = TEXT-ALIGN: center } .calendar THEAD .weekend { COLOR: #669933 } .calendar THEAD .hilite { BORDER-RIGHT: #000 2px solid; PADDING-RIGHT: 0px; BORDER-TOP: #fff 2px = solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: #fff 2px = solid; PADDING-TOP: 0px; BORDER-BOTTOM: #000 2px solid; = BACKGROUND-COLOR: #97a2ae } .calendar THEAD .active { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; BORDER-LEFT: #000 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid; = BACKGROUND-COLOR: #c4c0b8 } .calendar TBODY .day { PADDING-RIGHT: 4px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; WIDTH: 2em; = PADDING-TOP: 2px; TEXT-ALIGN: right } .calendar TBODY .othermonth { FONT-SIZE: 80%; COLOR: #aaa } .calendar TBODY .oweekend { COLOR: #faa } .calendar TABLE .wn { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 3px; PADDING-LEFT: 2px; = BACKGROUND: #f4f0e8; PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .calendar TBODY .rowhilite TD { BACKGROUND: #e4e0d8 } .calendar TBODY .rowhilite TD.wn { BACKGROUND: #d4d0c8 } .calendar TBODY TD.hilite { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #fff 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #fff 1px = solid; PADDING-TOP: 1px; BORDER-BOTTOM: #000 1px solid } .calendar TBODY TD.active { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; BORDER-LEFT: #000 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } .calendar TBODY TD.selected { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: #e4e0d8; = PADDING-BOTTOM: 0px; BORDER-LEFT: #000 1px solid; PADDING-TOP: 2px; = BORDER-BOTTOM: #fff 1px solid } .calendar TBODY TD.weekend { COLOR: #669933 } .calendar TBODY TD.today { FONT-WEIGHT: bold; COLOR: #000000 } .calendar TBODY .disabled { COLOR: #999 } .calendar TBODY .emptycell { VISIBILITY: hidden } .calendar TBODY .emptyrow { DISPLAY: none } .calendar TFOOT .footrow { =09 } .calendar TFOOT .ttip { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 1px; BACKGROUND: #848078; PADDING-BOTTOM: 1px; = BORDER-LEFT: #000 1px solid; COLOR: #fff; PADDING-TOP: 1px; = BORDER-BOTTOM: #000 1px solid; TEXT-ALIGN: center } .calendar TFOOT .hilite { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #fff 1px = solid; PADDING-LEFT: 1px; BACKGROUND: #e4e0d8; PADDING-BOTTOM: 1px; = BORDER-LEFT: #fff 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #000 1px = solid } .calendar TFOOT .active { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; BORDER-LEFT: #000 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #fff 1px solid } .calendar .combo { BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #fff 1px = solid; DISPLAY: none; PADDING-LEFT: 1px; FONT-SIZE: 90%; Z-INDEX: 100; = BACKGROUND: #e4e0d8; LEFT: 0px; PADDING-BOTTOM: 1px; BORDER-LEFT: #fff = 1px solid; WIDTH: 4em; CURSOR: default; PADDING-TOP: 1px; BORDER-BOTTOM: = #000 1px solid; POSITION: absolute; TOP: 0px } .calendar .combo .label { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-ALIGN: center } .calendar .combo .label-IEfix { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-ALIGN: center } .calendar .combo .label-IEfix { WIDTH: 4em } .calendar .combo .active { BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #000 1px = solid; PADDING-LEFT: 0px; BACKGROUND: #c4c0b8; PADDING-BOTTOM: 0px; = BORDER-LEFT: #000 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #fff 1px = solid } .calendar .combo .hilite { BACKGROUND: #048; COLOR: #fea } .calendar TD.time { PADDING-RIGHT: 0px; BORDER-TOP: #000 1px solid; PADDING-LEFT: 0px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px; BACKGROUND-COLOR: #f4f0e8; = TEXT-ALIGN: center } .calendar TD.time .hour { BORDER-RIGHT: #889 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #889 1px = solid; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: #889 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #889 1px = solid; BACKGROUND-COLOR: #fff } .calendar TD.time .minute { BORDER-RIGHT: #889 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #889 1px = solid; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: #889 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #889 1px = solid; BACKGROUND-COLOR: #fff } .calendar TD.time .ampm { BORDER-RIGHT: #889 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #889 1px = solid; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; = BORDER-LEFT: #889 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #889 1px = solid; BACKGROUND-COLOR: #fff } .calendar TD.time .ampm { TEXT-ALIGN: center } .calendar TD.time .colon { PADDING-RIGHT: 2px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .calendar TD.time SPAN.hilite { BORDER-LEFT-COLOR: #000; BORDER-BOTTOM-COLOR: #000; COLOR: #fff; = BORDER-TOP-COLOR: #000; BACKGROUND-COLOR: #766; BORDER-RIGHT-COLOR: #000 } .calendar TD.time SPAN.active { BORDER-LEFT-COLOR: #f00; BORDER-BOTTOM-COLOR: #f00; COLOR: #0f0; = BORDER-TOP-COLOR: #f00; BACKGROUND-COLOR: #000; BORDER-RIGHT-COLOR: #f00 } ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://music.podshow.com/music/calendar/calendar.js /* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo=0A= * -----------------------------------------------------------=0A= *=0A= * The DHTML Calendar, version 1.0 "It is happening again"=0A= *=0A= * Details and latest version at:=0A= * www.dynarch.com/projects/calendar=0A= *=0A= * This script is developed by Dynarch.com. Visit us at www.dynarch.com.=0A= *=0A= * This script is distributed under the GNU Lesser General Public = License.=0A= * Read the entire license text here: = http://www.gnu.org/licenses/lgpl.html=0A= */=0A= =0A= // $Id: calendar.js,v 1.51 2005/03/07 16:44:31 mishoo Exp $=0A= =0A= /** The Calendar object constructor. */=0A= Calendar =3D function (firstDayOfWeek, dateStr, onSelected, onClose) {=0A= // member variables=0A= this.activeDiv =3D null;=0A= this.currentDateEl =3D null;=0A= this.getDateStatus =3D null;=0A= this.getDateToolTip =3D null;=0A= this.getDateText =3D null;=0A= this.timeout =3D null;=0A= this.onSelected =3D onSelected || null;=0A= this.onClose =3D onClose || null;=0A= this.dragging =3D false;=0A= this.hidden =3D false;=0A= this.minYear =3D 1970;=0A= this.maxYear =3D 2050;=0A= this.dateFormat =3D Calendar._TT["DEF_DATE_FORMAT"];=0A= this.ttDateFormat =3D Calendar._TT["TT_DATE_FORMAT"];=0A= this.isPopup =3D true;=0A= this.weekNumbers =3D true;=0A= this.firstDayOfWeek =3D typeof firstDayOfWeek =3D=3D "number" ? = firstDayOfWeek : Calendar._FD; // 0 for Sunday, 1 for Monday, etc.=0A= this.showsOtherMonths =3D false;=0A= this.dateStr =3D dateStr;=0A= this.ar_days =3D null;=0A= this.showsTime =3D false;=0A= this.time24 =3D true;=0A= this.yearStep =3D 2;=0A= this.hiliteToday =3D true;=0A= this.multiple =3D null;=0A= // HTML elements=0A= this.table =3D null;=0A= this.element =3D null;=0A= this.tbody =3D null;=0A= this.firstdayname =3D null;=0A= // Combo boxes=0A= this.monthsCombo =3D null;=0A= this.yearsCombo =3D null;=0A= this.hilitedMonth =3D null;=0A= this.activeMonth =3D null;=0A= this.hilitedYear =3D null;=0A= this.activeYear =3D null;=0A= // Information=0A= this.dateClicked =3D false;=0A= =0A= // one-time initializations=0A= if (typeof Calendar._SDN =3D=3D "undefined") {=0A= // table of short day names=0A= if (typeof Calendar._SDN_len =3D=3D "undefined")=0A= Calendar._SDN_len =3D 3;=0A= var ar =3D new Array();=0A= for (var i =3D 8; i > 0;) {=0A= ar[--i] =3D Calendar._DN[i].substr(0, Calendar._SDN_len);=0A= }=0A= Calendar._SDN =3D ar;=0A= // table of short month names=0A= if (typeof Calendar._SMN_len =3D=3D "undefined")=0A= Calendar._SMN_len =3D 3;=0A= ar =3D new Array();=0A= for (var i =3D 12; i > 0;) {=0A= ar[--i] =3D Calendar._MN[i].substr(0, Calendar._SMN_len);=0A= }=0A= Calendar._SMN =3D ar;=0A= }=0A= };=0A= =0A= // ** constants=0A= =0A= /// "static", needed for event handlers.=0A= Calendar._C =3D null;=0A= =0A= /// detect a special case of "web browser"=0A= Calendar.is_ie =3D ( /msie/i.test(navigator.userAgent) &&=0A= !/opera/i.test(navigator.userAgent) );=0A= =0A= Calendar.is_ie5 =3D ( Calendar.is_ie && /msie = 5\.0/i.test(navigator.userAgent) );=0A= =0A= /// detect Opera browser=0A= Calendar.is_opera =3D /opera/i.test(navigator.userAgent);=0A= =0A= /// detect KHTML-based browsers=0A= Calendar.is_khtml =3D = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);=0A= =0A= // BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a = separate=0A= // library, at some point.=0A= =0A= Calendar.getAbsolutePos =3D function(el) {=0A= var SL =3D 0, ST =3D 0;=0A= var is_div =3D /^div$/i.test(el.tagName);=0A= if (is_div && el.scrollLeft)=0A= SL =3D el.scrollLeft;=0A= if (is_div && el.scrollTop)=0A= ST =3D el.scrollTop;=0A= var r =3D { x: el.offsetLeft - SL, y: el.offsetTop - ST };=0A= if (el.offsetParent) {=0A= var tmp =3D this.getAbsolutePos(el.offsetParent);=0A= r.x +=3D tmp.x;=0A= r.y +=3D tmp.y;=0A= }=0A= return r;=0A= };=0A= =0A= Calendar.isRelated =3D function (el, evt) {=0A= var related =3D evt.relatedTarget;=0A= if (!related) {=0A= var type =3D evt.type;=0A= if (type =3D=3D "mouseover") {=0A= related =3D evt.fromElement;=0A= } else if (type =3D=3D "mouseout") {=0A= related =3D evt.toElement;=0A= }=0A= }=0A= while (related) {=0A= if (related =3D=3D el) {=0A= return true;=0A= }=0A= related =3D related.parentNode;=0A= }=0A= return false;=0A= };=0A= =0A= Calendar.removeClass =3D function(el, className) {=0A= if (!(el && el.className)) {=0A= return;=0A= }=0A= var cls =3D el.className.split(" ");=0A= var ar =3D new Array();=0A= for (var i =3D cls.length; i > 0;) {=0A= if (cls[--i] !=3D className) {=0A= ar[ar.length] =3D cls[i];=0A= }=0A= }=0A= el.className =3D ar.join(" ");=0A= };=0A= =0A= Calendar.addClass =3D function(el, className) {=0A= Calendar.removeClass(el, className);=0A= el.className +=3D " " + className;=0A= };=0A= =0A= // FIXME: the following 2 functions totally suck, are useless and should = be replaced immediately.=0A= Calendar.getElement =3D function(ev) {=0A= var f =3D Calendar.is_ie ? window.event.srcElement : ev.currentTarget;=0A= while (f.nodeType !=3D 1 || /^div$/i.test(f.tagName))=0A= f =3D f.parentNode;=0A= return f;=0A= };=0A= =0A= Calendar.getTargetElement =3D function(ev) {=0A= var f =3D Calendar.is_ie ? window.event.srcElement : ev.target;=0A= while (f.nodeType !=3D 1)=0A= f =3D f.parentNode;=0A= return f;=0A= };=0A= =0A= Calendar.stopEvent =3D function(ev) {=0A= ev || (ev =3D window.event);=0A= if (Calendar.is_ie) {=0A= ev.cancelBubble =3D true;=0A= ev.returnValue =3D false;=0A= } else {=0A= ev.preventDefault();=0A= ev.stopPropagation();=0A= }=0A= return false;=0A= };=0A= =0A= Calendar.addEvent =3D function(el, evname, func) {=0A= if (el.attachEvent) { // IE=0A= el.attachEvent("on" + evname, func);=0A= } else if (el.addEventListener) { // Gecko / W3C=0A= el.addEventListener(evname, func, true);=0A= } else {=0A= el["on" + evname] =3D func;=0A= }=0A= };=0A= =0A= Calendar.removeEvent =3D function(el, evname, func) {=0A= if (el.detachEvent) { // IE=0A= el.detachEvent("on" + evname, func);=0A= } else if (el.removeEventListener) { // Gecko / W3C=0A= el.removeEventListener(evname, func, true);=0A= } else {=0A= el["on" + evname] =3D null;=0A= }=0A= };=0A= =0A= Calendar.createElement =3D function(type, parent) {=0A= var el =3D null;=0A= if (document.createElementNS) {=0A= // use the XHTML namespace; IE won't normally get here unless=0A= // _they_ "fix" the DOM2 implementation.=0A= el =3D document.createElementNS("http://www.w3.org/1999/xhtml", type);=0A= } else {=0A= el =3D document.createElement(type);=0A= }=0A= if (typeof parent !=3D "undefined") {=0A= parent.appendChild(el);=0A= }=0A= return el;=0A= };=0A= =0A= // END: UTILITY FUNCTIONS=0A= =0A= // BEGIN: CALENDAR STATIC FUNCTIONS=0A= =0A= /** Internal -- adds a set of events to make some element behave like a = button. */=0A= Calendar._add_evs =3D function(el) {=0A= with (Calendar) {=0A= addEvent(el, "mouseover", dayMouseOver);=0A= addEvent(el, "mousedown", dayMouseDown);=0A= addEvent(el, "mouseout", dayMouseOut);=0A= if (is_ie) {=0A= addEvent(el, "dblclick", dayMouseDblClick);=0A= el.setAttribute("unselectable", true);=0A= }=0A= }=0A= };=0A= =0A= Calendar.findMonth =3D function(el) {=0A= if (typeof el.month !=3D "undefined") {=0A= return el;=0A= } else if (typeof el.parentNode.month !=3D "undefined") {=0A= return el.parentNode;=0A= }=0A= return null;=0A= };=0A= =0A= Calendar.findYear =3D function(el) {=0A= if (typeof el.year !=3D "undefined") {=0A= return el;=0A= } else if (typeof el.parentNode.year !=3D "undefined") {=0A= return el.parentNode;=0A= }=0A= return null;=0A= };=0A= =0A= Calendar.showMonthsCombo =3D function () {=0A= var cal =3D Calendar._C;=0A= if (!cal) {=0A= return false;=0A= }=0A= var cal =3D cal;=0A= var cd =3D cal.activeDiv;=0A= var mc =3D cal.monthsCombo;=0A= if (cal.hilitedMonth) {=0A= Calendar.removeClass(cal.hilitedMonth, "hilite");=0A= }=0A= if (cal.activeMonth) {=0A= Calendar.removeClass(cal.activeMonth, "active");=0A= }=0A= var mon =3D = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];=0A= Calendar.addClass(mon, "active");=0A= cal.activeMonth =3D mon;=0A= var s =3D mc.style;=0A= s.display =3D "block";=0A= if (cd.navtype < 0)=0A= s.left =3D cd.offsetLeft + "px";=0A= else {=0A= var mcw =3D mc.offsetWidth;=0A= if (typeof mcw =3D=3D "undefined")=0A= // Konqueror brain-dead techniques=0A= mcw =3D 50;=0A= s.left =3D (cd.offsetLeft + cd.offsetWidth - mcw) + "px";=0A= }=0A= s.top =3D (cd.offsetTop + cd.offsetHeight) + "px";=0A= };=0A= =0A= Calendar.showYearsCombo =3D function (fwd) {=0A= var cal =3D Calendar._C;=0A= if (!cal) {=0A= return false;=0A= }=0A= var cal =3D cal;=0A= var cd =3D cal.activeDiv;=0A= var yc =3D cal.yearsCombo;=0A= if (cal.hilitedYear) {=0A= Calendar.removeClass(cal.hilitedYear, "hilite");=0A= }=0A= if (cal.activeYear) {=0A= Calendar.removeClass(cal.activeYear, "active");=0A= }=0A= cal.activeYear =3D null;=0A= var Y =3D cal.date.getFullYear() + (fwd ? 1 : -1);=0A= var yr =3D yc.firstChild;=0A= var show =3D false;=0A= for (var i =3D 12; i > 0; --i) {=0A= if (Y >=3D cal.minYear && Y <=3D cal.maxYear) {=0A= yr.innerHTML =3D Y;=0A= yr.year =3D Y;=0A= yr.style.display =3D "block";=0A= show =3D true;=0A= } else {=0A= yr.style.display =3D "none";=0A= }=0A= yr =3D yr.nextSibling;=0A= Y +=3D fwd ? cal.yearStep : -cal.yearStep;=0A= }=0A= if (show) {=0A= var s =3D yc.style;=0A= s.display =3D "block";=0A= if (cd.navtype < 0)=0A= s.left =3D cd.offsetLeft + "px";=0A= else {=0A= var ycw =3D yc.offsetWidth;=0A= if (typeof ycw =3D=3D "undefined")=0A= // Konqueror brain-dead techniques=0A= ycw =3D 50;=0A= s.left =3D (cd.offsetLeft + cd.offsetWidth - ycw) + "px";=0A= }=0A= s.top =3D (cd.offsetTop + cd.offsetHeight) + "px";=0A= }=0A= };=0A= =0A= // event handlers=0A= =0A= Calendar.tableMouseUp =3D function(ev) {=0A= var cal =3D Calendar._C;=0A= if (!cal) {=0A= return false;=0A= }=0A= if (cal.timeout) {=0A= clearTimeout(cal.timeout);=0A= }=0A= var el =3D cal.activeDiv;=0A= if (!el) {=0A= return false;=0A= }=0A= var target =3D Calendar.getTargetElement(ev);=0A= ev || (ev =3D window.event);=0A= Calendar.removeClass(el, "active");=0A= if (target =3D=3D el || target.parentNode =3D=3D el) {=0A= Calendar.cellClick(el, ev);=0A= }=0A= var mon =3D Calendar.findMonth(target);=0A= var date =3D null;=0A= if (mon) {=0A= date =3D new Date(cal.date);=0A= if (mon.month !=3D date.getMonth()) {=0A= date.setMonth(mon.month);=0A= cal.setDate(date);=0A= cal.dateClicked =3D false;=0A= cal.callHandler();=0A= }=0A= } else {=0A= var year =3D Calendar.findYear(target);=0A= if (year) {=0A= date =3D new Date(cal.date);=0A= if (year.year !=3D date.getFullYear()) {=0A= date.setFullYear(year.year);=0A= cal.setDate(date);=0A= cal.dateClicked =3D false;=0A= cal.callHandler();=0A= }=0A= }=0A= }=0A= with (Calendar) {=0A= removeEvent(document, "mouseup", tableMouseUp);=0A= removeEvent(document, "mouseover", tableMouseOver);=0A= removeEvent(document, "mousemove", tableMouseOver);=0A= cal._hideCombos();=0A= _C =3D null;=0A= return stopEvent(ev);=0A= }=0A= };=0A= =0A= Calendar.tableMouseOver =3D function (ev) {=0A= var cal =3D Calendar._C;=0A= if (!cal) {=0A= return;=0A= }=0A= var el =3D cal.activeDiv;=0A= var target =3D Calendar.getTargetElement(ev);=0A= if (target =3D=3D el || target.parentNode =3D=3D el) {=0A= Calendar.addClass(el, "hilite active");=0A= Calendar.addClass(el.parentNode, "rowhilite");=0A= } else {=0A= if (typeof el.navtype =3D=3D "undefined" || (el.navtype !=3D 50 && = (el.navtype =3D=3D 0 || Math.abs(el.navtype) > 2)))=0A= Calendar.removeClass(el, "active");=0A= Calendar.removeClass(el, "hilite");=0A= Calendar.removeClass(el.parentNode, "rowhilite");=0A= }=0A= ev || (ev =3D window.event);=0A= if (el.navtype =3D=3D 50 && target !=3D el) {=0A= var pos =3D Calendar.getAbsolutePos(el);=0A= var w =3D el.offsetWidth;=0A= var x =3D ev.clientX;=0A= var dx;=0A= var decrease =3D true;=0A= if (x > pos.x + w) {=0A= dx =3D x - pos.x - w;=0A= decrease =3D false;=0A= } else=0A= dx =3D pos.x - x;=0A= =0A= if (dx < 0) dx =3D 0;=0A= var range =3D el._range;=0A= var current =3D el._current;=0A= var count =3D Math.floor(dx / 10) % range.length;=0A= for (var i =3D range.length; --i >=3D 0;)=0A= if (range[i] =3D=3D current)=0A= break;=0A= while (count-- > 0)=0A= if (decrease) {=0A= if (--i < 0)=0A= i =3D range.length - 1;=0A= } else if ( ++i >=3D range.length )=0A= i =3D 0;=0A= var newval =3D range[i];=0A= el.innerHTML =3D newval;=0A= =0A= cal.onUpdateTime();=0A= }=0A= var mon =3D Calendar.findMonth(target);=0A= if (mon) {=0A= if (mon.month !=3D cal.date.getMonth()) {=0A= if (cal.hilitedMonth) {=0A= Calendar.removeClass(cal.hilitedMonth, "hilite");=0A= }=0A= Calendar.addClass(mon, "hilite");=0A= cal.hilitedMonth =3D mon;=0A= } else if (cal.hilitedMonth) {=0A= Calendar.removeClass(cal.hilitedMonth, "hilite");=0A= }=0A= } else {=0A= if (cal.hilitedMonth) {=0A= Calendar.removeClass(cal.hilitedMonth, "hilite");=0A= }=0A= var year =3D Calendar.findYear(target);=0A= if (year) {=0A= if (year.year !=3D cal.date.getFullYear()) {=0A= if (cal.hilitedYear) {=0A= Calendar.removeClass(cal.hilitedYear, "hilite");=0A= }=0A= Calendar.addClass(year, "hilite");=0A= cal.hilitedYear =3D year;=0A= } else if (cal.hilitedYear) {=0A= Calendar.removeClass(cal.hilitedYear, "hilite");=0A= }=0A= } else if (cal.hilitedYear) {=0A= Calendar.removeClass(cal.hilitedYear, "hilite");=0A= }=0A= }=0A= return Calendar.stopEvent(ev);=0A= };=0A= =0A= Calendar.tableMouseDown =3D function (ev) {=0A= if (Calendar.getTargetElement(ev) =3D=3D Calendar.getElement(ev)) {=0A= return Calendar.stopEvent(ev);=0A= }=0A= };=0A= =0A= Calendar.calDragIt =3D function (ev) {=0A= var cal =3D Calendar._C;=0A= if (!(cal && cal.dragging)) {=0A= return false;=0A= }=0A= var posX;=0A= var posY;=0A= if (Calendar.is_ie) {=0A= posY =3D window.event.clientY + document.body.scrollTop;=0A= posX =3D window.event.clientX + document.body.scrollLeft;=0A= } else {=0A= posX =3D ev.pageX;=0A= posY =3D ev.pageY;=0A= }=0A= cal.hideShowCovered();=0A= var st =3D cal.element.style;=0A= st.left =3D (posX - cal.xOffs) + "px";=0A= st.top =3D (posY - cal.yOffs) + "px";=0A= return Calendar.stopEvent(ev);=0A= };=0A= =0A= Calendar.calDragEnd =3D function (ev) {=0A= var cal =3D Calendar._C;=0A= if (!cal) {=0A= return false;=0A= }=0A= cal.dragging =3D false;=0A= with (Calendar) {=0A= removeEvent(document, "mousemove", calDragIt);=0A= removeEvent(document, "mouseup", calDragEnd);=0A= tableMouseUp(ev);=0A= }=0A= cal.hideShowCovered();=0A= };=0A= =0A= Calendar.dayMouseDown =3D function(ev) {=0A= var el =3D Calendar.getElement(ev);=0A= if (el.disabled) {=0A= return false;=0A= }=0A= var cal =3D el.calendar;=0A= cal.activeDiv =3D el;=0A= Calendar._C =3D cal;=0A= if (el.navtype !=3D 300) with (Calendar) {=0A= if (el.navtype =3D=3D 50) {=0A= el._current =3D el.innerHTML;=0A= addEvent(document, "mousemove", tableMouseOver);=0A= } else=0A= addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", = tableMouseOver);=0A= addClass(el, "hilite active");=0A= addEvent(document, "mouseup", tableMouseUp);=0A= } else if (cal.isPopup) {=0A= cal._dragStart(ev);=0A= }=0A= if (el.navtype =3D=3D -1 || el.navtype =3D=3D 1) {=0A= if (cal.timeout) clearTimeout(cal.timeout);=0A= cal.timeout =3D setTimeout("Calendar.showMonthsCombo()", 250);=0A= } else if (el.navtype =3D=3D -2 || el.navtype =3D=3D 2) {=0A= if (cal.timeout) clearTimeout(cal.timeout);=0A= cal.timeout =3D setTimeout((el.navtype > 0) ? = "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);=0A= } else {=0A= cal.timeout =3D null;=0A= }=0A= return Calendar.stopEvent(ev);=0A= };=0A= =0A= Calendar.dayMouseDblClick =3D function(ev) {=0A= Calendar.cellClick(Calendar.getElement(ev), ev || window.event);=0A= if (Calendar.is_ie) {=0A= document.selection.empty();=0A= }=0A= };=0A= =0A= Calendar.dayMouseOver =3D function(ev) {=0A= var el =3D Calendar.getElement(ev);=0A= if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {=0A= return false;=0A= }=0A= if (el.ttip) {=0A= if (el.ttip.substr(0, 1) =3D=3D "_") {=0A= el.ttip =3D el.caldate.print(el.calendar.ttDateFormat) + = el.ttip.substr(1);=0A= }=0A= el.calendar.tooltips.innerHTML =3D el.ttip;=0A= }=0A= if (el.navtype !=3D 300) {=0A= Calendar.addClass(el, "hilite");=0A= if (el.caldate) {=0A= Calendar.addClass(el.parentNode, "rowhilite");=0A= }=0A= }=0A= return Calendar.stopEvent(ev);=0A= };=0A= =0A= Calendar.dayMouseOut =3D function(ev) {=0A= with (Calendar) {=0A= var el =3D getElement(ev);=0A= if (isRelated(el, ev) || _C || el.disabled)=0A= return false;=0A= removeClass(el, "hilite");=0A= if (el.caldate)=0A= removeClass(el.parentNode, "rowhilite");=0A= if (el.calendar)=0A= el.calendar.tooltips.innerHTML =3D _TT["SEL_DATE"];=0A= return stopEvent(ev);=0A= }=0A= };=0A= =0A= /**=0A= * A generic "click" handler :) handles all types of buttons defined in = this=0A= * calendar.=0A= */=0A= Calendar.cellClick =3D function(el, ev) {=0A= var cal =3D el.calendar;=0A= var closing =3D false;=0A= var newdate =3D false;=0A= var date =3D null;=0A= if (typeof el.navtype =3D=3D "undefined") {=0A= if (cal.currentDateEl) {=0A= Calendar.removeClass(cal.currentDateEl, "selected");=0A= Calendar.addClass(el, "selected");=0A= closing =3D (cal.currentDateEl =3D=3D el);=0A= if (!closing) {=0A= cal.currentDateEl =3D el;=0A= }=0A= }=0A= cal.date.setDateOnly(el.caldate);=0A= date =3D cal.date;=0A= var other_month =3D !(cal.dateClicked =3D !el.otherMonth);=0A= if (!other_month && !cal.currentDateEl)=0A= cal._toggleMultipleDate(new Date(date));=0A= else=0A= newdate =3D !el.disabled;=0A= // a date was clicked=0A= if (other_month)=0A= cal._init(cal.firstDayOfWeek, date);=0A= } else {=0A= if (el.navtype =3D=3D 200) {=0A= Calendar.removeClass(el, "hilite");=0A= cal.callCloseHandler();=0A= return;=0A= }=0A= date =3D new Date(cal.date);=0A= if (el.navtype =3D=3D 0)=0A= date.setDateOnly(new Date()); // TODAY=0A= // unless "today" was clicked, we assume no date was clicked so=0A= // the selected handler will know not to close the calenar when=0A= // in single-click mode.=0A= // cal.dateClicked =3D (el.navtype =3D=3D 0);=0A= cal.dateClicked =3D false;=0A= var year =3D date.getFullYear();=0A= var mon =3D date.getMonth();=0A= function setMonth(m) {=0A= var day =3D date.getDate();=0A= var max =3D date.getMonthDays(m);=0A= if (day > max) {=0A= date.setDate(max);=0A= }=0A= date.setMonth(m);=0A= };=0A= switch (el.navtype) {=0A= case 400:=0A= Calendar.removeClass(el, "hilite");=0A= var text =3D Calendar._TT["ABOUT"];=0A= if (typeof text !=3D "undefined") {=0A= text +=3D cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";=0A= } else {=0A= // FIXME: this should be removed as soon as lang files get updated!=0A= text =3D "Help and about box text is not translated into this = language.\n" +=0A= "If you know this language and you feel generous please update\n" +=0A= "the corresponding file in \"lang\" subdir to match = calendar-en.js\n" +=0A= "and send it back to to get it into the = distribution ;-)\n\n" +=0A= "Thank you!\n" +=0A= "http://dynarch.com/mishoo/calendar.epl\n";=0A= }=0A= alert(text);=0A= return;=0A= case -2:=0A= if (year > cal.minYear) {=0A= date.setFullYear(year - 1);=0A= }=0A= break;=0A= case -1:=0A= if (mon > 0) {=0A= setMonth(mon - 1);=0A= } else if (year-- > cal.minYear) {=0A= date.setFullYear(year);=0A= setMonth(11);=0A= }=0A= break;=0A= case 1:=0A= if (mon < 11) {=0A= setMonth(mon + 1);=0A= } else if (year < cal.maxYear) {=0A= date.setFullYear(year + 1);=0A= setMonth(0);=0A= }=0A= break;=0A= case 2:=0A= if (year < cal.maxYear) {=0A= date.setFullYear(year + 1);=0A= }=0A= break;=0A= case 100:=0A= cal.setFirstDayOfWeek(el.fdow);=0A= return;=0A= case 50:=0A= var range =3D el._range;=0A= var current =3D el.innerHTML;=0A= for (var i =3D range.length; --i >=3D 0;)=0A= if (range[i] =3D=3D current)=0A= break;=0A= if (ev && ev.shiftKey) {=0A= if (--i < 0)=0A= i =3D range.length - 1;=0A= } else if ( ++i >=3D range.length )=0A= i =3D 0;=0A= var newval =3D range[i];=0A= el.innerHTML =3D newval;=0A= cal.onUpdateTime();=0A= return;=0A= case 0:=0A= // TODAY will bring us here=0A= if ((typeof cal.getDateStatus =3D=3D "function") &&=0A= cal.getDateStatus(date, date.getFullYear(), date.getMonth(), = date.getDate())) {=0A= return false;=0A= }=0A= break;=0A= }=0A= if (!date.equalsTo(cal.date)) {=0A= cal.setDate(date);=0A= newdate =3D true;=0A= } else if (el.navtype =3D=3D 0)=0A= newdate =3D closing =3D true;=0A= }=0A= if (newdate) {=0A= ev && cal.callHandler();=0A= }=0A= if (closing) {=0A= Calendar.removeClass(el, "hilite");=0A= ev && cal.callCloseHandler();=0A= }=0A= };=0A= =0A= // END: CALENDAR STATIC FUNCTIONS=0A= =0A= // BEGIN: CALENDAR OBJECT FUNCTIONS=0A= =0A= /**=0A= * This function creates the calendar inside the given parent. If _par = is=0A= * null than it creates a popup calendar inside the BODY element. If = _par is=0A= * an element, be it BODY, then it creates a non-popup calendar (still=0A= * hidden). Some properties need to be set before calling this = function.=0A= */=0A= Calendar.prototype.create =3D function (_par) {=0A= var parent =3D null;=0A= if (! _par) {=0A= // default parent is the document body, in which case we create=0A= // a popup calendar.=0A= parent =3D document.getElementsByTagName("body")[0];=0A= this.isPopup =3D true;=0A= } else {=0A= parent =3D _par;=0A= this.isPopup =3D false;=0A= }=0A= this.date =3D this.dateStr ? new Date(this.dateStr) : new Date();=0A= =0A= var table =3D Calendar.createElement("table");=0A= this.table =3D table;=0A= table.cellSpacing =3D 0;=0A= table.cellPadding =3D 0;=0A= table.calendar =3D this;=0A= Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);=0A= =0A= var div =3D Calendar.createElement("div");=0A= this.element =3D div;=0A= div.className =3D "calendar";=0A= if (this.isPopup) {=0A= div.style.position =3D "absolute";=0A= div.style.display =3D "none";=0A= }=0A= div.appendChild(table);=0A= =0A= var thead =3D Calendar.createElement("thead", table);=0A= var cell =3D null;=0A= var row =3D null;=0A= =0A= var cal =3D this;=0A= var hh =3D function (text, cs, navtype) {=0A= cell =3D Calendar.createElement("td", row);=0A= cell.colSpan =3D cs;=0A= cell.className =3D "button";=0A= if (navtype !=3D 0 && Math.abs(navtype) <=3D 2)=0A= cell.className +=3D " nav";=0A= Calendar._add_evs(cell);=0A= cell.calendar =3D cal;=0A= cell.navtype =3D navtype;=0A= cell.innerHTML =3D "
" + text + "
";=0A= return cell;=0A= };=0A= =0A= row =3D Calendar.createElement("tr", thead);=0A= var title_length =3D 6;=0A= (this.isPopup) && --title_length;=0A= (this.weekNumbers) && ++title_length;=0A= =0A= hh("?", 1, 400).ttip =3D Calendar._TT["INFO"];=0A= this.title =3D hh("", title_length, 300);=0A= this.title.className =3D "title";=0A= if (this.isPopup) {=0A= this.title.ttip =3D Calendar._TT["DRAG_TO_MOVE"];=0A= this.title.style.cursor =3D "move";=0A= hh("×", 1, 200).ttip =3D Calendar._TT["CLOSE"];=0A= }=0A= =0A= row =3D Calendar.createElement("tr", thead);=0A= row.className =3D "headrow";=0A= =0A= this._nav_py =3D hh("«", 1, -2);=0A= this._nav_py.ttip =3D Calendar._TT["PREV_YEAR"];=0A= =0A= this._nav_pm =3D hh("‹", 1, -1);=0A= this._nav_pm.ttip =3D Calendar._TT["PREV_MONTH"];=0A= =0A= this._nav_now =3D hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, = 0);=0A= this._nav_now.ttip =3D Calendar._TT["GO_TODAY"];=0A= =0A= this._nav_nm =3D hh("›", 1, 1);=0A= this._nav_nm.ttip =3D Calendar._TT["NEXT_MONTH"];=0A= =0A= this._nav_ny =3D hh("»", 1, 2);=0A= this._nav_ny.ttip =3D Calendar._TT["NEXT_YEAR"];=0A= =0A= // day names=0A= row =3D Calendar.createElement("tr", thead);=0A= row.className =3D "daynames";=0A= if (this.weekNumbers) {=0A= cell =3D Calendar.createElement("td", row);=0A= cell.className =3D "name wn";=0A= cell.innerHTML =3D Calendar._TT["WK"];=0A= }=0A= for (var i =3D 7; i > 0; --i) {=0A= cell =3D Calendar.createElement("td", row);=0A= if (!i) {=0A= cell.navtype =3D 100;=0A= cell.calendar =3D this;=0A= Calendar._add_evs(cell);=0A= }=0A= }=0A= this.firstdayname =3D (this.weekNumbers) ? row.firstChild.nextSibling : = row.firstChild;=0A= this._displayWeekdays();=0A= =0A= var tbody =3D Calendar.createElement("tbody", table);=0A= this.tbody =3D tbody;=0A= =0A= for (i =3D 6; i > 0; --i) {=0A= row =3D Calendar.createElement("tr", tbody);=0A= if (this.weekNumbers) {=0A= cell =3D Calendar.createElement("td", row);=0A= }=0A= for (var j =3D 7; j > 0; --j) {=0A= cell =3D Calendar.createElement("td", row);=0A= cell.calendar =3D this;=0A= Calendar._add_evs(cell);=0A= }=0A= }=0A= =0A= if (this.showsTime) {=0A= row =3D Calendar.createElement("tr", tbody);=0A= row.className =3D "time";=0A= =0A= cell =3D Calendar.createElement("td", row);=0A= cell.className =3D "time";=0A= cell.colSpan =3D 2;=0A= cell.innerHTML =3D Calendar._TT["TIME"] || " ";=0A= =0A= cell =3D Calendar.createElement("td", row);=0A= cell.className =3D "time";=0A= cell.colSpan =3D this.weekNumbers ? 4 : 3;=0A= =0A= (function(){=0A= function makeTimePart(className, init, range_start, range_end) {=0A= var part =3D Calendar.createElement("span", cell);=0A= part.className =3D className;=0A= part.innerHTML =3D init;=0A= part.calendar =3D cal;=0A= part.ttip =3D Calendar._TT["TIME_PART"];=0A= part.navtype =3D 50;=0A= part._range =3D [];=0A= if (typeof range_start !=3D "number")=0A= part._range =3D range_start;=0A= else {=0A= for (var i =3D range_start; i <=3D range_end; ++i) {=0A= var txt;=0A= if (i < 10 && range_end >=3D 10) txt =3D '0' + i;=0A= else txt =3D '' + i;=0A= part._range[part._range.length] =3D txt;=0A= }=0A= }=0A= Calendar._add_evs(part);=0A= return part;=0A= };=0A= var hrs =3D cal.date.getHours();=0A= var mins =3D cal.date.getMinutes();=0A= var t12 =3D !cal.time24;=0A= var pm =3D (hrs > 12);=0A= if (t12 && pm) hrs -=3D 12;=0A= var H =3D makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);=0A= var span =3D Calendar.createElement("span", cell);=0A= span.innerHTML =3D ":";=0A= span.className =3D "colon";=0A= var M =3D makeTimePart("minute", mins, 0, 59);=0A= var AP =3D null;=0A= cell =3D Calendar.createElement("td", row);=0A= cell.className =3D "time";=0A= cell.colSpan =3D 2;=0A= if (t12)=0A= AP =3D makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);=0A= else=0A= cell.innerHTML =3D " ";=0A= =0A= cal.onSetTime =3D function() {=0A= var pm, hrs =3D this.date.getHours(),=0A= mins =3D this.date.getMinutes();=0A= if (t12) {=0A= pm =3D (hrs >=3D 12);=0A= if (pm) hrs -=3D 12;=0A= if (hrs =3D=3D 0) hrs =3D 12;=0A= AP.innerHTML =3D pm ? "pm" : "am";=0A= }=0A= H.innerHTML =3D (hrs < 10) ? ("0" + hrs) : hrs;=0A= M.innerHTML =3D (mins < 10) ? ("0" + mins) : mins;=0A= };=0A= =0A= cal.onUpdateTime =3D function() {=0A= var date =3D this.date;=0A= var h =3D parseInt(H.innerHTML, 10);=0A= if (t12) {=0A= if (/pm/i.test(AP.innerHTML) && h < 12)=0A= h +=3D 12;=0A= else if (/am/i.test(AP.innerHTML) && h =3D=3D 12)=0A= h =3D 0;=0A= }=0A= var d =3D date.getDate();=0A= var m =3D date.getMonth();=0A= var y =3D date.getFullYear();=0A= date.setHours(h);=0A= date.setMinutes(parseInt(M.innerHTML, 10));=0A= date.setFullYear(y);=0A= date.setMonth(m);=0A= date.setDate(d);=0A= this.dateClicked =3D false;=0A= this.callHandler();=0A= };=0A= })();=0A= } else {=0A= this.onSetTime =3D this.onUpdateTime =3D function() {};=0A= }=0A= =0A= var tfoot =3D Calendar.createElement("tfoot", table);=0A= =0A= row =3D Calendar.createElement("tr", tfoot);=0A= row.className =3D "footrow";=0A= =0A= cell =3D hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);=0A= cell.className =3D "ttip";=0A= if (this.isPopup) {=0A= cell.ttip =3D Calendar._TT["DRAG_TO_MOVE"];=0A= cell.style.cursor =3D "move";=0A= }=0A= this.tooltips =3D cell;=0A= =0A= div =3D Calendar.createElement("div", this.element);=0A= this.monthsCombo =3D div;=0A= div.className =3D "combo";=0A= for (i =3D 0; i < Calendar._MN.length; ++i) {=0A= var mn =3D Calendar.createElement("div");=0A= mn.className =3D Calendar.is_ie ? "label-IEfix" : "label";=0A= mn.month =3D i;=0A= mn.innerHTML =3D Calendar._SMN[i];=0A= div.appendChild(mn);=0A= }=0A= =0A= div =3D Calendar.createElement("div", this.element);=0A= this.yearsCombo =3D div;=0A= div.className =3D "combo";=0A= for (i =3D 12; i > 0; --i) {=0A= var yr =3D Calendar.createElement("div");=0A= yr.className =3D Calendar.is_ie ? "label-IEfix" : "label";=0A= div.appendChild(yr);=0A= }=0A= =0A= this._init(this.firstDayOfWeek, this.date);=0A= parent.appendChild(this.element);=0A= };=0A= =0A= /** keyboard navigation, only for popup calendars */=0A= Calendar._keyEvent =3D function(ev) {=0A= var cal =3D window._dynarch_popupCalendar;=0A= if (!cal || cal.multiple)=0A= return false;=0A= (Calendar.is_ie) && (ev =3D window.event);=0A= var act =3D (Calendar.is_ie || ev.type =3D=3D "keypress"),=0A= K =3D ev.keyCode;=0A= if (ev.ctrlKey) {=0A= switch (K) {=0A= case 37: // KEY left=0A= act && Calendar.cellClick(cal._nav_pm);=0A= break;=0A= case 38: // KEY up=0A= act && Calendar.cellClick(cal._nav_py);=0A= break;=0A= case 39: // KEY right=0A= act && Calendar.cellClick(cal._nav_nm);=0A= break;=0A= case 40: // KEY down=0A= act && Calendar.cellClick(cal._nav_ny);=0A= break;=0A= default:=0A= return false;=0A= }=0A= } else switch (K) {=0A= case 32: // KEY space (now)=0A= Calendar.cellClick(cal._nav_now);=0A= break;=0A= case 27: // KEY esc=0A= act && cal.callCloseHandler();=0A= break;=0A= case 37: // KEY left=0A= case 38: // KEY up=0A= case 39: // KEY right=0A= case 40: // KEY down=0A= if (act) {=0A= var prev, x, y, ne, el, step;=0A= prev =3D K =3D=3D 37 || K =3D=3D 38;=0A= step =3D (K =3D=3D 37 || K =3D=3D 39) ? 1 : 7;=0A= function setVars() {=0A= el =3D cal.currentDateEl;=0A= var p =3D el.pos;=0A= x =3D p & 15;=0A= y =3D p >> 4;=0A= ne =3D cal.ar_days[y][x];=0A= };setVars();=0A= function prevMonth() {=0A= var date =3D new Date(cal.date);=0A= date.setDate(date.getDate() - step);=0A= cal.setDate(date);=0A= };=0A= function nextMonth() {=0A= var date =3D new Date(cal.date);=0A= date.setDate(date.getDate() + step);=0A= cal.setDate(date);=0A= };=0A= while (1) {=0A= switch (K) {=0A= case 37: // KEY left=0A= if (--x >=3D 0)=0A= ne =3D cal.ar_days[y][x];=0A= else {=0A= x =3D 6;=0A= K =3D 38;=0A= continue;=0A= }=0A= break;=0A= case 38: // KEY up=0A= if (--y >=3D 0)=0A= ne =3D cal.ar_days[y][x];=0A= else {=0A= prevMonth();=0A= setVars();=0A= }=0A= break;=0A= case 39: // KEY right=0A= if (++x < 7)=0A= ne =3D cal.ar_days[y][x];=0A= else {=0A= x =3D 0;=0A= K =3D 40;=0A= continue;=0A= }=0A= break;=0A= case 40: // KEY down=0A= if (++y < cal.ar_days.length)=0A= ne =3D cal.ar_days[y][x];=0A= else {=0A= nextMonth();=0A= setVars();=0A= }=0A= break;=0A= }=0A= break;=0A= }=0A= if (ne) {=0A= if (!ne.disabled)=0A= Calendar.cellClick(ne);=0A= else if (prev)=0A= prevMonth();=0A= else=0A= nextMonth();=0A= }=0A= }=0A= break;=0A= case 13: // KEY enter=0A= if (act)=0A= Calendar.cellClick(cal.currentDateEl, ev);=0A= break;=0A= default:=0A= return false;=0A= }=0A= return Calendar.stopEvent(ev);=0A= };=0A= =0A= /**=0A= * (RE)Initializes the calendar to the given date and firstDayOfWeek=0A= */=0A= Calendar.prototype._init =3D function (firstDayOfWeek, date) {=0A= var today =3D new Date(),=0A= TY =3D today.getFullYear(),=0A= TM =3D today.getMonth(),=0A= TD =3D today.getDate();=0A= this.table.style.visibility =3D "hidden";=0A= var year =3D date.getFullYear();=0A= if (year < this.minYear) {=0A= year =3D this.minYear;=0A= date.setFullYear(year);=0A= } else if (year > this.maxYear) {=0A= year =3D this.maxYear;=0A= date.setFullYear(year);=0A= }=0A= this.firstDayOfWeek =3D firstDayOfWeek;=0A= this.date =3D new Date(date);=0A= var month =3D date.getMonth();=0A= var mday =3D date.getDate();=0A= var no_days =3D date.getMonthDays();=0A= =0A= // calendar voodoo for computing the first day that would actually be=0A= // displayed in the calendar, even if it's from the previous month.=0A= // WARNING: this is magic. ;-)=0A= date.setDate(1);=0A= var day1 =3D (date.getDay() - this.firstDayOfWeek) % 7;=0A= if (day1 < 0)=0A= day1 +=3D 7;=0A= date.setDate(-day1);=0A= date.setDate(date.getDate() + 1);=0A= =0A= var row =3D this.tbody.firstChild;=0A= var MN =3D Calendar._SMN[month];=0A= var ar_days =3D this.ar_days =3D new Array();=0A= var weekend =3D Calendar._TT["WEEKEND"];=0A= var dates =3D this.multiple ? (this.datesCells =3D {}) : null;=0A= for (var i =3D 0; i < 6; ++i, row =3D row.nextSibling) {=0A= var cell =3D row.firstChild;=0A= if (this.weekNumbers) {=0A= cell.className =3D "day wn";=0A= cell.innerHTML =3D date.getWeekNumber();=0A= cell =3D cell.nextSibling;=0A= }=0A= row.className =3D "daysrow";=0A= var hasdays =3D false, iday, dpos =3D ar_days[i] =3D [];=0A= for (var j =3D 0; j < 7; ++j, cell =3D cell.nextSibling, = date.setDate(iday + 1)) {=0A= iday =3D date.getDate();=0A= var wday =3D date.getDay();=0A= cell.className =3D "day";=0A= cell.pos =3D i << 4 | j;=0A= dpos[j] =3D cell;=0A= var current_month =3D (date.getMonth() =3D=3D month);=0A= if (!current_month) {=0A= if (this.showsOtherMonths) {=0A= cell.className +=3D " othermonth";=0A= cell.otherMonth =3D true;=0A= } else {=0A= cell.className =3D "emptycell";=0A= cell.innerHTML =3D " ";=0A= cell.disabled =3D true;=0A= continue;=0A= }=0A= } else {=0A= cell.otherMonth =3D false;=0A= hasdays =3D true;=0A= }=0A= cell.disabled =3D false;=0A= cell.innerHTML =3D this.getDateText ? this.getDateText(date, iday) : = iday;=0A= if (dates)=0A= dates[date.print("%Y%m%d")] =3D cell;=0A= if (this.getDateStatus) {=0A= var status =3D this.getDateStatus(date, year, month, iday);=0A= if (this.getDateToolTip) {=0A= var toolTip =3D this.getDateToolTip(date, year, month, iday);=0A= if (toolTip)=0A= cell.title =3D toolTip;=0A= }=0A= if (status =3D=3D=3D true) {=0A= cell.className +=3D " disabled";=0A= cell.disabled =3D true;=0A= } else {=0A= if (/disabled/i.test(status))=0A= cell.disabled =3D true;=0A= cell.className +=3D " " + status;=0A= }=0A= }=0A= if (!cell.disabled) {=0A= cell.caldate =3D new Date(date);=0A= cell.ttip =3D "_";=0A= if (!this.multiple && current_month=0A= && iday =3D=3D mday && this.hiliteToday) {=0A= cell.className +=3D " selected";=0A= this.currentDateEl =3D cell;=0A= }=0A= if (date.getFullYear() =3D=3D TY &&=0A= date.getMonth() =3D=3D TM &&=0A= iday =3D=3D TD) {=0A= cell.className +=3D " today";=0A= cell.ttip +=3D Calendar._TT["PART_TODAY"];=0A= }=0A= if (weekend.indexOf(wday.toString()) !=3D -1)=0A= cell.className +=3D cell.otherMonth ? " oweekend" : " weekend";=0A= }=0A= }=0A= if (!(hasdays || this.showsOtherMonths))=0A= row.className =3D "emptyrow";=0A= }=0A= this.title.innerHTML =3D Calendar._MN[month] + ", " + year;=0A= this.onSetTime();=0A= this.table.style.visibility =3D "visible";=0A= this._initMultipleDates();=0A= // PROFILE=0A= // this.tooltips.innerHTML =3D "Generated in " + ((new Date()) - today) = + " ms";=0A= };=0A= =0A= Calendar.prototype._initMultipleDates =3D function() {=0A= if (this.multiple) {=0A= for (var i in this.multiple) {=0A= var cell =3D this.datesCells[i];=0A= var d =3D this.multiple[i];=0A= if (!d)=0A= continue;=0A= if (cell)=0A= cell.className +=3D " selected";=0A= }=0A= }=0A= };=0A= =0A= Calendar.prototype._toggleMultipleDate =3D function(date) {=0A= if (this.multiple) {=0A= var ds =3D date.print("%Y%m%d");=0A= var cell =3D this.datesCells[ds];=0A= if (cell) {=0A= var d =3D this.multiple[ds];=0A= if (!d) {=0A= Calendar.addClass(cell, "selected");=0A= this.multiple[ds] =3D date;=0A= } else {=0A= Calendar.removeClass(cell, "selected");=0A= delete this.multiple[ds];=0A= }=0A= }=0A= }=0A= };=0A= =0A= Calendar.prototype.setDateToolTipHandler =3D function (unaryFunction) {=0A= this.getDateToolTip =3D unaryFunction;=0A= };=0A= =0A= /**=0A= * Calls _init function above for going to a certain date (but only if = the=0A= * date is different than the currently selected one).=0A= */=0A= Calendar.prototype.setDate =3D function (date) {=0A= if (!date.equalsTo(this.date)) {=0A= this._init(this.firstDayOfWeek, date);=0A= }=0A= };=0A= =0A= /**=0A= * Refreshes the calendar. Useful if the "disabledHandler" function is=0A= * dynamic, meaning that the list of disabled date can change at = runtime.=0A= * Just * call this function if you think that the list of disabled = dates=0A= * should * change.=0A= */=0A= Calendar.prototype.refresh =3D function () {=0A= this._init(this.firstDayOfWeek, this.date);=0A= };=0A= =0A= /** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for = Monday, etc.). */=0A= Calendar.prototype.setFirstDayOfWeek =3D function (firstDayOfWeek) {=0A= this._init(firstDayOfWeek, this.date);=0A= this._displayWeekdays();=0A= };=0A= =0A= /**=0A= * Allows customization of what dates are enabled. The "unaryFunction"=0A= * parameter must be a function object that receives the date (as a JS = Date=0A= * object) and returns a boolean value. If the returned value is true = then=0A= * the passed date will be marked as disabled.=0A= */=0A= Calendar.prototype.setDateStatusHandler =3D = Calendar.prototype.setDisabledHandler =3D function (unaryFunction) {=0A= this.getDateStatus =3D unaryFunction;=0A= };=0A= =0A= /** Customization of allowed year range for the calendar. */=0A= Calendar.prototype.setRange =3D function (a, z) {=0A= this.minYear =3D a;=0A= this.maxYear =3D z;=0A= };=0A= =0A= /** Calls the first user handler (selectedHandler). */=0A= Calendar.prototype.callHandler =3D function () {=0A= if (this.onSelected) {=0A= this.onSelected(this, this.date.print(this.dateFormat));=0A= }=0A= };=0A= =0A= /** Calls the second user handler (closeHandler). */=0A= Calendar.prototype.callCloseHandler =3D function () {=0A= if (this.onClose) {=0A= this.onClose(this);=0A= }=0A= this.hideShowCovered();=0A= };=0A= =0A= /** Removes the calendar object from the DOM tree and destroys it. */=0A= Calendar.prototype.destroy =3D function () {=0A= var el =3D this.element.parentNode;=0A= el.removeChild(this.element);=0A= Calendar._C =3D null;=0A= window._dynarch_popupCalendar =3D null;=0A= };=0A= =0A= /**=0A= * Moves the calendar element to a different section in the DOM tree = (changes=0A= * its parent).=0A= */=0A= Calendar.prototype.reparent =3D function (new_parent) {=0A= var el =3D this.element;=0A= el.parentNode.removeChild(el);=0A= new_parent.appendChild(el);=0A= };=0A= =0A= // This gets called when the user presses a mouse button anywhere in the=0A= // document, if the calendar is shown. If the click was outside the open=0A= // calendar this function closes it.=0A= Calendar._checkCalendar =3D function(ev) {=0A= var calendar =3D window._dynarch_popupCalendar;=0A= if (!calendar) {=0A= return false;=0A= }=0A= var el =3D Calendar.is_ie ? Calendar.getElement(ev) : = Calendar.getTargetElement(ev);=0A= for (; el !=3D null && el !=3D calendar.element; el =3D el.parentNode);=0A= if (el =3D=3D null) {=0A= // calls closeHandler which should hide the calendar.=0A= window._dynarch_popupCalendar.callCloseHandler();=0A= return Calendar.stopEvent(ev);=0A= }=0A= };=0A= =0A= /** Shows the calendar. */=0A= Calendar.prototype.show =3D function () {=0A= var rows =3D this.table.getElementsByTagName("tr");=0A= for (var i =3D rows.length; i > 0;) {=0A= var row =3D rows[--i];=0A= Calendar.removeClass(row, "rowhilite");=0A= var cells =3D row.getElementsByTagName("td");=0A= for (var j =3D cells.length; j > 0;) {=0A= var cell =3D cells[--j];=0A= Calendar.removeClass(cell, "hilite");=0A= Calendar.removeClass(cell, "active");=0A= }=0A= }=0A= this.element.style.display =3D "block";=0A= this.hidden =3D false;=0A= if (this.isPopup) {=0A= window._dynarch_popupCalendar =3D this;=0A= Calendar.addEvent(document, "keydown", Calendar._keyEvent);=0A= Calendar.addEvent(document, "keypress", Calendar._keyEvent);=0A= Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);=0A= }=0A= this.hideShowCovered();=0A= };=0A= =0A= /**=0A= * Hides the calendar. Also removes any "hilite" from the class of any = TD=0A= * element.=0A= */=0A= Calendar.prototype.hide =3D function () {=0A= if (this.isPopup) {=0A= Calendar.removeEvent(document, "keydown", Calendar._keyEvent);=0A= Calendar.removeEvent(document, "keypress", Calendar._keyEvent);=0A= Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);=0A= }=0A= this.element.style.display =3D "none";=0A= this.hidden =3D true;=0A= this.hideShowCovered();=0A= };=0A= =0A= /**=0A= * Shows the calendar at a given absolute position (beware that, = depending on=0A= * the calendar element style -- position property -- this might be = relative=0A= * to the parent's containing rectangle).=0A= */=0A= Calendar.prototype.showAt =3D function (x, y) {=0A= var s =3D this.element.style;=0A= s.left =3D x + "px";=0A= s.top =3D y + "px";=0A= this.show();=0A= };=0A= =0A= /** Shows the calendar near a given element. */=0A= Calendar.prototype.showAtElement =3D function (el, opts) {=0A= var self =3D this;=0A= var p =3D Calendar.getAbsolutePos(el);=0A= if (!opts || typeof opts !=3D "string") {=0A= this.showAt(p.x, p.y + el.offsetHeight);=0A= return true;=0A= }=0A= function fixPosition(box) {=0A= if (box.x < 0)=0A= box.x =3D 0;=0A= if (box.y < 0)=0A= box.y =3D 0;=0A= var cp =3D document.createElement("div");=0A= var s =3D cp.style;=0A= s.position =3D "absolute";=0A= s.right =3D s.bottom =3D s.width =3D s.height =3D "0px";=0A= document.body.appendChild(cp);=0A= var br =3D Calendar.getAbsolutePos(cp);=0A= document.body.removeChild(cp);=0A= if (Calendar.is_ie) {=0A= br.y +=3D document.body.scrollTop;=0A= br.x +=3D document.body.scrollLeft;=0A= } else {=0A= br.y +=3D window.scrollY;=0A= br.x +=3D window.scrollX;=0A= }=0A= var tmp =3D box.x + box.width - br.x;=0A= if (tmp > 0) box.x -=3D tmp;=0A= tmp =3D box.y + box.height - br.y;=0A= if (tmp > 0) box.y -=3D tmp;=0A= };=0A= this.element.style.display =3D "block";=0A= Calendar.continuation_for_the_fucking_khtml_browser =3D function() {=0A= var w =3D self.element.offsetWidth;=0A= var h =3D self.element.offsetHeight;=0A= self.element.style.display =3D "none";=0A= var valign =3D opts.substr(0, 1);=0A= var halign =3D "l";=0A= if (opts.length > 1) {=0A= halign =3D opts.substr(1, 1);=0A= }=0A= // vertical alignment=0A= switch (valign) {=0A= case "T": p.y -=3D h; break;=0A= case "B": p.y +=3D el.offsetHeight; break;=0A= case "C": p.y +=3D (el.offsetHeight - h) / 2; break;=0A= case "t": p.y +=3D el.offsetHeight - h; break;=0A= case "b": break; // already there=0A= }=0A= // horizontal alignment=0A= switch (halign) {=0A= case "L": p.x -=3D w; break;=0A= case "R": p.x +=3D el.offsetWidth; break;=0A= case "C": p.x +=3D (el.offsetWidth - w) / 2; break;=0A= case "l": p.x +=3D el.offsetWidth - w; break;=0A= case "r": break; // already there=0A= }=0A= p.width =3D w;=0A= p.height =3D h + 40;=0A= self.monthsCombo.style.display =3D "none";=0A= fixPosition(p);=0A= self.showAt(p.x, p.y);=0A= };=0A= if (Calendar.is_khtml)=0A= setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", = 10);=0A= else=0A= Calendar.continuation_for_the_fucking_khtml_browser();=0A= };=0A= =0A= /** Customizes the date format. */=0A= Calendar.prototype.setDateFormat =3D function (str) {=0A= this.dateFormat =3D str;=0A= };=0A= =0A= /** Customizes the tooltip date format. */=0A= Calendar.prototype.setTtDateFormat =3D function (str) {=0A= this.ttDateFormat =3D str;=0A= };=0A= =0A= /**=0A= * Tries to identify the date represented in a string. If successful = it also=0A= * calls this.setDate which moves the calendar to the given date.=0A= */=0A= Calendar.prototype.parseDate =3D function(str, fmt) {=0A= if (!fmt)=0A= fmt =3D this.dateFormat;=0A= this.setDate(Date.parseDate(str, fmt));=0A= };=0A= =0A= Calendar.prototype.hideShowCovered =3D function () {=0A= if (!Calendar.is_ie && !Calendar.is_opera)=0A= return;=0A= function getVisib(obj){=0A= var value =3D obj.style.visibility;=0A= if (!value) {=0A= if (document.defaultView && typeof = (document.defaultView.getComputedStyle) =3D=3D "function") { // Gecko, = W3C=0A= if (!Calendar.is_khtml)=0A= value =3D document.defaultView.=0A= getComputedStyle(obj, "").getPropertyValue("visibility");=0A= else=0A= value =3D '';=0A= } else if (obj.currentStyle) { // IE=0A= value =3D obj.currentStyle.visibility;=0A= } else=0A= value =3D '';=0A= }=0A= return value;=0A= };=0A= =0A= var tags =3D new Array("applet", "iframe", "select");=0A= var el =3D this.element;=0A= =0A= var p =3D Calendar.getAbsolutePos(el);=0A= var EX1 =3D p.x;=0A= var EX2 =3D el.offsetWidth + EX1;=0A= var EY1 =3D p.y;=0A= var EY2 =3D el.offsetHeight + EY1;=0A= =0A= for (var k =3D tags.length; k > 0; ) {=0A= var ar =3D document.getElementsByTagName(tags[--k]);=0A= var cc =3D null;=0A= =0A= for (var i =3D ar.length; i > 0;) {=0A= cc =3D ar[--i];=0A= =0A= p =3D Calendar.getAbsolutePos(cc);=0A= var CX1 =3D p.x;=0A= var CX2 =3D cc.offsetWidth + CX1;=0A= var CY1 =3D p.y;=0A= var CY2 =3D cc.offsetHeight + CY1;=0A= =0A= if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 = < EY1)) {=0A= if (!cc.__msh_save_visibility) {=0A= cc.__msh_save_visibility =3D getVisib(cc);=0A= }=0A= cc.style.visibility =3D cc.__msh_save_visibility;=0A= } else {=0A= if (!cc.__msh_save_visibility) {=0A= cc.__msh_save_visibility =3D getVisib(cc);=0A= }=0A= cc.style.visibility =3D "hidden";=0A= }=0A= }=0A= }=0A= };=0A= =0A= /** Internal function; it displays the bar with the names of the = weekday. */=0A= Calendar.prototype._displayWeekdays =3D function () {=0A= var fdow =3D this.firstDayOfWeek;=0A= var cell =3D this.firstdayname;=0A= var weekend =3D Calendar._TT["WEEKEND"];=0A= for (var i =3D 0; i < 7; ++i) {=0A= cell.className =3D "day name";=0A= var realday =3D (i + fdow) % 7;=0A= if (i) {=0A= cell.ttip =3D Calendar._TT["DAY_FIRST"].replace("%s", = Calendar._DN[realday]);=0A= cell.navtype =3D 100;=0A= cell.calendar =3D this;=0A= cell.fdow =3D realday;=0A= Calendar._add_evs(cell);=0A= }=0A= if (weekend.indexOf(realday.toString()) !=3D -1) {=0A= Calendar.addClass(cell, "weekend");=0A= }=0A= cell.innerHTML =3D Calendar._SDN[(i + fdow) % 7];=0A= cell =3D cell.nextSibling;=0A= }=0A= };=0A= =0A= /** Internal function. Hides all combo boxes that might be displayed. */=0A= Calendar.prototype._hideCombos =3D function () {=0A= this.monthsCombo.style.display =3D "none";=0A= this.yearsCombo.style.display =3D "none";=0A= };=0A= =0A= /** Internal function. Starts dragging the element. */=0A= Calendar.prototype._dragStart =3D function (ev) {=0A= if (this.dragging) {=0A= return;=0A= }=0A= this.dragging =3D true;=0A= var posX;=0A= var posY;=0A= if (Calendar.is_ie) {=0A= posY =3D window.event.clientY + document.body.scrollTop;=0A= posX =3D window.event.clientX + document.body.scrollLeft;=0A= } else {=0A= posY =3D ev.clientY + window.scrollY;=0A= posX =3D ev.clientX + window.scrollX;=0A= }=0A= var st =3D this.element.style;=0A= this.xOffs =3D posX - parseInt(st.left);=0A= this.yOffs =3D posY - parseInt(st.top);=0A= with (Calendar) {=0A= addEvent(document, "mousemove", calDragIt);=0A= addEvent(document, "mouseup", calDragEnd);=0A= }=0A= };=0A= =0A= // BEGIN: DATE OBJECT PATCHES=0A= =0A= /** Adds the number of days array to the Date object. */=0A= Date._MD =3D new Array(31,28,31,30,31,30,31,31,30,31,30,31);=0A= =0A= /** Constants used for time computations */=0A= Date.SECOND =3D 1000 /* milliseconds */;=0A= Date.MINUTE =3D 60 * Date.SECOND;=0A= Date.HOUR =3D 60 * Date.MINUTE;=0A= Date.DAY =3D 24 * Date.HOUR;=0A= Date.WEEK =3D 7 * Date.DAY;=0A= =0A= Date.parseDate =3D function(str, fmt) {=0A= var today =3D new Date();=0A= var y =3D 0;=0A= var m =3D -1;=0A= var d =3D 0;=0A= var a =3D str.split(/\W+/);=0A= var b =3D fmt.match(/%./g);=0A= var i =3D 0, j =3D 0;=0A= var hr =3D 0;=0A= var min =3D 0;=0A= for (i =3D 0; i < a.length; ++i) {=0A= if (!a[i])=0A= continue;=0A= switch (b[i]) {=0A= case "%d":=0A= case "%e":=0A= d =3D parseInt(a[i], 10);=0A= break;=0A= =0A= case "%m":=0A= m =3D parseInt(a[i], 10) - 1;=0A= break;=0A= =0A= case "%Y":=0A= case "%y":=0A= y =3D parseInt(a[i], 10);=0A= (y < 100) && (y +=3D (y > 29) ? 1900 : 2000);=0A= break;=0A= =0A= case "%b":=0A= case "%B":=0A= for (j =3D 0; j < 12; ++j) {=0A= if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() =3D=3D = a[i].toLowerCase()) { m =3D j; break; }=0A= }=0A= break;=0A= =0A= case "%H":=0A= case "%I":=0A= case "%k":=0A= case "%l":=0A= hr =3D parseInt(a[i], 10);=0A= break;=0A= =0A= case "%P":=0A= case "%p":=0A= if (/pm/i.test(a[i]) && hr < 12)=0A= hr +=3D 12;=0A= else if (/am/i.test(a[i]) && hr >=3D 12)=0A= hr -=3D 12;=0A= break;=0A= =0A= case "%M":=0A= min =3D parseInt(a[i], 10);=0A= break;=0A= }=0A= }=0A= if (isNaN(y)) y =3D today.getFullYear();=0A= if (isNaN(m)) m =3D today.getMonth();=0A= if (isNaN(d)) d =3D today.getDate();=0A= if (isNaN(hr)) hr =3D today.getHours();=0A= if (isNaN(min)) min =3D today.getMinutes();=0A= if (y !=3D 0 && m !=3D -1 && d !=3D 0)=0A= return new Date(y, m, d, hr, min, 0);=0A= y =3D 0; m =3D -1; d =3D 0;=0A= for (i =3D 0; i < a.length; ++i) {=0A= if (a[i].search(/[a-zA-Z]+/) !=3D -1) {=0A= var t =3D -1;=0A= for (j =3D 0; j < 12; ++j) {=0A= if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() =3D=3D = a[i].toLowerCase()) { t =3D j; break; }=0A= }=0A= if (t !=3D -1) {=0A= if (m !=3D -1) {=0A= d =3D m+1;=0A= }=0A= m =3D t;=0A= }=0A= } else if (parseInt(a[i], 10) <=3D 12 && m =3D=3D -1) {=0A= m =3D a[i]-1;=0A= } else if (parseInt(a[i], 10) > 31 && y =3D=3D 0) {=0A= y =3D parseInt(a[i], 10);=0A= (y < 100) && (y +=3D (y > 29) ? 1900 : 2000);=0A= } else if (d =3D=3D 0) {=0A= d =3D a[i];=0A= }=0A= }=0A= if (y =3D=3D 0)=0A= y =3D today.getFullYear();=0A= if (m !=3D -1 && d !=3D 0)=0A= return new Date(y, m, d, hr, min, 0);=0A= return today;=0A= };=0A= =0A= /** Returns the number of days in the current month */=0A= Date.prototype.getMonthDays =3D function(month) {=0A= var year =3D this.getFullYear();=0A= if (typeof month =3D=3D "undefined") {=0A= month =3D this.getMonth();=0A= }=0A= if (((0 =3D=3D (year%4)) && ( (0 !=3D (year%100)) || (0 =3D=3D = (year%400)))) && month =3D=3D 1) {=0A= return 29;=0A= } else {=0A= return Date._MD[month];=0A= }=0A= };=0A= =0A= /** Returns the number of day in the year. */=0A= Date.prototype.getDayOfYear =3D function() {=0A= var now =3D new Date(this.getFullYear(), this.getMonth(), = this.getDate(), 0, 0, 0);=0A= var then =3D new Date(this.getFullYear(), 0, 0, 0, 0, 0);=0A= var time =3D now - then;=0A= return Math.floor(time / Date.DAY);=0A= };=0A= =0A= /** Returns the number of the week in year, as defined in ISO 8601. */=0A= Date.prototype.getWeekNumber =3D function() {=0A= var d =3D new Date(this.getFullYear(), this.getMonth(), this.getDate(), = 0, 0, 0);=0A= var DoW =3D d.getDay();=0A= d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu=0A= var ms =3D d.valueOf(); // GMT=0A= d.setMonth(0);=0A= d.setDate(4); // Thu in Week 1=0A= return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;=0A= };=0A= =0A= /** Checks date and time equality */=0A= Date.prototype.equalsTo =3D function(date) {=0A= return ((this.getFullYear() =3D=3D date.getFullYear()) &&=0A= (this.getMonth() =3D=3D date.getMonth()) &&=0A= (this.getDate() =3D=3D date.getDate()) &&=0A= (this.getHours() =3D=3D date.getHours()) &&=0A= (this.getMinutes() =3D=3D date.getMinutes()));=0A= };=0A= =0A= /** Set only the year, month, date parts (keep existing time) */=0A= Date.prototype.setDateOnly =3D function(date) {=0A= var tmp =3D new Date(date);=0A= this.setDate(1);=0A= this.setFullYear(tmp.getFullYear());=0A= this.setMonth(tmp.getMonth());=0A= this.setDate(tmp.getDate());=0A= };=0A= =0A= /** Prints the date in a string according to the given format. */=0A= Date.prototype.print =3D function (str) {=0A= var m =3D this.getMonth();=0A= var d =3D this.getDate();=0A= var y =3D this.getFullYear();=0A= var wn =3D this.getWeekNumber();=0A= var w =3D this.getDay();=0A= var s =3D {};=0A= var hr =3D this.getHours();=0A= var pm =3D (hr >=3D 12);=0A= var ir =3D (pm) ? (hr - 12) : hr;=0A= var dy =3D this.getDayOfYear();=0A= if (ir =3D=3D 0)=0A= ir =3D 12;=0A= var min =3D this.getMinutes();=0A= var sec =3D this.getSeconds();=0A= s["%a"] =3D Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N]=0A= s["%A"] =3D Calendar._DN[w]; // full weekday name=0A= s["%b"] =3D Calendar._SMN[m]; // abbreviated month name [FIXME: I18N]=0A= s["%B"] =3D Calendar._MN[m]; // full month name=0A= // FIXME: %c : preferred date and time representation for the current = locale=0A= s["%C"] =3D 1 + Math.floor(y / 100); // the century number=0A= s["%d"] =3D (d < 10) ? ("0" + d) : d; // the day of the month (range 01 = to 31)=0A= s["%e"] =3D d; // the day of the month (range 1 to 31)=0A= // FIXME: %D : american date style: %m/%d/%y=0A= // FIXME: %E, %F, %G, %g, %h (man strftime)=0A= s["%H"] =3D (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h = format)=0A= s["%I"] =3D (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h = format)=0A= s["%j"] =3D (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; = // day of the year (range 001 to 366)=0A= s["%k"] =3D hr; // hour, range 0 to 23 (24h format)=0A= s["%l"] =3D ir; // hour, range 1 to 12 (12h format)=0A= s["%m"] =3D (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12=0A= s["%M"] =3D (min < 10) ? ("0" + min) : min; // minute, range 00 to 59=0A= s["%n"] =3D "\n"; // a newline character=0A= s["%p"] =3D pm ? "PM" : "AM";=0A= s["%P"] =3D pm ? "pm" : "am";=0A= // FIXME: %r : the time in am/pm notation %I:%M:%S %p=0A= // FIXME: %R : the time in 24-hour notation %H:%M=0A= s["%s"] =3D Math.floor(this.getTime() / 1000);=0A= s["%S"] =3D (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59=0A= s["%t"] =3D "\t"; // a tab character=0A= // FIXME: %T : the time in 24-hour notation (%H:%M:%S)=0A= s["%U"] =3D s["%W"] =3D s["%V"] =3D (wn < 10) ? ("0" + wn) : wn;=0A= s["%u"] =3D w + 1; // the day of the week (range 1 to 7, 1 =3D MON)=0A= s["%w"] =3D w; // the day of the week (range 0 to 6, 0 =3D SUN)=0A= // FIXME: %x : preferred date representation for the current locale = without the time=0A= // FIXME: %X : preferred time representation for the current locale = without the date=0A= s["%y"] =3D ('' + y).substr(2, 2); // year without the century (range = 00 to 99)=0A= s["%Y"] =3D y; // year with the century=0A= s["%%"] =3D "%"; // a literal '%' character=0A= =0A= var re =3D /%./g;=0A= if (!Calendar.is_ie5 && !Calendar.is_khtml)=0A= return str.replace(re, function (par) { return s[par] || par; });=0A= =0A= var a =3D str.match(re);=0A= for (var i =3D 0; i < a.length; i++) {=0A= var tmp =3D s[a[i]];=0A= if (tmp) {=0A= re =3D new RegExp(a[i], 'g');=0A= str =3D str.replace(re, tmp);=0A= }=0A= }=0A= =0A= return str;=0A= };=0A= =0A= Date.prototype.__msh_oldSetFullYear =3D Date.prototype.setFullYear;=0A= Date.prototype.setFullYear =3D function(y) {=0A= var d =3D new Date(this);=0A= d.__msh_oldSetFullYear(y);=0A= if (d.getMonth() !=3D this.getMonth())=0A= this.setDate(28);=0A= this.__msh_oldSetFullYear(y);=0A= };=0A= =0A= // END: DATE OBJECT PATCHES=0A= =0A= =0A= // global object that remembers the calendar=0A= window._dynarch_popupCalendar =3D null;=0A= ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://music.podshow.com/music/calendar/lang/calendar-en.js // ** I18N=0A= =0A= // Calendar EN language=0A= // Author: Mihai Bazon, =0A= // Encoding: any=0A= // Distributed under the same terms as the calendar itself.=0A= =0A= // For translators: please use UTF-8 if possible. We strongly believe = that=0A= // Unicode is the answer to a real internationalized world. Also please=0A= // include your contact information in the header, as can be seen above.=0A= =0A= // full day names=0A= Calendar._DN =3D new Array=0A= ("Sunday",=0A= "Monday",=0A= "Tuesday",=0A= "Wednesday",=0A= "Thursday",=0A= "Friday",=0A= "Saturday",=0A= "Sunday");=0A= =0A= // Please note that the following array of short day names (and the same = goes=0A= // for short month names, _SMN) isn't absolutely necessary. We give it = here=0A= // for exemplification on how one can customize the short day names, but = if=0A= // they are simply the first N letters of the full name you can simply = say:=0A= //=0A= // Calendar._SDN_len =3D N; // short day name length=0A= // Calendar._SMN_len =3D N; // short month name length=0A= //=0A= // If N =3D 3 then this is not needed either since we assume a value of = 3 if not=0A= // present, to be compatible with translation files that were written = before=0A= // this feature.=0A= =0A= // short day names=0A= Calendar._SDN =3D new Array=0A= ("Sun",=0A= "Mon",=0A= "Tue",=0A= "Wed",=0A= "Thu",=0A= "Fri",=0A= "Sat",=0A= "Sun");=0A= =0A= // First day of the week. "0" means display Sunday first, "1" means = display=0A= // Monday first, etc.=0A= Calendar._FD =3D 0;=0A= =0A= // full month names=0A= Calendar._MN =3D new Array=0A= ("January",=0A= "February",=0A= "March",=0A= "April",=0A= "May",=0A= "June",=0A= "July",=0A= "August",=0A= "September",=0A= "October",=0A= "November",=0A= "December");=0A= =0A= // short month names=0A= Calendar._SMN =3D new Array=0A= ("Jan",=0A= "Feb",=0A= "Mar",=0A= "Apr",=0A= "May",=0A= "Jun",=0A= "Jul",=0A= "Aug",=0A= "Sep",=0A= "Oct",=0A= "Nov",=0A= "Dec");=0A= =0A= // tooltips=0A= Calendar._TT =3D {};=0A= Calendar._TT["INFO"] =3D "About the calendar";=0A= =0A= Calendar._TT["ABOUT"] =3D=0A= "DHTML Date/Time Selector\n" +=0A= "(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate = this this ;-)=0A= "For latest version visit: http://www.dynarch.com/projects/calendar/\n" +=0A= "Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for = details." +=0A= "\n\n" +=0A= "Date selection:\n" +=0A= "- Use the \xab, \xbb buttons to select year\n" +=0A= "- Use the " + String.fromCharCode(0x2039) + ", " + = String.fromCharCode(0x203a) + " buttons to select month\n" +=0A= "- Hold mouse button on any of the above buttons for faster selection.";=0A= Calendar._TT["ABOUT_TIME"] =3D "\n\n" +=0A= "Time selection:\n" +=0A= "- Click on any of the time parts to increase it\n" +=0A= "- or Shift-click to decrease it\n" +=0A= "- or click and drag for faster selection.";=0A= =0A= Calendar._TT["PREV_YEAR"] =3D "Prev. year (hold for menu)";=0A= Calendar._TT["PREV_MONTH"] =3D "Prev. month (hold for menu)";=0A= Calendar._TT["GO_TODAY"] =3D "Go Today";=0A= Calendar._TT["NEXT_MONTH"] =3D "Next month (hold for menu)";=0A= Calendar._TT["NEXT_YEAR"] =3D "Next year (hold for menu)";=0A= Calendar._TT["SEL_DATE"] =3D "Select date";=0A= Calendar._TT["DRAG_TO_MOVE"] =3D "Drag to move";=0A= Calendar._TT["PART_TODAY"] =3D " (today)";=0A= =0A= // the following is to inform that "%s" is to be the first day of week=0A= // %s will be replaced with the day name.=0A= Calendar._TT["DAY_FIRST"] =3D "Display %s first";=0A= =0A= // This may be locale-dependent. It specifies the week-end days, as an = array=0A= // of comma-separated numbers. The numbers are from 0 to 6: 0 means = Sunday, 1=0A= // means Monday, etc.=0A= Calendar._TT["WEEKEND"] =3D "0,6";=0A= =0A= Calendar._TT["CLOSE"] =3D "Close";=0A= Calendar._TT["TODAY"] =3D "Today";=0A= Calendar._TT["TIME_PART"] =3D "(Shift-)Click or drag to change value";=0A= =0A= // date formats=0A= Calendar._TT["DEF_DATE_FORMAT"] =3D "%Y-%m-%d";=0A= Calendar._TT["TT_DATE_FORMAT"] =3D "%a, %b %e";=0A= =0A= Calendar._TT["WK"] =3D "wk";=0A= Calendar._TT["TIME"] =3D "Time:";=0A= ------=_NextPart_000_0099_01C7D490.40EC5E00 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://music.podshow.com/music/calendar/calendar-setup.js /* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/=0A= * = -------------------------------------------------------------------------= --=0A= *=0A= * The DHTML Calendar=0A= *=0A= * Details and latest version at:=0A= * http://dynarch.com/mishoo/calendar.epl=0A= *=0A= * This script is distributed under the GNU Lesser General Public = License.=0A= * Read the entire license text here: = http://www.gnu.org/licenses/lgpl.html=0A= *=0A= * This file defines helper functions for setting up the calendar. They = are=0A= * intended to help non-programmers get a working calendar on their site=0A= * quickly. This script should not be seen as part of the calendar. It = just=0A= * shows you what one can do with the calendar, while in the same time=0A= * providing a quick and simple method for setting it up. If you need=0A= * exhaustive customization of the calendar creation process feel free to=0A= * modify this code to suit your needs (this is recommended and much = better=0A= * than modifying calendar.js itself).=0A= */=0A= =0A= // $Id: calendar-setup.js,v 1.25 2005/03/07 09:51:33 mishoo Exp $=0A= =0A= /**=0A= * This function "patches" an input field (or other element) to use a = calendar=0A= * widget for date selection.=0A= *=0A= * The "params" is a single object that can have the following = properties:=0A= *=0A= * prop. name | description=0A= * = -------------------------------------------------------------------------= ------------------------=0A= * inputField | the ID of an input field to store the date=0A= * displayArea | the ID of a DIV or other element to show the date=0A= * button | ID of a button or other element that will trigger = the calendar=0A= * eventName | event that will trigger the calendar, without the = "on" prefix (default: "click")=0A= * ifFormat | date format that will be stored in the input field=0A= * daFormat | the date format that will be used to display the = date in displayArea=0A= * singleClick | (true/false) wether the calendar is in single click = mode or not (default: true)=0A= * firstDay | numeric: 0 to 6. "0" means display Sunday first, = "1" means display Monday first, etc.=0A= * align | alignment (default: "Br"); if you don't know what's = this see the calendar documentation=0A= * range | array with 2 elements. Default: [1900, 2999] -- = the range of years available=0A= * weekNumbers | (true/false) if it's true (default) the calendar = will display week numbers=0A= * flat | null or element ID; if not null the calendar will = be a flat calendar having the parent with the given ID=0A= * flatCallback | function that receives a JS Date object and returns = an URL to point the browser to (for flat calendar)=0A= * disableFunc | function that receives a JS Date object and should = return true if that date has to be disabled in the calendar=0A= * onSelect | function that gets called when a date is selected. = You don't _have_ to supply this (the default is generally okay)=0A= * onClose | function that gets called when the calendar is = closed. [default]=0A= * onUpdate | function that gets called after the date is updated = in the input field. Receives a reference to the calendar.=0A= * date | the date that the calendar will be initially = displayed to=0A= * showsTime | default: false; if true the calendar will include a = time selector=0A= * timeFormat | the time format; can be "12" or "24", default is = "12"=0A= * electric | if true (default) then given fields/date areas are = updated for each move; otherwise they're updated only on close=0A= * step | configures the step of the years in drop-down = boxes; default: 2=0A= * position | configures the calendar absolute position; default: = null=0A= * cache | if "true" (but default: "false") it will reuse the = same calendar object, where possible=0A= * showOthers | if "true" (but default: "false") it will show days = from other months too=0A= *=0A= * None of them is required, they all have default values. However, if = you=0A= * pass none of "inputField", "displayArea" or "button" you'll get a = warning=0A= * saying "nothing to setup".=0A= */=0A= Calendar.setup =3D function (params) {=0A= function param_default(pname, def) { if (typeof params[pname] =3D=3D = "undefined") { params[pname] =3D def; } };=0A= =0A= param_default("inputField", null);=0A= param_default("displayArea", null);=0A= param_default("button", null);=0A= param_default("eventName", "click");=0A= param_default("ifFormat", "%Y/%m/%d");=0A= param_default("daFormat", "%Y/%m/%d");=0A= param_default("singleClick", true);=0A= param_default("disableFunc", null);=0A= param_default("dateStatusFunc", params["disableFunc"]); // takes = precedence if both are defined=0A= param_default("dateText", null);=0A= param_default("firstDay", null);=0A= param_default("align", "Br");=0A= param_default("range", [1900, 2999]);=0A= param_default("weekNumbers", true);=0A= param_default("flat", null);=0A= param_default("flatCallback", null);=0A= param_default("onSelect", null);=0A= param_default("onClose", null);=0A= param_default("onUpdate", null);=0A= param_default("date", null);=0A= param_default("showsTime", false);=0A= param_default("timeFormat", "24");=0A= param_default("electric", true);=0A= param_default("step", 2);=0A= param_default("position", null);=0A= param_default("cache", false);=0A= param_default("showOthers", false);=0A= param_default("multiple", null);=0A= =0A= var tmp =3D ["inputField", "displayArea", "button"];=0A= for (var i in tmp) {=0A= if (typeof params[tmp[i]] =3D=3D "string") {=0A= params[tmp[i]] =3D document.getElementById(params[tmp[i]]);=0A= }=0A= }=0A= if (!(params.flat || params.multiple || params.inputField || = params.displayArea || params.button)) {=0A= alert("Calendar.setup:\n Nothing to setup (no fields found). Please = check your code");=0A= return false;=0A= }=0A= =0A= function onSelect(cal) {=0A= var p =3D cal.params;=0A= var update =3D (cal.dateClicked || p.electric);=0A= if (update && p.inputField) {=0A= p.inputField.value =3D cal.date.print(p.ifFormat);=0A= if (typeof p.inputField.onchange =3D=3D "function")=0A= p.inputField.onchange();=0A= }=0A= if (update && p.displayArea)=0A= p.displayArea.innerHTML =3D cal.date.print(p.daFormat);=0A= if (update && typeof p.onUpdate =3D=3D "function")=0A= p.onUpdate(cal);=0A= if (update && p.flat) {=0A= if (typeof p.flatCallback =3D=3D "function")=0A= p.flatCallback(cal);=0A= }=0A= if (update && p.singleClick && cal.dateClicked)=0A= cal.callCloseHandler();=0A= };=0A= =0A= if (params.flat !=3D null) {=0A= if (typeof params.flat =3D=3D "string")=0A= params.flat =3D document.getElementById(params.flat);=0A= if (!params.flat) {=0A= alert("Calendar.setup:\n Flat specified but can't find parent.");=0A= return false;=0A= }=0A= var cal =3D new Calendar(params.firstDay, params.date, params.onSelect = || onSelect);=0A= cal.showsOtherMonths =3D params.showOthers;=0A= cal.showsTime =3D params.showsTime;=0A= cal.time24 =3D (params.timeFormat =3D=3D "24");=0A= cal.params =3D params;=0A= cal.weekNumbers =3D params.weekNumbers;=0A= cal.setRange(params.range[0], params.range[1]);=0A= cal.setDateStatusHandler(params.dateStatusFunc);=0A= cal.getDateText =3D params.dateText;=0A= if (params.ifFormat) {=0A= cal.setDateFormat(params.ifFormat);=0A= }=0A= if (params.inputField && typeof params.inputField.value =3D=3D = "string") {=0A= cal.parseDate(params.inputField.value);=0A= }=0A= cal.create(params.flat);=0A= cal.show();=0A= return false;=0A= }=0A= =0A= var triggerEl =3D params.button || params.displayArea || = params.inputField;=0A= triggerEl["on" + params.eventName] =3D function() {=0A= var dateEl =3D params.inputField || params.displayArea;=0A= var dateFmt =3D params.inputField ? params.ifFormat : params.daFormat;=0A= var mustCreate =3D false;=0A= var cal =3D window.calendar;=0A= if (dateEl)=0A= params.date =3D Date.parseDate(dateEl.value || dateEl.innerHTML, = dateFmt);=0A= if (!(cal && params.cache)) {=0A= window.calendar =3D cal =3D new Calendar(params.firstDay,=0A= params.date,=0A= params.onSelect || onSelect,=0A= params.onClose || function(cal) { cal.hide(); });=0A= cal.showsTime =3D params.showsTime;=0A= cal.time24 =3D (params.timeFormat =3D=3D "24");=0A= cal.weekNumbers =3D params.weekNumbers;=0A= mustCreate =3D true;=0A= } else {=0A= if (params.date)=0A= cal.setDate(params.date);=0A= cal.hide();=0A= }=0A= if (params.multiple) {=0A= cal.multiple =3D {};=0A= for (var i =3D params.multiple.length; --i >=3D 0;) {=0A= var d =3D params.multiple[i];=0A= var ds =3D d.print("%Y%m%d");=0A= cal.multiple[ds] =3D d;=0A= }=0A= }=0A= cal.showsOtherMonths =3D params.showOthers;=0A= cal.yearStep =3D params.step;=0A= cal.setRange(params.range[0], params.range[1]);=0A= cal.params =3D params;=0A= cal.setDateStatusHandler(params.dateStatusFunc);=0A= cal.getDateText =3D params.dateText;=0A= cal.setDateFormat(dateFmt);=0A= if (mustCreate)=0A= cal.create();=0A= cal.refresh();=0A= if (!params.position)=0A= cal.showAtElement(params.button || params.displayArea || = params.inputField, params.align);=0A= else=0A= cal.showAt(params.position[0], params.position[1]);=0A= return false;=0A= };=0A= =0A= return cal;=0A= };=0A= ------=_NextPart_000_0099_01C7D490.40EC5E00--