From: <Saved by Windows Internet Explorer 7>
Subject: Culture of Jharkhand - At a Glance
Date: Fri, 19 Jan 2007 13:14:18 +0530
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01C73BCB.B9A1FF70"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C73BCB.B9A1FF70
Content-Type: text/html;
	charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.jharkhand.nic.in/culture.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Culture of Jharkhand - At a Glance</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dwindows-1252">
<META content=3D"MSHTML 6.00.5730.11" name=3DGENERATOR>
<META=20
content=3D"Jharkhand, Tribals, Ranchi, CIP, Kanke, Hatia, HEL, MECON, =
Jharkhand, BIT Mesra, Jamshedpur, Tourism, Information Technology, =
Waterfalls, Lakes, Healthcare Solutions, Financial Services, Securities, =
Retail, Telecommunication, Transportation, Manufacturing, Software =
Products,  E-Business, E-Commerce, ERP, Village, Administration, =
Management, Government, E-Governance, E-Business, Careers, Jobs, news, =
India, smartgov"=20
name=3Dkeywords>
<META content=3D"National Informatics Centre (NIC)" name=3Dauthor>
<META=20
content=3D"Jharkhand, the 28th state of the Indian Union was brought =
into existence on November 15, 2000- the birth anniversary of the =
legendary Bhagwan Birsa Munda. Jharkhand is famous for its rich mineral =
resources like Uranium, Mica, Bauxite, Granite, Gold, Silver, Graphite, =
Magnetite, Dolomite, Fireclay, Quartz, Fieldspar, Coal (32% of India), =
Iron, Copper (25%of India) etc. Forests and woodlands occupy more than =
29% of the state which is amongst the highest in India."=20
name=3Ddescription>
<META content=3Dall name=3Drobots>
<STYLE type=3Dtext/css>@import url( images/calendar-brown.css );
</STYLE>

<SCRIPT src=3D"http://www.jharkhand.nic.in/images/calendar.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.jharkhand.nic.in/images/calendar-en.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.jharkhand.nic.in/images/calendar-setup.js"=20
type=3Dtext/javascript></SCRIPT>

<STYLE type=3Dtext/css>BODY {
	SCROLLBAR-FACE-COLOR: #f1eae2; SCROLLBAR-HIGHLIGHT-COLOR: #f1eae2; =
SCROLLBAR-SHADOW-COLOR: #f1eae2; SCROLLBAR-3DLIGHT-COLOR: #f1eae2; =
SCROLLBAR-ARROW-COLOR: #000000; SCROLLBAR-TRACK-COLOR: #f1eae2; =
SCROLLBAR-DARKSHADOW-COLOR: #000000
}
.t1 {
	FONT-SIZE: 10px; COLOR: #003d79; FONT-FAMILY: Verdana, Arial, =
Helvetica, sans-serif
}
.t2 {
	FONT-SIZE: 10px; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, =
Helvetica, sans-serif
}
A:hover {
	COLOR: black; TEXT-DECORATION: underline
}
A {
	FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; =
TEXT-DECORATION: none
}
.a1 {
	FONT-SIZE: 10px; COLOR: black; FONT-FAMILY: Verdana, Arial, Helvetica, =
sans-serif; TEXT-DECORATION: none
}
.a2 {
	FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #ffffff; FONT-FAMILY: =
Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none
}
</STYLE>
</HEAD>
<BODY bgColor=3D#ffffff leftMargin=3D0 topMargin=3D0>
<SCRIPT language=3Djavascript>
function MM_openBrWindow(theURL,winName,features)
{ //v2.0
  window.open(theURL,winName,features);
}

</SCRIPT>

<TABLE cellSpacing=3D0 cellPadding=3D0 width=3D770 align=3Dcenter =
border=3D0>
  <TBODY>
  <TR>
    <TD width=3D770 colSpan=3D5 height=3D21><IMG height=3D100=20
      alt=3D"top.jpg (28086 bytes)"=20
      src=3D"http://www.jharkhand.nic.in/images/logo.jpg" =
width=3D923></TD></TR>
  <TR>
    <TD class=3Dt2 width=3D"100%" bgColor=3D#ffffff colSpan=3D5 =
height=3D1>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" border=3D0>
        <TBODY>
        <TR>
          <TD width=3D80 height=3D2>
            <DIV align=3Dcenter>
            <CENTER>
            <TABLE borderColor=3D#48a732 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
            border=3D1>
              <TBODY>
              <TR>
                <TD =
onmouseover=3D"this.style.backgroundColor=3D'#ccffcc';"=20
                onmouseout=3D"this.style.backgroundColor=3D'white';"=20
                  width=3D"100%"><A class=3Da1=20
                  href=3D"http://www.jharkhand.nic.in/index.htm"><FONT=20
                  face=3DVerdana><SMALL>
                  <P=20
            =
align=3Dcenter>&nbsp;Home</SMALL></FONT></A></P></TD></TR></TBODY></TABLE=
></CENTER></DIV></TD>
          <TD width=3D75 bgColor=3D#ffffff height=3D2></TD>
          <TD width=3D164 bgColor=3D#ffffff height=3D2>
            <DIV align=3Dcenter>
            <CENTER>
            <TABLE borderColor=3D#48a732 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
            border=3D1>
              <TBODY>
              <TR>
                <TD =
onmouseover=3D"this.style.backgroundColor=3D'#ccffcc';"=20
                onmouseout=3D"this.style.backgroundColor=3D'white';"=20
                  width=3D"100%"><FONT face=3DVerdana><SMALL><A =
class=3Da1=20
                  href=3D"http://www.jharkhand.nic.in/about.htm">
                  <P align=3Dcenter>&nbsp; At a=20
              =
Glance</A></SMALL></FONT></P></TD></TR></TBODY></TABLE></CENTER></DIV></T=
D>
          <TD width=3D75 bgColor=3D#ffffff height=3D2></TD>
          <TD width=3D154 bgColor=3D#ffffff height=3D2>
            <DIV align=3Dcenter>
            <CENTER>
            <TABLE borderColor=3D#48a732 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
            border=3D1>
              <TBODY>
              <TR>
                <TD =
onmouseover=3D"this.style.backgroundColor=3D'#ccffcc';"=20
                onmouseout=3D"this.style.backgroundColor=3D'white';"=20
                  width=3D"100%"><FONT face=3DVerdana><SMALL><A =
class=3Da1=20
                  href=3D"http://www.jharkhand.nic.in/cm.htm">
                  <P=20
              =
align=3Dcenter>&nbsp;Governance</A></SMALL></FONT></P></TD></TR></TBODY><=
/TABLE></CENTER></DIV></TD>
          <TD width=3D75 bgColor=3D#ffffff height=3D2></TD>
          <TD width=3D176 bgColor=3D#ffffff height=3D2>
            <DIV align=3Dcenter>
            <CENTER>
            <TABLE borderColor=3D#48a732 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
            border=3D1>
              <TBODY>
              <TR>
                <TD =
onmouseover=3D"this.style.backgroundColor=3D'#ccffcc';"=20
                onmouseout=3D"this.style.backgroundColor=3D'white';"=20
                  width=3D"100%"><FONT face=3DVerdana><SMALL><A =
class=3Da1=20
                  href=3D"http://www.jharkhand.nic.in/colleges.htm">
                  <P=20
            =
align=3Dcenter>Education</A></SMALL></FONT></P></TD></TR></TBODY></TABLE>=
</CENTER></DIV></TD>
          <TD width=3D66 bgColor=3D#ffffff height=3D2></TD>
          <TD width=3D154 bgColor=3D#ffffff height=3D2>
            <DIV align=3Dcenter>
            <CENTER>
            <TABLE borderColor=3D#48a732 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
            border=3D1>
              <TBODY>
              <TR>
                <TD =
onmouseover=3D"this.style.backgroundColor=3D'#ccffcc';"=20
                onmouseout=3D"this.style.backgroundColor=3D'white';"=20
                  width=3D"100%"><FONT face=3DVerdana><SMALL><A =
class=3Da1=20
                  href=3D"http://www.jharkhand.nic.in/tenders.htm">
                  <P align=3Dcenter>&nbsp;=20
              =
Tenders</A></SMALL></FONT></P></TD></TR></TBODY></TABLE></CENTER></DIV></=
TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD width=3D770 bgColor=3D#ffffff colSpan=3D5 height=3D2></TD></TR>
  <TR>
    <TD vAlign=3Dtop align=3Dleft width=3D159 height=3D1>&nbsp;
      <DIV align=3Dright>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"99%" border=3D0>
        <TBODY>
        <TR>
          <TD width=3D"100%">
            <TABLE cellSpacing=3D1 cellPadding=3D0 bgColor=3D#ffffff =
border=3D0>
              <TBODY>
              <TR>
                <TD bgColor=3D#aebb6c>
                  <P align=3Dleft><FONT face=3DVerdana=20
                  color=3D#ffffff><SMALL><STRONG>At a=20
                  Glance</STRONG></SMALL></FONT></P></TD>
                <TD=20
                  =
bgColor=3D#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
                </TD></TR>
              <TR>
                <TD bgColor=3D#aabfe6 colSpan=3D2>
                  <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
align=3Dcenter=20
                  bgColor=3D#aabfe6 border=3D0>
                    <TBODY>
                    <TR bgColor=3D#cbea76>
                      <TD width=3D159 height=3D4>&nbsp;<IMG height=3D5=20
                        alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1=20
                        href=3D"http://www.jharkhand.nic.in/about.htm">A =

                        Profile</A></TD></TR>
                    <TR bgColor=3D#cbea76>
                      <TD width=3D159 height=3D4>&nbsp;<IMG height=3D5=20
                        alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1=20
                        =
href=3D"http://www.jharkhand.nic.in/history.htm">History</A></TD></TR>
                    <TR bgColor=3D#cbea76>
                      <TD width=3D159 height=3D4>&nbsp;<IMG height=3D5=20
                        alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1=20
                        =
href=3D"http://www.jharkhand.nic.in/culture.htm">Culture</A></TD></TR>
                    <TR bgColor=3D#cbea76>
                      <TD width=3D159 height=3D4>&nbsp;<IMG height=3D5=20
                        alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1=20
                        =
href=3D"http://www.jharkhand.nic.in/resources.htm">Resources</A></TD></TR=
>
                    <TR bgColor=3D#cbea76>
                      <TD width=3D159 height=3D4>&nbsp;<IMG height=3D5=20
                        alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1=20
                        =
href=3D"http://www.jharkhand.nic.in/districts.htm">Districts</A></TD></TR=
></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD vAlign=3Dtop align=3Dleft width=3D159 =
height=3D24></TD></TR>
        <TR>
          <TD width=3D"100%">
            <TABLE cellSpacing=3D1 cellPadding=3D0 width=3D150 =
bgColor=3D#ffffff=20
            border=3D0>
              <TBODY>
              <TR>
                <TD bgColor=3D#d9de69>
                  <P align=3Dleft><FONT face=3DVerdana=20
                  =
color=3D#ffffff><SMALL><STRONG>Services</STRONG></SMALL></FONT></P></TD>
                <TD=20
                  =
bgColor=3D#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;=20
                  &nbsp;&nbsp;&nbsp; </TD></TR>
              <TR>
                <TD bgColor=3D#aabfe6 colSpan=3D2>
                  <TABLE height=3D126 cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
                  align=3Dcenter bgColor=3D#aabfe6 border=3D0>
                    <TBODY>
                    <TR>
                      <TD width=3D159 bgColor=3D#f1f3cd =
height=3D4>&nbsp;<IMG=20
                        height=3D5 alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1 =
href=3D"http://jhr.nic.in/gpf"=20
                        target=3D_blank>View GPF Statement</A></TD></TR>
                    <TR>
                      <TD width=3D159 bgColor=3D#f1f3cd =
height=3D4>&nbsp;<IMG=20
                        height=3D5 alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1 =
href=3D"http://jhr.nic.in/transport/"=20
                        target=3D_blank>Online Vehicle =
Details</A></TD></TR>
                    <TR>
                      <TD width=3D159 bgColor=3D#f1f3cd =
height=3D4>&nbsp;<IMG=20
                        height=3D5 alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1 =
href=3D"http://jhr.nic.in/nmc"=20
                        target=3D_blank>Treasury MIS</A></TD></TR>
                    <TR>
                      <TD width=3D159 bgColor=3D#f1f3cd =
height=3D4>&nbsp;<IMG=20
                        height=3D5 alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1 =
href=3D"http://jharresults.nic.in/"=20
                        target=3D_blank>Exam Results</A></TD></TR>
                    <TR>
                      <TD width=3D159 bgColor=3D#f1f3cd =
height=3D4>&nbsp;<IMG=20
                        height=3D5 alt=3D"arrow.gif (46 bytes)"=20
                        =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                        width=3D3> <A class=3Da1 =
href=3D"https://mail.nic.in/"=20
                        =
target=3D_blank>NICEmail</A></TD></TR></TBODY></TABLE></TD></TR></TBODY><=
/TABLE></TD></TR>
        <TR>
          <TD width=3D202 height=3D22></TD></TR>
        <TR>
          <TD width=3D202 height=3D22></TD></TR>
        <TR>
          <TD width=3D159 height=3D144>
            <DIV align=3Dcenter>
            <CENTER>
            <TABLE cellSpacing=3D1 cellPadding=3D0 width=3D"100%" =
bgColor=3D#ffffff=20
            border=3D0>
              <TBODY>
              <TR>
                <TD width=3D"100%">
                  <TABLE cellSpacing=3D1 cellPadding=3D0 width=3D150 =
bgColor=3D#ffffff=20
                  border=3D0>
                    <TBODY>
                    <TR>
                      <TD bgColor=3D#a8aa3d>
                        <P align=3Dleft><FONT face=3DVerdana=20
                        =
color=3D#ffffff><SMALL><STRONG>Tourism</STRONG></SMALL></FONT></P></TD>
                      <TD bgColor=3D#ffffff><FONT face=3DVerdana=20
                        =
color=3D#ffffff><SMALL><STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;=20
                        &nbsp;&nbsp; &nbsp; =
</STRONG></SMALL></FONT></TD></TR>
                    <TR>
                      <TD bgColor=3D#aabfe6 colSpan=3D2>
                        <TABLE cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
                        align=3Dcenter bgColor=3D#aabfe6 border=3D0>
                          <TBODY>
                          <TR bgColor=3D#c4c55d>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3><A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/ranchiattrac.htm">=20
                              Ranchi</A>=20
                              =
<SMALL><SMALL><SMALL>&amp;</SMALL></SMALL></SMALL>=20
                              <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/netattrac.htm">Netarhat</A></TD></TR>=

                          <TR bgColor=3D#c4c55d>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/hazariattrac.htm">Hazarigabh</A><SMAL=
L><SMALL><SMALL>=20
                              &amp;</SMALL></SMALL></SMALL> <A =
class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/deogharattrac.htm">Deoghar</A></TD></=
TR>
                          <TR bgColor=3D#c4c55d>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/hotel.htm">Hotels=20
                              &amp; Restaurants</A></TD></TR>
                          <TR bgColor=3D#c4c55d>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/access.htm">How=20
                              to Reach</A></TD></TR>
                          <TR bgColor=3D#c4c55d>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"javascript:MM_openBrWindow('gallary.htm','PhotoGallary','width=3D=
500,height=3D450,toolbar=3Dno, addressbar=3Dno, maximize=3Dyes, =
locationbar=3Dno, =
location=3Dno,resizeable=3Dyes')">Photogallary</A></TD></TR></TBODY></TAB=
LE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER></DIV></T=
D></TR>
        <TR>
          <TD width=3D202 =
height=3D22></TD></TR></TBODY></TABLE></DIV></TD>
    <TD vAlign=3Dtop align=3Dleft width=3D11></TD>
    <TD class=3Dt1 vAlign=3Dtop align=3Dleft width=3D575 =
height=3D264>&nbsp;<BR><FONT=20
      face=3D"Verdana, Arial, Helvetica, sans-serif" size=3D4>Cultural =
Scenario=20
      </FONT>
      <P align=3Dcenter><IMG height=3D145 alt=3D"Tribal Dance of =
Jharkhand"=20
      src=3D"http://www.jharkhand.nic.in/images/dance1.jpg" width=3D251=20
      border=3D1><BR></P>
      <TABLE cellSpacing=3D1 cellPadding=3D1 width=3D"100%" 0>
        <TBODY>
        <TR>
          <TD vAlign=3Dtop width=3D"18%" bgColor=3D#ffffdf =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2><B>Langauages=20
            </B></FONT></TD>
          <TD vAlign=3Dtop width=3D"82%" bgColor=3D#e1e1c4 height=3D0>
            <P align=3Djustify><FONT face=3D"Verdana, Arial, Helvetica, =
sans-serif"=20
            size=3D2>Santhali , Mundari , Kurukh, Khortha, Nagpuria, =
Sadri,=20
            Khariya, Panchparagnia, Ho, Malto, Karmali, Hindi, Urdu, =
Bangla etc=20
            </FONT></P></TD></TR>
        <TR>
          <TD vAlign=3Dtop width=3D"18%" bgColor=3D#ffffdf =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2><B>Festivals=20
            </B></FONT></TD>
          <TD vAlign=3Dtop width=3D"82%" bgColor=3D#e1e1c4 =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2>Sarhul, Karma,=20
            Sohrai, Badna, Tusu, Id, X-mas, Holi, Dushahra etc =
</FONT></TD></TR>
        <TR>
          <TD vAlign=3Dtop width=3D"18%" bgColor=3D#ffffdf =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2><B>Folk Music=20
            </B></FONT></TD>
          <TD vAlign=3Dtop width=3D"82%" bgColor=3D#e1e1c4 height=3D0>
            <P align=3Djustify><FONT face=3D"Verdana, Arial, Helvetica, =
sans-serif"=20
            size=3D2>Akhariya Domkach, Dohari Domkach, Janani Jhumar, =
Mardana=20
            Jhumar, Faguwa, Udasi, Pawas, Daidhara, Pahilsanjha, =
Adhratiya,=20
            Vinsariya, Pratkali, Jhumta etc </FONT></P></TD></TR>
        <TR>
          <TD vAlign=3Dtop width=3D"18%" bgColor=3D#ffffdf =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2><B>Folk dance=20
            </B></FONT></TD>
          <TD vAlign=3Dtop width=3D"82%" bgColor=3D#e1e1c4 height=3D0>
            <P align=3Djustify><FONT face=3D"Verdana, Arial, Helvetica, =
sans-serif"=20
            size=3D2>Paika, Chaw, Jadur, Karma, Nachni, Natua, Agni, =
Choukara,=20
            Santhal, Jamda, Ghatwari, Matha, Sohrai, Lurisayro etc=20
        </FONT></P></TD></TR>
        <TR>
          <TD vAlign=3Dtop width=3D"18%" bgColor=3D#ffffdf =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2><B>Folk Singer=20
            </B></FONT></TD>
          <TD vAlign=3Dtop width=3D"82%" bgColor=3D#e1e1c4 height=3D0>
            <P align=3Djustify><FONT face=3D"Verdana, Arial, Helvetica, =
sans-serif"=20
            size=3D2>Ghasi Ram, Ghasi Mahant, Rungtu, Ledaram, Vasudeo, =
Shekh Ali=20
            aan, Kanchan, Kripal Ram Deogharia, Pandey Durga Nath Rai, =
Pandey=20
            Virendra Nath rai, Prafulla Kumar Rai, Chamu Kamar, =
Bhawapritanand=20
            </FONT></P></TD></TR>
        <TR>
          <TD vAlign=3Dtop width=3D"18%" bgColor=3D#ffffdf =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2><B>Musical=20
            </B></FONT></TD>
          <TD vAlign=3Dtop width=3D"82%" bgColor=3D#e1e1c4 height=3D0>
            <P align=3Djustify><FONT face=3D"Verdana, Arial, Helvetica, =
sans-serif"=20
            size=3D2>Kadri, Gupijantra, Sarangi, Tuila, Vyang, =
Anandlahri=20
            </FONT></P></TD></TR>
        <TR>
          <TD vAlign=3Dtop width=3D"18%" bgColor=3D#ffffdf =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2><B>Instruments=20
            </B></FONT></TD>
          <TD vAlign=3Dtop width=3D"82%" bgColor=3D#e1e1c4 height=3D0>
            <P align=3Djustify><FONT face=3D"Verdana, Arial, Helvetica, =
sans-serif"=20
            size=3D2>Bansuri, Arbansi, Sahnai, Madanvari, Singa, Sankh =
Mandar,=20
            Dhol, Dhak, Dhamsa, Nagara, Damama, Karha, Tasa, Jurinagra,=20
            Visamdhanki, Thapchanchu, Kartal, Jhanjh, Thala, Manjhira,=20
            Ghanta</FONT></P></TD></TR>
        <TR>
          <TD vAlign=3Dtop width=3D"18%" bgColor=3D#ffffdf =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2><B>Paintings=20
            </B></FONT></TD>
          <TD vAlign=3Dtop width=3D"82%" bgColor=3D#e1e1c4 height=3D0>
            <P align=3Djustify><FONT face=3D"Verdana, Arial, Helvetica, =
sans-serif"=20
            size=3D2>Santhali Bhittichitra, Oraon Bhittichitra, Jado =
Patiya=20
            </FONT></P></TD></TR>
        <TR>
          <TD vAlign=3Dtop width=3D"18%" bgColor=3D#ffffdf =
height=3D0><FONT=20
            face=3D"Verdana, Arial, Helvetica, sans-serif" =
size=3D2><B>Rivers=20
            </B></FONT></TD>
          <TD vAlign=3Dtop width=3D"82%" bgColor=3D#e1e1c4 height=3D0>
            <P align=3Djustify><FONT face=3D"Verdana, Arial, Helvetica, =
sans-serif"=20
            size=3D2>Damodar, Mayurakshi, barakar, Koyal, sankh, Son, =
Auranga,=20
            More, Karo, Bansloi, South Koel, Kharkai, Swarna Rekha, =
Ganga,=20
            Gumani, Batane </FONT></P></TD></TR></TBODY></TABLE></TD>
    <TD vAlign=3Dtop align=3Dright width=3D15></TD>
    <TD vAlign=3Dtop align=3Dright width=3D100 height=3D1>&nbsp;
      <DIV align=3Dright>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
align=3Dright border=3D0>
        <TBODY>
        <TR>
          <TD width=3D159 height=3D144>
            <DIV align=3Dright>
            <TABLE cellSpacing=3D1 cellPadding=3D0 align=3Dright =
bgColor=3D#ffffff=20
            border=3D0>
              <TBODY>
              <TR>
                <TD align=3Dright width=3D"100%" bgColor=3D#6483c3>
                  <TABLE cellSpacing=3D1 cellPadding=3D0 width=3D150 =
bgColor=3D#ffffff=20
                  border=3D0>
                    <TBODY>
                    <TR>
                      <TD width=3D204 height=3D120>
                        <DIV id=3Dcalendar-container=20
                        style=3D"FLOAT: left; MARGIN-BOTTOM: 0em; =
MARGIN-LEFT: 0.5em; align: center"></DIV></TD>
                      <SCRIPT type=3Dtext/javascript>
  var SPECIAL_DAYS =3D {
    0 : [26 ],		// special days in January
    1 : [10],
    3 : [ 14 ],	// special days in april
    4 : [1],
    7 : [15, 16],
    9 : [2, 21, 24 ],
	10 : [15 ],		//=20
   11 : [25]
  };
 =20
 =20
  function dateIsSpecial(year, month, day) {
    var m =3D SPECIAL_DAYS[month];
    if (!m) return false;
    for (var i in m) if ((m[i] =3D=3D day) && year =3D=3D "2006") return =
true;
    return false;
  };

  function dateChanged(calendar) {
    // Beware that this function is called even if the end-user only
    // changed the month/year.  In order to determine if a date was
    // clicked you can use the dateClicked property of the calendar:
   =20
       =20
    if (calendar.dateClicked) {
      // OK, a date was clicked, redirect to /yyyy/mm/dd/index.php
      var y =3D calendar.date.getFullYear();
      var m =3D calendar.date.getMonth();     // integer, 0..11
      var d =3D calendar.date.getDate();      // integer, 1..31
      // redirect...
     =20
      var months =3D new Array(13);
        months[0]  =3D "January";
        months[1]  =3D "February";
        months[2]  =3D "March";
        months[3]  =3D "April";
        months[4]  =3D "May";
        months[5]  =3D "June";
        months[6]  =3D "July";
        months[7]  =3D "August";
        months[8]  =3D "September";
        months[9]  =3D "October";
        months[10] =3D "November";
        months[11] =3D "December";

    =20
      var temp =3D months[m];
      var temp1 =3D temp + d + y;
           =20
      switch(temp1) {
     =20
       case 'January262006' : {alert ("Republic Day"); break; }
       case 'February102006': {alert ("Moharam"); break; }
       case 'April142006'   : {alert ("Good Friday "); break; }
       case 'May12006'      : {alert ("May Day"); break; }
       case 'August152006'  : {alert ("Independence Day"); break; }
       case 'August162006'  : {alert ("Sri Krishna Jayanthi"); break; }
       case 'October22006'  : {alert ("Gandhi Jayanthi"); break; }
       case 'October212006' : {alert ("Deepavali"); break; }
       case 'October242006' : {alert ("Ramzan"); break; }
	   case 'November152006' : {alert ("Jharkhand Diwas"); break; }
       case 'December252006': {alert ("Christmas"); }    =20
      }
           =20
      //window.location =3D "/" + y + "/" + m + "/" + d + "/index.php";
    }
  };

  function ourDateStatusFunc(date, y, m, d) {
    if (dateIsSpecial(y, m, d))
      return "special";
    else
      return false; // other dates are enabled
      // return true if you want to disable other dates
  };

  Calendar.setup(
    {
      flat         : "calendar-container", // ID of the parent element
      flatCallback : dateChanged,          // our callback function
      dateStatusFunc : ourDateStatusFunc
    }
  );
</SCRIPT>
                    =
</TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV></TD></TR>
        <TR>
          <TD width=3D202 height=3D22></TD></TR>
        <TR>
          <TD align=3Dright>
            <DIV align=3Dright>
            <TABLE cellSpacing=3D1 cellPadding=3D0 bgColor=3D#ffffff =
border=3D0>
              <TBODY>
              <TR>
                <TD width=3D"100%" bgColor=3D#6483c3>
                  <TABLE cellSpacing=3D1 cellPadding=3D0 align=3Dright =
bgColor=3D#ffffff=20
                  border=3D0>
                    <TBODY>
                    <TR>
                      <TD bgColor=3D#fc8f1a>
                        <P align=3Dleft><FONT face=3DVerdana=20
                        =
color=3D#ffffff><SMALL><STRONG>Governance</STRONG></SMALL></FONT></P></TD=
>
                      <TD=20
                        =
bgColor=3D#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
                      </TD></TR>
                    <TR>
                      <TD bgColor=3D#aabfe6 colSpan=3D2>
                        <TABLE cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
                        align=3Dcenter bgColor=3D#aabfe6 border=3D0>
                          <TBODY>
                          <TR bgColor=3D#fcab35>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/governor.htm">Governor</A></TD></TR>
                          <TR bgColor=3D#fcab35>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/cm.htm">CM</A>,=20
                              <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/ministers.htm">Ministers</A>=20
                              <FONT=20
                              =
face=3DVerdana><SMALL><SMALL>&amp;</SMALL></SMALL></FONT>=20
                              <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/mp.htm">MP's</A></TD></TR>
                          <TR bgColor=3D#fcab35>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/budget06.htm">Annual=20
                              Budget</A></TD></TR>
                          <TR bgColor=3D#fcab35>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/tel_dir.htm">Telephone=20
                              Directory</A></TD></TR>
                          <TR bgColor=3D#fcab35>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              href=3D"http://goidirectory.nic.in/">GOI=20
                              Directory</A></TD></TR>
                          <TR bgColor=3D#fcab35>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/tenders.htm">Tenders</A></TD></TR>
                          <TR bgColor=3D#fcab35>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/dc_list.htm">District=20
                              =
Administration</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></T=
D></TR></TBODY></TABLE></DIV></TD></TR>
        <TR>
          <TD width=3D202 height=3D22></TD></TR>
        <TR>
          <TD align=3Dright>
            <DIV align=3Dright>
            <TABLE cellSpacing=3D1 cellPadding=3D0 bgColor=3D#ffffff =
border=3D0>
              <TBODY>
              <TR>
                <TD width=3D"100%" bgColor=3D#6483c3>
                  <TABLE cellSpacing=3D1 cellPadding=3D0 align=3Dright =
bgColor=3D#ffffff=20
                  border=3D0>
                    <TBODY>
                    <TR>
                      <TD bgColor=3D#6483c3>
                        <P align=3Dleft><FONT face=3DVerdana=20
                        =
color=3D#ffffff><SMALL><STRONG>Education</STRONG></SMALL></FONT></P></TD>=

                      <TD=20
                        =
bgColor=3D#ffffff>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
                      </TD></TR>
                    <TR>
                      <TD bgColor=3D#aabfe6 colSpan=3D2>
                        <TABLE cellSpacing=3D0 cellPadding=3D0 =
width=3D"100%"=20
                        align=3Dcenter bgColor=3D#aabfe6 border=3D0>
                          <TBODY>
                          <TR bgColor=3D#aabfe6>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/hospital.htm">Hospitals=20
                              List</A></TD></TR>
                          <TR bgColor=3D#aabfe6>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/university.htm">Universities</A></TD>=
</TR>
                          <TR bgColor=3D#aabfe6>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/institute.htm">Research=20
                              Institutes</A></TD></TR>
                          <TR bgColor=3D#aabfe6>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              =
href=3D"http://www.jharkhand.nic.in/colleges.htm">Colleges</A></TD></TR>
                          <TR bgColor=3D#aabfe6>
                            <TD width=3D159 height=3D4>&nbsp;<IMG =
height=3D5=20
                              alt=3D"arrow.gif (46 bytes)"=20
                              =
src=3D"http://www.jharkhand.nic.in/images/arrow.gif"=20
                              width=3D3> <A class=3Da1=20
                              href=3D"http://jharresults.nic.in/"=20
                              target=3D_blank>Exam=20
                      =
Results</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR>=
</TBODY></TABLE></DIV></TD></TR>
        <TR>
          <TD vAlign=3Dtop align=3Dright width=3D26=20
      height=3D18></TD></TR></TBODY></TABLE></DIV></TD></TR>
  <TR align=3Dmiddle>
    <TD vAlign=3Dtop align=3Dleft width=3D780 colSpan=3D5 =
height=3D1><IMG height=3D3=20
      alt=3D"line.gif (1030 bytes)" src=3D"" width=3D779></TD></TR>
  <TR align=3Dmiddle>
    <TD class=3Dt1 vAlign=3Dtop align=3Dmiddle width=3D830 =
bgColor=3D#f0f0f0 colSpan=3D5=20
    height=3D66><FONT face=3DVerdana color=3D#1a2939 =
size=3D1><STRONG>This site is=20
      designed and developed by :</STRONG></FONT><FONT color=3D#1a2939>=20
      <BR></FONT><FONT color=3D#4f4f4f><A class=3Da1=20
      href=3D"http://indiaimage.nic.in/" target=3D_blank>NIC, Jharkhand =
State Unit,=20
      Ranchi</A></FONT><FONT color=3D#1a2939><BR>Content Provided and =
Updated by=20
      :<BR><STRONG>Concerned Departments.</STRONG><BR></FONT><FONT=20
      color=3D#4f4f4f>Any Comments and Suggestion regarding this website =
may be=20
      sent to</FONT><FONT color=3D#1a2939><BR><A class=3Da1=20
      =
href=3D"mailto:webmaster@jhr.nic.in">mailto:webmaster@jhr.nic.in</A></FON=
T></TD></TR>
  <TR align=3Dmiddle>
    <TD class=3Dt1 vAlign=3Dtop align=3Dleft width=3D780 colSpan=3D5 =
height=3D3><IMG=20
      height=3D3 alt=3D"line.gif (1030 bytes)" src=3D""=20
width=3D779></TD></TR></TBODY></TABLE></BODY></HTML>

------=_NextPart_000_0000_01C73BCB.B9A1FF70
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.jharkhand.nic.in/images/logo.jpg

/9j/4AAQSkZJRgABAAEASABIAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCE
ABUODxIPDRUSERIXFhUZHzQiHx0dH0AuMCY0TENQT0tDSUhUX3lmVFlyW0hJaY9qcn2Bh4mHUWWV
n5OEnnmFh4IBFhcXHxsfPiIiPoJXSVeCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKC
goKCgoKCgoKCgoKCgoKCgv/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEB
AQEBAQAAAAAAAAECAwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU
MoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl
ZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK
0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYS
QVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNU
VVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5
usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIAGQDmwMBEQACEQEDEQH/
2gAMAwEAAhEDEQA/ALVejY4biUAFABQAUAFABmgYZpWC4UwEoEFAxGOKBogkfFSzaKKzOSetZM6I
okjt5pRkcD3qSxs1pLCu4rlfUUAJbrnmr2Ey9DNJCcoePSpaTEaVvexy4DfI1ZOFhF0cjrmsxBig
BCKAG4pgIwx1oGULy9SIFQcmqLjEzFuJGk3ZNSzSxfgvuzGixDiX45VcdaLEWHkgAk9BQBzt7dGe
ZmzwDgCqSOuK5VYqNLtrRRHcgLnBqrEORCzc5qW9TFyGCTmp5jNsnS420cxLLaXR2kelLmJsbkQB
jRuuVFLmCxW1GTykB9qOYLGcLvj2FPmHyjxNlWOTwO1HOLkGNOAvBJNCmDiWLO8flS3AHFNyFylr
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
f//Z

------=_NextPart_000_0000_01C73BCB.B9A1FF70
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.jharkhand.nic.in/images/arrow.gif

R0lGODlhAwAFAIABAAAAAP///yH5BAEAAAEALAAAAAADAAUAAAIFRG4YlgUAOw==

------=_NextPart_000_0000_01C73BCB.B9A1FF70
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.jharkhand.nic.in/images/dance1.jpg

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

------=_NextPart_000_0000_01C73BCB.B9A1FF70
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.jharkhand.nic.in/images/calendar-brown.css

DIV.calendar {
	POSITION: relative
}
.calendar {
	BORDER-RIGHT: #f78120 1px solid; BORDER-TOP: #f78120 1px solid; =
FONT-SIZE: 11px; BACKGROUND: #ffd; BORDER-LEFT: #f78120 1px solid; =
CURSOR: default; COLOR: #000; BORDER-BOTTOM: #f78120 1px solid; =
FONT-FAMILY: tahoma,verdana,sans-serif
}
.calendar TABLE {
	BORDER-RIGHT: #f78120 1px solid; BORDER-TOP: #f78120 1px solid; =
FONT-SIZE: 11px; BACKGROUND: #ffd; BORDER-LEFT: #f78120 1px solid; =
CURSOR: default; COLOR: #000; BORDER-BOTTOM: #f78120 1px solid; =
FONT-FAMILY: tahoma,verdana,sans-serif
}
.calendar .button {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; =
PADDING-TOP: 2px; TEXT-ALIGN: center
}
.calendar .nav {
	BACKGROUND: url(menuarrow.gif) #edc no-repeat 100% 100%
}
.calendar THEAD .title {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: =
#cf6228; PADDING-BOTTOM: 2px; COLOR: #fed; PADDING-TOP: 2px; TEXT-ALIGN: =
center
}
.calendar THEAD .headrow {
	BACKGROUND: #edc; COLOR: #000
}
.calendar THEAD .name {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; COLOR: =
#000; PADDING-TOP: 2px; BORDER-BOTTOM: #655 1px solid; TEXT-ALIGN: =
center
}
.calendar THEAD .weekend {
	COLOR: #f00
}
.calendar THEAD .hilite {
	BORDER-RIGHT: #fca14c 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: =
#fca14c 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: =
#fca14c 1px solid; COLOR: #000; PADDING-TOP: 1px; BORDER-BOTTOM: #fca14c =
1px solid; BACKGROUND-COLOR: #faa
}
.calendar THEAD .active {
	PADDING-RIGHT: 0px; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 2px; BACKGROUND-COLOR: #c77
}
.calendar THEAD .daynames {
	BACKGROUND: #fed
}
.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: #bbb
}
.calendar TBODY .oweekend {
	COLOR: #fbb
}
.calendar TABLE .wn {
	BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 3px; PADDING-LEFT: 2px; =
BACKGROUND: #fed; PADDING-BOTTOM: 2px; PADDING-TOP: 2px
}
.calendar TBODY .rowhilite TD {
	BACKGROUND: #ddf
}
.calendar TBODY .rowhilite TD.wn {
	BACKGROUND: #efe
}
.calendar TBODY TD.hilite {
	BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #bbb 1px =
solid; PADDING-LEFT: 1px; BACKGROUND: #ffe; PADDING-BOTTOM: 1px; =
BORDER-LEFT: #bbb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #bbb 1px =
solid
}
.calendar TBODY TD.active {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BACKGROUND: #ddc; =
PADDING-BOTTOM: 0px; PADDING-TOP: 2px
}
.calendar TBODY TD.selected {
	BORDER-RIGHT: #000 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #000 1px =
solid; PADDING-LEFT: 1px; FONT-WEIGHT: bold; BACKGROUND: #e57e00; =
PADDING-BOTTOM: 1px; BORDER-LEFT: #000 1px solid; PADDING-TOP: 1px; =
BORDER-BOTTOM: #000 1px solid
}
.calendar TBODY TD.weekend {
	COLOR: #f00
}
.calendar TBODY TD.today {
	FONT-WEIGHT: bold
}
.calendar TBODY .disabled {
	COLOR: #999
}
.calendar TBODY .emptycell {
	VISIBILITY: hidden
}
.calendar TBODY .emptyrow {
	DISPLAY: none
}
.calendar TFOOT .footrow {
	BACKGROUND: #988; COLOR: #000; TEXT-ALIGN: center
}
.calendar TFOOT .ttip {
	BORDER-TOP: #655 1px solid; BACKGROUND: #dcb; COLOR: #840
}
.calendar TFOOT .hilite {
	BORDER-RIGHT: #f40 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #f40 1px =
solid; PADDING-LEFT: 1px; BACKGROUND: #faa; PADDING-BOTTOM: 1px; =
BORDER-LEFT: #f40 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #f40 1px =
solid
}
.calendar TFOOT .active {
	PADDING-RIGHT: 0px; PADDING-LEFT: 2px; BACKGROUND: #c77; =
PADDING-BOTTOM: 0px; PADDING-TOP: 2px
}
.calendar .combo {
	BORDER-RIGHT: #655 1px solid; BORDER-TOP: #655 1px solid; DISPLAY: =
none; FONT-SIZE: 90%; Z-INDEX: 100; BACKGROUND: #ffe; LEFT: 0px; =
BORDER-LEFT: #655 1px solid; WIDTH: 4em; CURSOR: default; COLOR: #000; =
BORDER-BOTTOM: #655 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 .hilite {
	BACKGROUND: #fc8
}
.calendar .combo .active {
	BORDER-TOP: #a64 1px solid; FONT-WEIGHT: bold; BACKGROUND: #fee; =
BORDER-BOTTOM: #a64 1px solid
}
.calendar TD.time {
	PADDING-RIGHT: 0px; BORDER-TOP: #a88 1px solid; PADDING-LEFT: 0px; =
PADDING-BOTTOM: 1px; PADDING-TOP: 1px; BACKGROUND-COLOR: #fed; =
TEXT-ALIGN: center
}
.calendar TD.time .hour {
	BORDER-RIGHT: #988 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #988 1px =
solid; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; =
BORDER-LEFT: #988 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #988 1px =
solid; BACKGROUND-COLOR: #fff
}
.calendar TD.time .minute {
	BORDER-RIGHT: #988 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #988 1px =
solid; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; =
BORDER-LEFT: #988 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #988 1px =
solid; BACKGROUND-COLOR: #fff
}
.calendar TD.time .ampm {
	BORDER-RIGHT: #988 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #988 1px =
solid; PADDING-LEFT: 4px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; =
BORDER-LEFT: #988 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #988 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: #866; 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_0000_01C73BCB.B9A1FF70
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.jharkhand.nic.in/images/calendar.js

/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
 * -----------------------------------------------------------
 *
 * The DHTML Calendar, version 1.0 "It is happening again"
 *
 * Details and latest version at:
 * www.dynarch.com/projects/calendar
 *
 * This script is developed by Dynarch.com.  Visit us at =
www.dynarch.com.
 *
 * This script is distributed under the GNU Lesser General Public =
License.
 * Read the entire license text here: =
http://www.gnu.org/licenses/lgpl.html
 */

// $Id: calendar.js,v 1.51 2005/03/07 16:44:31 mishoo Exp $

/** The Calendar object constructor. */
Calendar =3D function (firstDayOfWeek, dateStr, onSelected, onClose) {
	// member variables
	this.activeDiv =3D null;
	this.currentDateEl =3D null;
	this.getDateStatus =3D null;
	this.getDateToolTip =3D null;
	this.getDateText =3D null;
	this.timeout =3D null;
	this.onSelected =3D  onSelected || null;
	this.onClose =3D onClose || null;
	this.dragging =3D false;
	this.hidden =3D false;
	this.minYear =3D 1970;
	this.maxYear =3D 2050;
	this.dateFormat =3D Calendar._TT["DEF_DATE_FORMAT"];
	this.ttDateFormat =3D Calendar._TT["TT_DATE_FORMAT"];
	this.isPopup =3D true;
	this.weekNumbers =3D false;
	this.firstDayOfWeek =3D typeof firstDayOfWeek =3D=3D "number" ? =
firstDayOfWeek : Calendar._FD; // 0 for Sunday, 1 for Monday, etc.
	this.showsOtherMonths =3D false;
	this.dateStr =3D dateStr;
	this.ar_days =3D null;
	this.showsTime =3D false;
	this.time24 =3D true;
	this.yearStep =3D 2;
	this.hiliteToday =3D true;
	this.multiple =3D null;
	// HTML elements
	this.table =3D null;
	this.element =3D null;
	this.tbody =3D null;
	this.firstdayname =3D null;
	// Combo boxes
	this.monthsCombo =3D null;
	this.yearsCombo =3D null;
	this.hilitedMonth =3D null;
	this.activeMonth =3D null;
	this.hilitedYear =3D null;
	this.activeYear =3D null;
	// Information
	this.dateClicked =3D false;

	// one-time initializations
	if (typeof Calendar._SDN =3D=3D "undefined") {
		// table of short day names
		if (typeof Calendar._SDN_len =3D=3D "undefined")
			Calendar._SDN_len =3D 3;
		var ar =3D new Array();
		for (var i =3D 8; i > 0;) {
			ar[--i] =3D Calendar._DN[i].substr(0, Calendar._SDN_len);
		}
		Calendar._SDN =3D ar;
		// table of short month names
		if (typeof Calendar._SMN_len =3D=3D "undefined")
			Calendar._SMN_len =3D 3;
		ar =3D new Array();
		for (var i =3D 12; i > 0;) {
			ar[--i] =3D Calendar._MN[i].substr(0, Calendar._SMN_len);
		}
		Calendar._SMN =3D ar;
	}
};

// ** constants

/// "static", needed for event handlers.
Calendar._C =3D null;

/// detect a special case of "web browser"
Calendar.is_ie =3D ( /msie/i.test(navigator.userAgent) &&
		   !/opera/i.test(navigator.userAgent) );

Calendar.is_ie5 =3D ( Calendar.is_ie && /msie =
5\.0/i.test(navigator.userAgent) );

/// detect Opera browser
Calendar.is_opera =3D /opera/i.test(navigator.userAgent);

/// detect KHTML-based browsers
Calendar.is_khtml =3D =
/Konqueror|Safari|KHTML/i.test(navigator.userAgent);

// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a =
separate
//        library, at some point.

Calendar.getAbsolutePos =3D function(el) {
	var SL =3D 0, ST =3D 0;
	var is_div =3D /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
		SL =3D el.scrollLeft;
	if (is_div && el.scrollTop)
		ST =3D el.scrollTop;
	var r =3D { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent) {
		var tmp =3D this.getAbsolutePos(el.offsetParent);
		r.x +=3D tmp.x;
		r.y +=3D tmp.y;
	}
	return r;
};

Calendar.isRelated =3D function (el, evt) {
	var related =3D evt.relatedTarget;
	if (!related) {
		var type =3D evt.type;
		if (type =3D=3D "mouseover") {
			related =3D evt.fromElement;
		} else if (type =3D=3D "mouseout") {
			related =3D evt.toElement;
		}
	}
	while (related) {
		if (related =3D=3D el) {
			return true;
		}
		related =3D related.parentNode;
	}
	return false;
};

Calendar.removeClass =3D function(el, className) {
	if (!(el && el.className)) {
		return;
	}
	var cls =3D el.className.split(" ");
	var ar =3D new Array();
	for (var i =3D cls.length; i > 0;) {
		if (cls[--i] !=3D className) {
			ar[ar.length] =3D cls[i];
		}
	}
	el.className =3D ar.join(" ");
};

Calendar.addClass =3D function(el, className) {
	Calendar.removeClass(el, className);
	el.className +=3D " " + className;
};

// FIXME: the following 2 functions totally suck, are useless and should =
be replaced immediately.
Calendar.getElement =3D function(ev) {
	var f =3D Calendar.is_ie ? window.event.srcElement : ev.currentTarget;
	while (f.nodeType !=3D 1 || /^div$/i.test(f.tagName))
		f =3D f.parentNode;
	return f;
};

Calendar.getTargetElement =3D function(ev) {
	var f =3D Calendar.is_ie ? window.event.srcElement : ev.target;
	while (f.nodeType !=3D 1)
		f =3D f.parentNode;
	return f;
};

Calendar.stopEvent =3D function(ev) {
	ev || (ev =3D window.event);
	if (Calendar.is_ie) {
		ev.cancelBubble =3D true;
		ev.returnValue =3D false;
	} else {
		ev.preventDefault();
		ev.stopPropagation();
	}
	return false;
};

Calendar.addEvent =3D function(el, evname, func) {
	if (el.attachEvent) { // IE
		el.attachEvent("on" + evname, func);
	} else if (el.addEventListener) { // Gecko / W3C
		el.addEventListener(evname, func, true);
	} else {
		el["on" + evname] =3D func;
	}
};

Calendar.removeEvent =3D function(el, evname, func) {
	if (el.detachEvent) { // IE
		el.detachEvent("on" + evname, func);
	} else if (el.removeEventListener) { // Gecko / W3C
		el.removeEventListener(evname, func, true);
	} else {
		el["on" + evname] =3D null;
	}
};

Calendar.createElement =3D function(type, parent) {
	var el =3D null;
	if (document.createElementNS) {
		// use the XHTML namespace; IE won't normally get here unless
		// _they_ "fix" the DOM2 implementation.
		el =3D document.createElementNS("http://www.w3.org/1999/xhtml", type);
	} else {
		el =3D document.createElement(type);
	}
	if (typeof parent !=3D "undefined") {
		parent.appendChild(el);
	}
	return el;
};

// END: UTILITY FUNCTIONS

// BEGIN: CALENDAR STATIC FUNCTIONS

/** Internal -- adds a set of events to make some element behave like a =
button. */
Calendar._add_evs =3D function(el) {
	with (Calendar) {
		addEvent(el, "mouseover", dayMouseOver);
		addEvent(el, "mousedown", dayMouseDown);
		addEvent(el, "mouseout", dayMouseOut);
		if (is_ie) {
			addEvent(el, "dblclick", dayMouseDblClick);
			el.setAttribute("unselectable", true);
		}
	}
};

Calendar.findMonth =3D function(el) {
	if (typeof el.month !=3D "undefined") {
		return el;
	} else if (typeof el.parentNode.month !=3D "undefined") {
		return el.parentNode;
	}
	return null;
};

Calendar.findYear =3D function(el) {
	if (typeof el.year !=3D "undefined") {
		return el;
	} else if (typeof el.parentNode.year !=3D "undefined") {
		return el.parentNode;
	}
	return null;
};

Calendar.showMonthsCombo =3D function () {
	var cal =3D Calendar._C;
	if (!cal) {
		return false;
	}
	var cal =3D cal;
	var cd =3D cal.activeDiv;
	var mc =3D cal.monthsCombo;
	if (cal.hilitedMonth) {
		Calendar.removeClass(cal.hilitedMonth, "hilite");
	}
	if (cal.activeMonth) {
		Calendar.removeClass(cal.activeMonth, "active");
	}
	var mon =3D =
cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];
	Calendar.addClass(mon, "active");
	cal.activeMonth =3D mon;
	var s =3D mc.style;
	s.display =3D "block";
	if (cd.navtype < 0)
		s.left =3D cd.offsetLeft + "px";
	else {
		var mcw =3D mc.offsetWidth;
		if (typeof mcw =3D=3D "undefined")
			// Konqueror brain-dead techniques
			mcw =3D 50;
		s.left =3D (cd.offsetLeft + cd.offsetWidth - mcw) + "px";
	}
	s.top =3D (cd.offsetTop + cd.offsetHeight) + "px";
};

Calendar.showYearsCombo =3D function (fwd) {
	var cal =3D Calendar._C;
	if (!cal) {
		return false;
	}
	var cal =3D cal;
	var cd =3D cal.activeDiv;
	var yc =3D cal.yearsCombo;
	if (cal.hilitedYear) {
		Calendar.removeClass(cal.hilitedYear, "hilite");
	}
	if (cal.activeYear) {
		Calendar.removeClass(cal.activeYear, "active");
	}
	cal.activeYear =3D null;
	var Y =3D cal.date.getFullYear() + (fwd ? 1 : -1);
	var yr =3D yc.firstChild;
	var show =3D false;
	for (var i =3D 12; i > 0; --i) {
		if (Y >=3D cal.minYear && Y <=3D cal.maxYear) {
			yr.innerHTML =3D Y;
			yr.year =3D Y;
			yr.style.display =3D "block";
			show =3D true;
		} else {
			yr.style.display =3D "none";
		}
		yr =3D yr.nextSibling;
		Y +=3D fwd ? cal.yearStep : -cal.yearStep;
	}
	if (show) {
		var s =3D yc.style;
		s.display =3D "block";
		if (cd.navtype < 0)
			s.left =3D cd.offsetLeft + "px";
		else {
			var ycw =3D yc.offsetWidth;
			if (typeof ycw =3D=3D "undefined")
				// Konqueror brain-dead techniques
				ycw =3D 50;
			s.left =3D (cd.offsetLeft + cd.offsetWidth - ycw) + "px";
		}
		s.top =3D (cd.offsetTop + cd.offsetHeight) + "px";
	}
};

// event handlers

Calendar.tableMouseUp =3D function(ev) {
	var cal =3D Calendar._C;
	if (!cal) {
		return false;
	}
	if (cal.timeout) {
		clearTimeout(cal.timeout);
	}
	var el =3D cal.activeDiv;
	if (!el) {
		return false;
	}
	var target =3D Calendar.getTargetElement(ev);
	ev || (ev =3D window.event);
	Calendar.removeClass(el, "active");
	if (target =3D=3D el || target.parentNode =3D=3D el) {
		Calendar.cellClick(el, ev);
	}
	var mon =3D Calendar.findMonth(target);
	var date =3D null;
	if (mon) {
		date =3D new Date(cal.date);
		if (mon.month !=3D date.getMonth()) {
			date.setMonth(mon.month);
			cal.setDate(date);
			cal.dateClicked =3D false;
			cal.callHandler();
		}
	} else {
		var year =3D Calendar.findYear(target);
		if (year) {
			date =3D new Date(cal.date);
			if (year.year !=3D date.getFullYear()) {
				date.setFullYear(year.year);
				cal.setDate(date);
				cal.dateClicked =3D false;
				cal.callHandler();
			}
		}
	}
	with (Calendar) {
		removeEvent(document, "mouseup", tableMouseUp);
		removeEvent(document, "mouseover", tableMouseOver);
		removeEvent(document, "mousemove", tableMouseOver);
		cal._hideCombos();
		_C =3D null;
		return stopEvent(ev);
	}
};

Calendar.tableMouseOver =3D function (ev) {
	var cal =3D Calendar._C;
	if (!cal) {
		return;
	}
	var el =3D cal.activeDiv;
	var target =3D Calendar.getTargetElement(ev);
	if (target =3D=3D el || target.parentNode =3D=3D el) {
		Calendar.addClass(el, "hilite active");
		Calendar.addClass(el.parentNode, "rowhilite");
	} else {
		if (typeof el.navtype =3D=3D "undefined" || (el.navtype !=3D 50 && =
(el.navtype =3D=3D 0 || Math.abs(el.navtype) > 2)))
			Calendar.removeClass(el, "active");
		Calendar.removeClass(el, "hilite");
		Calendar.removeClass(el.parentNode, "rowhilite");
	}
	ev || (ev =3D window.event);
	if (el.navtype =3D=3D 50 && target !=3D el) {
		var pos =3D Calendar.getAbsolutePos(el);
		var w =3D el.offsetWidth;
		var x =3D ev.clientX;
		var dx;
		var decrease =3D true;
		if (x > pos.x + w) {
			dx =3D x - pos.x - w;
			decrease =3D false;
		} else
			dx =3D pos.x - x;

		if (dx < 0) dx =3D 0;
		var range =3D el._range;
		var current =3D el._current;
		var count =3D Math.floor(dx / 10) % range.length;
		for (var i =3D range.length; --i >=3D 0;)
			if (range[i] =3D=3D current)
				break;
		while (count-- > 0)
			if (decrease) {
				if (--i < 0)
					i =3D range.length - 1;
			} else if ( ++i >=3D range.length )
				i =3D 0;
		var newval =3D range[i];
		el.innerHTML =3D newval;

		cal.onUpdateTime();
	}
	var mon =3D Calendar.findMonth(target);
	if (mon) {
		if (mon.month !=3D cal.date.getMonth()) {
			if (cal.hilitedMonth) {
				Calendar.removeClass(cal.hilitedMonth, "hilite");
			}
			Calendar.addClass(mon, "hilite");
			cal.hilitedMonth =3D mon;
		} else if (cal.hilitedMonth) {
			Calendar.removeClass(cal.hilitedMonth, "hilite");
		}
	} else {
		if (cal.hilitedMonth) {
			Calendar.removeClass(cal.hilitedMonth, "hilite");
		}
		var year =3D Calendar.findYear(target);
		if (year) {
			if (year.year !=3D cal.date.getFullYear()) {
				if (cal.hilitedYear) {
					Calendar.removeClass(cal.hilitedYear, "hilite");
				}
				Calendar.addClass(year, "hilite");
				cal.hilitedYear =3D year;
			} else if (cal.hilitedYear) {
				Calendar.removeClass(cal.hilitedYear, "hilite");
			}
		} else if (cal.hilitedYear) {
			Calendar.removeClass(cal.hilitedYear, "hilite");
		}
	}
	return Calendar.stopEvent(ev);
};

Calendar.tableMouseDown =3D function (ev) {
	if (Calendar.getTargetElement(ev) =3D=3D Calendar.getElement(ev)) {
		return Calendar.stopEvent(ev);
	}
};

Calendar.calDragIt =3D function (ev) {
	var cal =3D Calendar._C;
	if (!(cal && cal.dragging)) {
		return false;
	}
	var posX;
	var posY;
	if (Calendar.is_ie) {
		posY =3D window.event.clientY + document.body.scrollTop;
		posX =3D window.event.clientX + document.body.scrollLeft;
	} else {
		posX =3D ev.pageX;
		posY =3D ev.pageY;
	}
	cal.hideShowCovered();
	var st =3D cal.element.style;
	st.left =3D (posX - cal.xOffs) + "px";
	st.top =3D (posY - cal.yOffs) + "px";
	return Calendar.stopEvent(ev);
};

Calendar.calDragEnd =3D function (ev) {
	var cal =3D Calendar._C;
	if (!cal) {
		return false;
	}
	cal.dragging =3D false;
	with (Calendar) {
		removeEvent(document, "mousemove", calDragIt);
		removeEvent(document, "mouseup", calDragEnd);
		tableMouseUp(ev);
	}
	cal.hideShowCovered();
};

Calendar.dayMouseDown =3D function(ev) {
	var el =3D Calendar.getElement(ev);
	if (el.disabled) {
		return false;
	}
	var cal =3D el.calendar;
	cal.activeDiv =3D el;
	Calendar._C =3D cal;
	if (el.navtype !=3D 300) with (Calendar) {
		if (el.navtype =3D=3D 50) {
			el._current =3D el.innerHTML;
			addEvent(document, "mousemove", tableMouseOver);
		} else
			addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", =
tableMouseOver);
		addClass(el, "hilite active");
		addEvent(document, "mouseup", tableMouseUp);
	} else if (cal.isPopup) {
		cal._dragStart(ev);
	}
	if (el.navtype =3D=3D -1 || el.navtype =3D=3D 1) {
		if (cal.timeout) clearTimeout(cal.timeout);
		cal.timeout =3D setTimeout("Calendar.showMonthsCombo()", 250);
	} else if (el.navtype =3D=3D -2 || el.navtype =3D=3D 2) {
		if (cal.timeout) clearTimeout(cal.timeout);
		cal.timeout =3D setTimeout((el.navtype > 0) ? =
"Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", =
250);
	} else {
		cal.timeout =3D null;
	}
	return Calendar.stopEvent(ev);
};

Calendar.dayMouseDblClick =3D function(ev) {
	Calendar.cellClick(Calendar.getElement(ev), ev || window.event);
	if (Calendar.is_ie) {
		document.selection.empty();
	}
};

Calendar.dayMouseOver =3D function(ev) {
	var el =3D Calendar.getElement(ev);
	if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {
		return false;
	}
	if (el.ttip) {
		if (el.ttip.substr(0, 1) =3D=3D "_") {
			el.ttip =3D el.caldate.print(el.calendar.ttDateFormat) + =
el.ttip.substr(1);
		}
		el.calendar.tooltips.innerHTML =3D el.ttip;
	}
	if (el.navtype !=3D 300) {
		Calendar.addClass(el, "hilite");
		if (el.caldate) {
			Calendar.addClass(el.parentNode, "rowhilite");
		}
	}
	return Calendar.stopEvent(ev);
};

Calendar.dayMouseOut =3D function(ev) {
	with (Calendar) {
		var el =3D getElement(ev);
		if (isRelated(el, ev) || _C || el.disabled)
			return false;
		removeClass(el, "hilite");
		if (el.caldate)
			removeClass(el.parentNode, "rowhilite");
		if (el.calendar)
			el.calendar.tooltips.innerHTML =3D _TT["SEL_DATE"];
		return stopEvent(ev);
	}
};

/**
 *  A generic "click" handler :) handles all types of buttons defined in =
this
 *  calendar.
 */
Calendar.cellClick =3D function(el, ev) {
	var cal =3D el.calendar;
	var closing =3D false;
	var newdate =3D false;
	var date =3D null;
	if (typeof el.navtype =3D=3D "undefined") {
		if (cal.currentDateEl) {
			Calendar.removeClass(cal.currentDateEl, "selected");
			Calendar.addClass(el, "selected");
			closing =3D (cal.currentDateEl =3D=3D el);
			if (!closing) {
				cal.currentDateEl =3D el;
			}
		}
		cal.date.setDateOnly(el.caldate);
		date =3D cal.date;
		var other_month =3D !(cal.dateClicked =3D !el.otherMonth);
		if (!other_month && !cal.currentDateEl)
			cal._toggleMultipleDate(new Date(date));
		else
			newdate =3D !el.disabled;
		// a date was clicked
		if (other_month)
			cal._init(cal.firstDayOfWeek, date);
	} else {
		if (el.navtype =3D=3D 200) {
			Calendar.removeClass(el, "hilite");
			cal.callCloseHandler();
			return;
		}
		date =3D new Date(cal.date);
		if (el.navtype =3D=3D 0)
			date.setDateOnly(new Date()); // TODAY
		// unless "today" was clicked, we assume no date was clicked so
		// the selected handler will know not to close the calenar when
		// in single-click mode.
		// cal.dateClicked =3D (el.navtype =3D=3D 0);
		cal.dateClicked =3D false;
		var year =3D date.getFullYear();
		var mon =3D date.getMonth();
		function setMonth(m) {
			var day =3D date.getDate();
			var max =3D date.getMonthDays(m);
			if (day > max) {
				date.setDate(max);
			}
			date.setMonth(m);
		};
		switch (el.navtype) {
		    case 400:
			Calendar.removeClass(el, "hilite");
			var text =3D Calendar._TT["ABOUT"];
			// text =3D "Calendar";
			if (typeof text !=3D "undefined") {
				text +=3D cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";
			} else {
				// FIXME: this should be removed as soon as lang files get updated!
				text =3D "Help Not Available. Sorry";
			}
			 alert(text);
			return;
		    case -2:
			if (year > cal.minYear) {
				date.setFullYear(year - 1);
			}
			break;
		    case -1:
			if (mon > 0) {
				setMonth(mon - 1);
			} else if (year-- > cal.minYear) {
				date.setFullYear(year);
				setMonth(11);
			}
			break;
		    case 1:
			if (mon < 11) {
				setMonth(mon + 1);
			} else if (year < cal.maxYear) {
				date.setFullYear(year + 1);
				setMonth(0);
			}
			break;
		    case 2:
			if (year < cal.maxYear) {
				date.setFullYear(year + 1);
			}
			break;
		    case 100:
			cal.setFirstDayOfWeek(el.fdow);
			return;
		    case 50:
			var range =3D el._range;
			var current =3D el.innerHTML;
			for (var i =3D range.length; --i >=3D 0;)
				if (range[i] =3D=3D current)
					break;
			if (ev && ev.shiftKey) {
				if (--i < 0)
					i =3D range.length - 1;
			} else if ( ++i >=3D range.length )
				i =3D 0;
			var newval =3D range[i];
			el.innerHTML =3D newval;
			cal.onUpdateTime();
			return;
		    case 0:
			// TODAY will bring us here
			if ((typeof cal.getDateStatus =3D=3D "function") &&
			    cal.getDateStatus(date, date.getFullYear(), date.getMonth(), =
date.getDate())) {
				return false;
			}
			break;
		}
		if (!date.equalsTo(cal.date)) {
			cal.setDate(date);
			newdate =3D true;
		} else if (el.navtype =3D=3D 0)
			newdate =3D closing =3D true;
	}
	if (newdate) {
		ev && cal.callHandler();
	}
	if (closing) {
		Calendar.removeClass(el, "hilite");
		ev && cal.callCloseHandler();
	}
};

// END: CALENDAR STATIC FUNCTIONS

// BEGIN: CALENDAR OBJECT FUNCTIONS

/**
 *  This function creates the calendar inside the given parent.  If _par =
is
 *  null than it creates a popup calendar inside the BODY element.  If =
_par is
 *  an element, be it BODY, then it creates a non-popup calendar (still
 *  hidden).  Some properties need to be set before calling this =
function.
 */
Calendar.prototype.create =3D function (_par) {
	var parent =3D null;
	if (! _par) {
		// default parent is the document body, in which case we create
		// a popup calendar.
		parent =3D document.getElementsByTagName("body")[0];
		this.isPopup =3D true;
	} else {
		parent =3D _par;
		this.isPopup =3D false;
	}
	this.date =3D this.dateStr ? new Date(this.dateStr) : new Date();

	var table =3D Calendar.createElement("table");
	this.table =3D table;
	table.cellSpacing =3D 0;
	table.cellPadding =3D 0;
	table.calendar =3D this;
	Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);

	var div =3D Calendar.createElement("div");
	this.element =3D div;
	div.className =3D "calendar";
	if (this.isPopup) {
		div.style.position =3D "absolute";
		div.style.display =3D "none";
	}
	div.appendChild(table);

	var thead =3D Calendar.createElement("thead", table);
	var cell =3D null;
	var row =3D null;

	var cal =3D this;
	var hh =3D function (text, cs, navtype) {
		cell =3D Calendar.createElement("td", row);
		cell.colSpan =3D cs;
		cell.className =3D "button";
		if (navtype !=3D 0 && Math.abs(navtype) <=3D 2)
			cell.className +=3D " nav";
		Calendar._add_evs(cell);
		cell.calendar =3D cal;
		cell.navtype =3D navtype;
		cell.innerHTML =3D "<div unselectable=3D'on'>" + text + "</div>";
		return cell;
	};

	row =3D Calendar.createElement("tr", thead);
	var title_length =3D 6;
	(this.isPopup) && --title_length;
	(this.weekNumbers) && ++title_length;

	hh("?", 1, 400).ttip =3D Calendar._TT["INFO"];
	this.title =3D hh("", title_length, 300);
	this.title.className =3D "title";
	if (this.isPopup) {
		this.title.ttip =3D Calendar._TT["DRAG_TO_MOVE"];
		this.title.style.cursor =3D "move";
		hh("&#x00d7;", 1, 200).ttip =3D Calendar._TT["CLOSE"];
	}

	row =3D Calendar.createElement("tr", thead);
	row.className =3D "headrow";

	this._nav_py =3D hh("&#x00ab;", 1, -2);
	this._nav_py.ttip =3D Calendar._TT["PREV_YEAR"];

	this._nav_pm =3D hh("&#x2039;", 1, -1);
	this._nav_pm.ttip =3D Calendar._TT["PREV_MONTH"];

	this._nav_now =3D hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, =
0);
	this._nav_now.ttip =3D Calendar._TT["GO_TODAY"];

	this._nav_nm =3D hh("&#x203a;", 1, 1);
	this._nav_nm.ttip =3D Calendar._TT["NEXT_MONTH"];

	this._nav_ny =3D hh("&#x00bb;", 1, 2);
	this._nav_ny.ttip =3D Calendar._TT["NEXT_YEAR"];

	// day names
	row =3D Calendar.createElement("tr", thead);
	row.className =3D "daynames";
	if (this.weekNumbers) {
		cell =3D Calendar.createElement("td", row);
		cell.className =3D "name wn";
		cell.innerHTML =3D Calendar._TT["WK"];
	}
	for (var i =3D 7; i > 0; --i) {
		cell =3D Calendar.createElement("td", row);
		if (!i) {
			cell.navtype =3D 100;
			cell.calendar =3D this;
			Calendar._add_evs(cell);
		}
	}
	this.firstdayname =3D (this.weekNumbers) ? row.firstChild.nextSibling : =
row.firstChild;
	this._displayWeekdays();

	var tbody =3D Calendar.createElement("tbody", table);
	this.tbody =3D tbody;

	for (i =3D 6; i > 0; --i) {
		row =3D Calendar.createElement("tr", tbody);
		if (this.weekNumbers) {
			cell =3D Calendar.createElement("td", row);
		}
		for (var j =3D 7; j > 0; --j) {
			cell =3D Calendar.createElement("td", row);
			cell.calendar =3D this;
			Calendar._add_evs(cell);
		}
	}

	if (this.showsTime) {
		row =3D Calendar.createElement("tr", tbody);
		row.className =3D "time";

		cell =3D Calendar.createElement("td", row);
		cell.className =3D "time";
		cell.colSpan =3D 2;
		cell.innerHTML =3D Calendar._TT["TIME"] || "&nbsp;";

		cell =3D Calendar.createElement("td", row);
		cell.className =3D "time";
		cell.colSpan =3D this.weekNumbers ? 4 : 3;

		(function(){
			function makeTimePart(className, init, range_start, range_end) {
				var part =3D Calendar.createElement("span", cell);
				part.className =3D className;
				part.innerHTML =3D init;
				part.calendar =3D cal;
				part.ttip =3D Calendar._TT["TIME_PART"];
				part.navtype =3D 50;
				part._range =3D [];
				if (typeof range_start !=3D "number")
					part._range =3D range_start;
				else {
					for (var i =3D range_start; i <=3D range_end; ++i) {
						var txt;
						if (i < 10 && range_end >=3D 10) txt =3D '0' + i;
						else txt =3D '' + i;
						part._range[part._range.length] =3D txt;
					}
				}
				Calendar._add_evs(part);
				return part;
			};
			var hrs =3D cal.date.getHours();
			var mins =3D cal.date.getMinutes();
			var t12 =3D !cal.time24;
			var pm =3D (hrs > 12);
			if (t12 && pm) hrs -=3D 12;
			var H =3D makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);
			var span =3D Calendar.createElement("span", cell);
			span.innerHTML =3D ":";
			span.className =3D "colon";
			var M =3D makeTimePart("minute", mins, 0, 59);
			var AP =3D null;
			cell =3D Calendar.createElement("td", row);
			cell.className =3D "time";
			cell.colSpan =3D 2;
			if (t12)
				AP =3D makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);
			else
				cell.innerHTML =3D "&nbsp;";

			cal.onSetTime =3D function() {
				var pm, hrs =3D this.date.getHours(),
					mins =3D this.date.getMinutes();
				if (t12) {
					pm =3D (hrs >=3D 12);
					if (pm) hrs -=3D 12;
					if (hrs =3D=3D 0) hrs =3D 12;
					AP.innerHTML =3D pm ? "pm" : "am";
				}
				H.innerHTML =3D (hrs < 10) ? ("0" + hrs) : hrs;
				M.innerHTML =3D (mins < 10) ? ("0" + mins) : mins;
			};

			cal.onUpdateTime =3D function() {
				var date =3D this.date;
				var h =3D parseInt(H.innerHTML, 10);
				if (t12) {
					if (/pm/i.test(AP.innerHTML) && h < 12)
						h +=3D 12;
					else if (/am/i.test(AP.innerHTML) && h =3D=3D 12)
						h =3D 0;
				}
				var d =3D date.getDate();
				var m =3D date.getMonth();
				var y =3D date.getFullYear();
				date.setHours(h);
				date.setMinutes(parseInt(M.innerHTML, 10));
				date.setFullYear(y);
				date.setMonth(m);
				date.setDate(d);
				this.dateClicked =3D false;
				this.callHandler();
			};
		})();
	} else {
		this.onSetTime =3D this.onUpdateTime =3D function() {};
	}

	var tfoot =3D Calendar.createElement("tfoot", table);

	row =3D Calendar.createElement("tr", tfoot);
	row.className =3D "footrow";

	cell =3D hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);
	cell.className =3D "ttip";
	if (this.isPopup) {
		cell.ttip =3D Calendar._TT["DRAG_TO_MOVE"];
		cell.style.cursor =3D "move";
	}
	this.tooltips =3D cell;

	div =3D Calendar.createElement("div", this.element);
	this.monthsCombo =3D div;
	div.className =3D "combo";
	for (i =3D 0; i < Calendar._MN.length; ++i) {
		var mn =3D Calendar.createElement("div");
		mn.className =3D Calendar.is_ie ? "label-IEfix" : "label";
		mn.month =3D i;
		mn.innerHTML =3D Calendar._SMN[i];
		div.appendChild(mn);
	}

	div =3D Calendar.createElement("div", this.element);
	this.yearsCombo =3D div;
	div.className =3D "combo";
	for (i =3D 12; i > 0; --i) {
		var yr =3D Calendar.createElement("div");
		yr.className =3D Calendar.is_ie ? "label-IEfix" : "label";
		div.appendChild(yr);
	}

	this._init(this.firstDayOfWeek, this.date);
	parent.appendChild(this.element);
};

/** keyboard navigation, only for popup calendars */
Calendar._keyEvent =3D function(ev) {
	var cal =3D window._dynarch_popupCalendar;
	if (!cal || cal.multiple)
		return false;
	(Calendar.is_ie) && (ev =3D window.event);
	var act =3D (Calendar.is_ie || ev.type =3D=3D "keypress"),
		K =3D ev.keyCode;
	if (ev.ctrlKey) {
		switch (K) {
		    case 37: // KEY left
			act && Calendar.cellClick(cal._nav_pm);
			break;
		    case 38: // KEY up
			act && Calendar.cellClick(cal._nav_py);
			break;
		    case 39: // KEY right
			act && Calendar.cellClick(cal._nav_nm);
			break;
		    case 40: // KEY down
			act && Calendar.cellClick(cal._nav_ny);
			break;
		    default:
			return false;
		}
	} else switch (K) {
	    case 32: // KEY space (now)
		Calendar.cellClick(cal._nav_now);
		break;
	    case 27: // KEY esc
		act && cal.callCloseHandler();
		break;
	    case 37: // KEY left
	    case 38: // KEY up
	    case 39: // KEY right
	    case 40: // KEY down
		if (act) {
			var prev, x, y, ne, el, step;
			prev =3D K =3D=3D 37 || K =3D=3D 38;
			step =3D (K =3D=3D 37 || K =3D=3D 39) ? 1 : 7;
			function setVars() {
				el =3D cal.currentDateEl;
				var p =3D el.pos;
				x =3D p & 15;
				y =3D p >> 4;
				ne =3D cal.ar_days[y][x];
			};setVars();
			function prevMonth() {
				var date =3D new Date(cal.date);
				date.setDate(date.getDate() - step);
				cal.setDate(date);
			};
			function nextMonth() {
				var date =3D new Date(cal.date);
				date.setDate(date.getDate() + step);
				cal.setDate(date);
			};
			while (1) {
				switch (K) {
				    case 37: // KEY left
					if (--x >=3D 0)
						ne =3D cal.ar_days[y][x];
					else {
						x =3D 6;
						K =3D 38;
						continue;
					}
					break;
				    case 38: // KEY up
					if (--y >=3D 0)
						ne =3D cal.ar_days[y][x];
					else {
						prevMonth();
						setVars();
					}
					break;
				    case 39: // KEY right
					if (++x < 7)
						ne =3D cal.ar_days[y][x];
					else {
						x =3D 0;
						K =3D 40;
						continue;
					}
					break;
				    case 40: // KEY down
					if (++y < cal.ar_days.length)
						ne =3D cal.ar_days[y][x];
					else {
						nextMonth();
						setVars();
					}
					break;
				}
				break;
			}
			if (ne) {
				if (!ne.disabled)
					Calendar.cellClick(ne);
				else if (prev)
					prevMonth();
				else
					nextMonth();
			}
		}
		break;
	    case 13: // KEY enter
		if (act)
			Calendar.cellClick(cal.currentDateEl, ev);
		break;
	    default:
		return false;
	}
	return Calendar.stopEvent(ev);
};

/**
 *  (RE)Initializes the calendar to the given date and firstDayOfWeek
 */
Calendar.prototype._init =3D function (firstDayOfWeek, date) {
	var today =3D new Date(),
		TY =3D today.getFullYear(),
		TM =3D today.getMonth(),
		TD =3D today.getDate();
	this.table.style.visibility =3D "hidden";
	var year =3D date.getFullYear();
	if (year < this.minYear) {
		year =3D this.minYear;
		date.setFullYear(year);
	} else if (year > this.maxYear) {
		year =3D this.maxYear;
		date.setFullYear(year);
	}
	this.firstDayOfWeek =3D firstDayOfWeek;
	this.date =3D new Date(date);
	var month =3D date.getMonth();
	var mday =3D date.getDate();
	var no_days =3D date.getMonthDays();

	// calendar voodoo for computing the first day that would actually be
	// displayed in the calendar, even if it's from the previous month.
	// WARNING: this is magic. ;-)
	date.setDate(1);
	var day1 =3D (date.getDay() - this.firstDayOfWeek) % 7;
	if (day1 < 0)
		day1 +=3D 7;
	date.setDate(-day1);
	date.setDate(date.getDate() + 1);

	var row =3D this.tbody.firstChild;
	var MN =3D Calendar._SMN[month];
	var ar_days =3D this.ar_days =3D new Array();
	var weekend =3D Calendar._TT["WEEKEND"];
	var dates =3D this.multiple ? (this.datesCells =3D {}) : null;
	for (var i =3D 0; i < 6; ++i, row =3D row.nextSibling) {
		var cell =3D row.firstChild;
		if (this.weekNumbers) {
			cell.className =3D "day wn";
			cell.innerHTML =3D date.getWeekNumber();
			cell =3D cell.nextSibling;
		}
		row.className =3D "daysrow";
		var hasdays =3D false, iday, dpos =3D ar_days[i] =3D [];
		for (var j =3D 0; j < 7; ++j, cell =3D cell.nextSibling, =
date.setDate(iday + 1)) {
			iday =3D date.getDate();
			var wday =3D date.getDay();
			cell.className =3D "day";
			cell.pos =3D i << 4 | j;
			dpos[j] =3D cell;
			var current_month =3D (date.getMonth() =3D=3D month);
			if (!current_month) {
				if (this.showsOtherMonths) {
					cell.className +=3D " othermonth";
					cell.otherMonth =3D true;
				} else {
					cell.className =3D "emptycell";
					cell.innerHTML =3D "&nbsp;";
					cell.disabled =3D true;
					continue;
				}
			} else {
				cell.otherMonth =3D false;
				hasdays =3D true;
			}
			cell.disabled =3D false;
			cell.innerHTML =3D this.getDateText ? this.getDateText(date, iday) : =
iday;
			if (dates)
				dates[date.print("%Y%m%d")] =3D cell;
			if (this.getDateStatus) {
				var status =3D this.getDateStatus(date, year, month, iday);
				if (this.getDateToolTip) {
					var toolTip =3D this.getDateToolTip(date, year, month, iday);
					if (toolTip)
						cell.title =3D toolTip;
				}
				if (status =3D=3D=3D true) {
					cell.className +=3D " disabled";
					cell.disabled =3D true;
				} else {
					if (/disabled/i.test(status))
						cell.disabled =3D true;
					cell.className +=3D " " + status;
				}
			}
			if (!cell.disabled) {
				cell.caldate =3D new Date(date);
				cell.ttip =3D "_";
				if (!this.multiple && current_month
				    && iday =3D=3D mday && this.hiliteToday) {
					cell.className +=3D " selected";
					this.currentDateEl =3D cell;
				}
				if (date.getFullYear() =3D=3D TY &&
				    date.getMonth() =3D=3D TM &&
				    iday =3D=3D TD) {
					cell.className +=3D " today";
					cell.ttip +=3D Calendar._TT["PART_TODAY"];
				}
				if (weekend.indexOf(wday.toString()) !=3D -1)
					cell.className +=3D cell.otherMonth ? " oweekend" : " weekend";
			}
		}
		if (!(hasdays || this.showsOtherMonths))
			row.className =3D "emptyrow";
	}
	this.title.innerHTML =3D Calendar._MN[month] + ", " + year;
	this.onSetTime();
	this.table.style.visibility =3D "visible";
	this._initMultipleDates();
	// PROFILE
	// this.tooltips.innerHTML =3D "Generated in " + ((new Date()) - today) =
+ " ms";
};

Calendar.prototype._initMultipleDates =3D function() {
	if (this.multiple) {
		for (var i in this.multiple) {
			var cell =3D this.datesCells[i];
			var d =3D this.multiple[i];
			if (!d)
				continue;
			if (cell)
				cell.className +=3D " selected";
		}
	}
};

Calendar.prototype._toggleMultipleDate =3D function(date) {
	if (this.multiple) {
		var ds =3D date.print("%Y%m%d");
		var cell =3D this.datesCells[ds];
		if (cell) {
			var d =3D this.multiple[ds];
			if (!d) {
				Calendar.addClass(cell, "selected");
				this.multiple[ds] =3D date;
			} else {
				Calendar.removeClass(cell, "selected");
				delete this.multiple[ds];
			}
		}
	}
};

Calendar.prototype.setDateToolTipHandler =3D function (unaryFunction) {
	this.getDateToolTip =3D unaryFunction;
};

/**
 *  Calls _init function above for going to a certain date (but only if =
the
 *  date is different than the currently selected one).
 */
Calendar.prototype.setDate =3D function (date) {
	if (!date.equalsTo(this.date)) {
		this._init(this.firstDayOfWeek, date);
	}
};

/**
 *  Refreshes the calendar.  Useful if the "disabledHandler" function is
 *  dynamic, meaning that the list of disabled date can change at =
runtime.
 *  Just * call this function if you think that the list of disabled =
dates
 *  should * change.
 */
Calendar.prototype.refresh =3D function () {
	this._init(this.firstDayOfWeek, this.date);
};

/** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for =
Monday, etc.). */
Calendar.prototype.setFirstDayOfWeek =3D function (firstDayOfWeek) {
	this._init(firstDayOfWeek, this.date);
	this._displayWeekdays();
};

/**
 *  Allows customization of what dates are enabled.  The "unaryFunction"
 *  parameter must be a function object that receives the date (as a JS =
Date
 *  object) and returns a boolean value.  If the returned value is true =
then
 *  the passed date will be marked as disabled.
 */
Calendar.prototype.setDateStatusHandler =3D =
Calendar.prototype.setDisabledHandler =3D function (unaryFunction) {
	this.getDateStatus =3D unaryFunction;
};

/** Customization of allowed year range for the calendar. */
Calendar.prototype.setRange =3D function (a, z) {
	this.minYear =3D a;
	this.maxYear =3D z;
};

/** Calls the first user handler (selectedHandler). */
Calendar.prototype.callHandler =3D function () {
	if (this.onSelected) {
		this.onSelected(this, this.date.print(this.dateFormat));
	}
};

/** Calls the second user handler (closeHandler). */
Calendar.prototype.callCloseHandler =3D function () {
	if (this.onClose) {
		this.onClose(this);
	}
	this.hideShowCovered();
};

/** Removes the calendar object from the DOM tree and destroys it. */
Calendar.prototype.destroy =3D function () {
	var el =3D this.element.parentNode;
	el.removeChild(this.element);
	Calendar._C =3D null;
	window._dynarch_popupCalendar =3D null;
};

/**
 *  Moves the calendar element to a different section in the DOM tree =
(changes
 *  its parent).
 */
Calendar.prototype.reparent =3D function (new_parent) {
	var el =3D this.element;
	el.parentNode.removeChild(el);
	new_parent.appendChild(el);
};

// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the =
open
// calendar this function closes it.
Calendar._checkCalendar =3D function(ev) {
	var calendar =3D window._dynarch_popupCalendar;
	if (!calendar) {
		return false;
	}
	var el =3D Calendar.is_ie ? Calendar.getElement(ev) : =
Calendar.getTargetElement(ev);
	for (; el !=3D null && el !=3D calendar.element; el =3D el.parentNode);
	if (el =3D=3D null) {
		// calls closeHandler which should hide the calendar.
		window._dynarch_popupCalendar.callCloseHandler();
		return Calendar.stopEvent(ev);
	}
};

/** Shows the calendar. */
Calendar.prototype.show =3D function () {
	var rows =3D this.table.getElementsByTagName("tr");
	for (var i =3D rows.length; i > 0;) {
		var row =3D rows[--i];
		Calendar.removeClass(row, "rowhilite");
		var cells =3D row.getElementsByTagName("td");
		for (var j =3D cells.length; j > 0;) {
			var cell =3D cells[--j];
			Calendar.removeClass(cell, "hilite");
			Calendar.removeClass(cell, "active");
		}
	}
	this.element.style.display =3D "block";
	this.hidden =3D false;
	if (this.isPopup) {
		window._dynarch_popupCalendar =3D this;
		Calendar.addEvent(document, "keydown", Calendar._keyEvent);
		Calendar.addEvent(document, "keypress", Calendar._keyEvent);
		Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.hideShowCovered();
};

/**
 *  Hides the calendar.  Also removes any "hilite" from the class of any =
TD
 *  element.
 */
Calendar.prototype.hide =3D function () {
	if (this.isPopup) {
		Calendar.removeEvent(document, "keydown", Calendar._keyEvent);
		Calendar.removeEvent(document, "keypress", Calendar._keyEvent);
		Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);
	}
	this.element.style.display =3D "none";
	this.hidden =3D true;
	this.hideShowCovered();
};

/**
 *  Shows the calendar at a given absolute position (beware that, =
depending on
 *  the calendar element style -- position property -- this might be =
relative
 *  to the parent's containing rectangle).
 */
Calendar.prototype.showAt =3D function (x, y) {
	var s =3D this.element.style;
	s.left =3D x + "px";
	s.top =3D y + "px";
	this.show();
};

/** Shows the calendar near a given element. */
Calendar.prototype.showAtElement =3D function (el, opts) {
	var self =3D this;
	var p =3D Calendar.getAbsolutePos(el);
	if (!opts || typeof opts !=3D "string") {
		this.showAt(p.x, p.y + el.offsetHeight);
		return true;
	}
	function fixPosition(box) {
		if (box.x < 0)
			box.x =3D 0;
		if (box.y < 0)
			box.y =3D 0;
		var cp =3D document.createElement("div");
		var s =3D cp.style;
		s.position =3D "absolute";
		s.right =3D s.bottom =3D s.width =3D s.height =3D "0px";
		document.body.appendChild(cp);
		var br =3D Calendar.getAbsolutePos(cp);
		document.body.removeChild(cp);
		if (Calendar.is_ie) {
			br.y +=3D document.body.scrollTop;
			br.x +=3D document.body.scrollLeft;
		} else {
			br.y +=3D window.scrollY;
			br.x +=3D window.scrollX;
		}
		var tmp =3D box.x + box.width - br.x;
		if (tmp > 0) box.x -=3D tmp;
		tmp =3D box.y + box.height - br.y;
		if (tmp > 0) box.y -=3D tmp;
	};
	this.element.style.display =3D "block";
	Calendar.continuation_for_the_fucking_khtml_browser =3D function() {
		var w =3D self.element.offsetWidth;
		var h =3D self.element.offsetHeight;
		self.element.style.display =3D "none";
		var valign =3D opts.substr(0, 1);
		var halign =3D "l";
		if (opts.length > 1) {
			halign =3D opts.substr(1, 1);
		}
		// vertical alignment
		switch (valign) {
		    case "T": p.y -=3D h; break;
		    case "B": p.y +=3D el.offsetHeight; break;
		    case "C": p.y +=3D (el.offsetHeight - h) / 2; break;
		    case "t": p.y +=3D el.offsetHeight - h; break;
		    case "b": break; // already there
		}
		// horizontal alignment
		switch (halign) {
		    case "L": p.x -=3D w; break;
		    case "R": p.x +=3D el.offsetWidth; break;
		    case "C": p.x +=3D (el.offsetWidth - w) / 2; break;
		    case "l": p.x +=3D el.offsetWidth - w; break;
		    case "r": break; // already there
		}
		p.width =3D w;
		p.height =3D h + 40;
		self.monthsCombo.style.display =3D "none";
		fixPosition(p);
		self.showAt(p.x, p.y);
	};
	if (Calendar.is_khtml)
		setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", =
10);
	else
		Calendar.continuation_for_the_fucking_khtml_browser();
};

/** Customizes the date format. */
Calendar.prototype.setDateFormat =3D function (str) {
	this.dateFormat =3D str;
};

/** Customizes the tooltip date format. */
Calendar.prototype.setTtDateFormat =3D function (str) {
	this.ttDateFormat =3D str;
};

/**
 *  Tries to identify the date represented in a string.  If successful =
it also
 *  calls this.setDate which moves the calendar to the given date.
 */
Calendar.prototype.parseDate =3D function(str, fmt) {
	if (!fmt)
		fmt =3D this.dateFormat;
	this.setDate(Date.parseDate(str, fmt));
};

Calendar.prototype.hideShowCovered =3D function () {
	if (!Calendar.is_ie && !Calendar.is_opera)
		return;
	function getVisib(obj){
		var value =3D obj.style.visibility;
		if (!value) {
			if (document.defaultView && typeof =
(document.defaultView.getComputedStyle) =3D=3D "function") { // Gecko, =
W3C
				if (!Calendar.is_khtml)
					value =3D document.defaultView.
						getComputedStyle(obj, "").getPropertyValue("visibility");
				else
					value =3D '';
			} else if (obj.currentStyle) { // IE
				value =3D obj.currentStyle.visibility;
			} else
				value =3D '';
		}
		return value;
	};

	var tags =3D new Array("applet", "iframe", "select");
	var el =3D this.element;

	var p =3D Calendar.getAbsolutePos(el);
	var EX1 =3D p.x;
	var EX2 =3D el.offsetWidth + EX1;
	var EY1 =3D p.y;
	var EY2 =3D el.offsetHeight + EY1;

	for (var k =3D tags.length; k > 0; ) {
		var ar =3D document.getElementsByTagName(tags[--k]);
		var cc =3D null;

		for (var i =3D ar.length; i > 0;) {
			cc =3D ar[--i];

			p =3D Calendar.getAbsolutePos(cc);
			var CX1 =3D p.x;
			var CX2 =3D cc.offsetWidth + CX1;
			var CY1 =3D p.y;
			var CY2 =3D cc.offsetHeight + CY1;

			if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 =
< EY1)) {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility =3D getVisib(cc);
				}
				cc.style.visibility =3D cc.__msh_save_visibility;
			} else {
				if (!cc.__msh_save_visibility) {
					cc.__msh_save_visibility =3D getVisib(cc);
				}
				cc.style.visibility =3D "hidden";
			}
		}
	}
};

/** Internal function; it displays the bar with the names of the =
weekday. */
Calendar.prototype._displayWeekdays =3D function () {
	var fdow =3D this.firstDayOfWeek;
	var cell =3D this.firstdayname;
	var weekend =3D Calendar._TT["WEEKEND"];
	for (var i =3D 0; i < 7; ++i) {
		cell.className =3D "day name";
		var realday =3D (i + fdow) % 7;
		if (i) {
			cell.ttip =3D Calendar._TT["DAY_FIRST"].replace("%s", =
Calendar._DN[realday]);
			cell.navtype =3D 100;
			cell.calendar =3D this;
			cell.fdow =3D realday;
			Calendar._add_evs(cell);
		}
		if (weekend.indexOf(realday.toString()) !=3D -1) {
			Calendar.addClass(cell, "weekend");
		}
		cell.innerHTML =3D Calendar._SDN[(i + fdow) % 7];
		cell =3D cell.nextSibling;
	}
};

/** Internal function.  Hides all combo boxes that might be displayed. =
*/
Calendar.prototype._hideCombos =3D function () {
	this.monthsCombo.style.display =3D "none";
	this.yearsCombo.style.display =3D "none";
};

/** Internal function.  Starts dragging the element. */
Calendar.prototype._dragStart =3D function (ev) {
	if (this.dragging) {
		return;
	}
	this.dragging =3D true;
	var posX;
	var posY;
	if (Calendar.is_ie) {
		posY =3D window.event.clientY + document.body.scrollTop;
		posX =3D window.event.clientX + document.body.scrollLeft;
	} else {
		posY =3D ev.clientY + window.scrollY;
		posX =3D ev.clientX + window.scrollX;
	}
	var st =3D this.element.style;
	this.xOffs =3D posX - parseInt(st.left);
	this.yOffs =3D posY - parseInt(st.top);
	with (Calendar) {
		addEvent(document, "mousemove", calDragIt);
		addEvent(document, "mouseup", calDragEnd);
	}
};

// BEGIN: DATE OBJECT PATCHES

/** Adds the number of days array to the Date object. */
Date._MD =3D new Array(31,28,31,30,31,30,31,31,30,31,30,31);

/** Constants used for time computations */
Date.SECOND =3D 1000 /* milliseconds */;
Date.MINUTE =3D 60 * Date.SECOND;
Date.HOUR   =3D 60 * Date.MINUTE;
Date.DAY    =3D 24 * Date.HOUR;
Date.WEEK   =3D  7 * Date.DAY;

Date.parseDate =3D function(str, fmt) {
	var today =3D new Date();
	var y =3D 0;
	var m =3D -1;
	var d =3D 0;
	var a =3D str.split(/\W+/);
	var b =3D fmt.match(/%./g);
	var i =3D 0, j =3D 0;
	var hr =3D 0;
	var min =3D 0;
	for (i =3D 0; i < a.length; ++i) {
		if (!a[i])
			continue;
		switch (b[i]) {
		    case "%d":
		    case "%e":
			d =3D parseInt(a[i], 10);
			break;

		    case "%m":
			m =3D parseInt(a[i], 10) - 1;
			break;

		    case "%Y":
		    case "%y":
			y =3D parseInt(a[i], 10);
			(y < 100) && (y +=3D (y > 29) ? 1900 : 2000);
			break;

		    case "%b":
		    case "%B":
			for (j =3D 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() =3D=3D =
a[i].toLowerCase()) { m =3D j; break; }
			}
			break;

		    case "%H":
		    case "%I":
		    case "%k":
		    case "%l":
			hr =3D parseInt(a[i], 10);
			break;

		    case "%P":
		    case "%p":
			if (/pm/i.test(a[i]) && hr < 12)
				hr +=3D 12;
			else if (/am/i.test(a[i]) && hr >=3D 12)
				hr -=3D 12;
			break;

		    case "%M":
			min =3D parseInt(a[i], 10);
			break;
		}
	}
	if (isNaN(y)) y =3D today.getFullYear();
	if (isNaN(m)) m =3D today.getMonth();
	if (isNaN(d)) d =3D today.getDate();
	if (isNaN(hr)) hr =3D today.getHours();
	if (isNaN(min)) min =3D today.getMinutes();
	if (y !=3D 0 && m !=3D -1 && d !=3D 0)
		return new Date(y, m, d, hr, min, 0);
	y =3D 0; m =3D -1; d =3D 0;
	for (i =3D 0; i < a.length; ++i) {
		if (a[i].search(/[a-zA-Z]+/) !=3D -1) {
			var t =3D -1;
			for (j =3D 0; j < 12; ++j) {
				if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() =3D=3D =
a[i].toLowerCase()) { t =3D j; break; }
			}
			if (t !=3D -1) {
				if (m !=3D -1) {
					d =3D m+1;
				}
				m =3D t;
			}
		} else if (parseInt(a[i], 10) <=3D 12 && m =3D=3D -1) {
			m =3D a[i]-1;
		} else if (parseInt(a[i], 10) > 31 && y =3D=3D 0) {
			y =3D parseInt(a[i], 10);
			(y < 100) && (y +=3D (y > 29) ? 1900 : 2000);
		} else if (d =3D=3D 0) {
			d =3D a[i];
		}
	}
	if (y =3D=3D 0)
		y =3D today.getFullYear();
	if (m !=3D -1 && d !=3D 0)
		return new Date(y, m, d, hr, min, 0);
	return today;
};

/** Returns the number of days in the current month */
Date.prototype.getMonthDays =3D function(month) {
	var year =3D this.getFullYear();
	if (typeof month =3D=3D "undefined") {
		month =3D this.getMonth();
	}
	if (((0 =3D=3D (year%4)) && ( (0 !=3D (year%100)) || (0 =3D=3D =
(year%400)))) && month =3D=3D 1) {
		return 29;
	} else {
		return Date._MD[month];
	}
};

/** Returns the number of day in the year. */
Date.prototype.getDayOfYear =3D function() {
	var now =3D new Date(this.getFullYear(), this.getMonth(), =
this.getDate(), 0, 0, 0);
	var then =3D new Date(this.getFullYear(), 0, 0, 0, 0, 0);
	var time =3D now - then;
	return Math.floor(time / Date.DAY);
};

/** Returns the number of the week in year, as defined in ISO 8601. */
Date.prototype.getWeekNumber =3D function() {
	var d =3D new Date(this.getFullYear(), this.getMonth(), this.getDate(), =
0, 0, 0);
	var DoW =3D d.getDay();
	d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu
	var ms =3D d.valueOf(); // GMT
	d.setMonth(0);
	d.setDate(4); // Thu in Week 1
	return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
};

/** Checks date and time equality */
Date.prototype.equalsTo =3D function(date) {
	return ((this.getFullYear() =3D=3D date.getFullYear()) &&
		(this.getMonth() =3D=3D date.getMonth()) &&
		(this.getDate() =3D=3D date.getDate()) &&
		(this.getHours() =3D=3D date.getHours()) &&
		(this.getMinutes() =3D=3D date.getMinutes()));
};

/** Set only the year, month, date parts (keep existing time) */
Date.prototype.setDateOnly =3D function(date) {
	var tmp =3D new Date(date);
	this.setDate(1);
	this.setFullYear(tmp.getFullYear());
	this.setMonth(tmp.getMonth());
	this.setDate(tmp.getDate());
};

/** Prints the date in a string according to the given format. */
Date.prototype.print =3D function (str) {
	var m =3D this.getMonth();
	var d =3D this.getDate();
	var y =3D this.getFullYear();
	var wn =3D this.getWeekNumber();
	var w =3D this.getDay();
	var s =3D {};
	var hr =3D this.getHours();
	var pm =3D (hr >=3D 12);
	var ir =3D (pm) ? (hr - 12) : hr;
	var dy =3D this.getDayOfYear();
	if (ir =3D=3D 0)
		ir =3D 12;
	var min =3D this.getMinutes();
	var sec =3D this.getSeconds();
	s["%a"] =3D Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N]
	s["%A"] =3D Calendar._DN[w]; // full weekday name
	s["%b"] =3D Calendar._SMN[m]; // abbreviated month name [FIXME: I18N]
	s["%B"] =3D Calendar._MN[m]; // full month name
	// FIXME: %c : preferred date and time representation for the current =
locale
	s["%C"] =3D 1 + Math.floor(y / 100); // the century number
	s["%d"] =3D (d < 10) ? ("0" + d) : d; // the day of the month (range 01 =
to 31)
	s["%e"] =3D d; // the day of the month (range 1 to 31)
	// FIXME: %D : american date style: %m/%d/%y
	// FIXME: %E, %F, %G, %g, %h (man strftime)
	s["%H"] =3D (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h =
format)
	s["%I"] =3D (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h =
format)
	s["%j"] =3D (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; =
// day of the year (range 001 to 366)
	s["%k"] =3D hr;		// hour, range 0 to 23 (24h format)
	s["%l"] =3D ir;		// hour, range 1 to 12 (12h format)
	s["%m"] =3D (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12
	s["%M"] =3D (min < 10) ? ("0" + min) : min; // minute, range 00 to 59
	s["%n"] =3D "\n";		// a newline character
	s["%p"] =3D pm ? "PM" : "AM";
	s["%P"] =3D pm ? "pm" : "am";
	// FIXME: %r : the time in am/pm notation %I:%M:%S %p
	// FIXME: %R : the time in 24-hour notation %H:%M
	s["%s"] =3D Math.floor(this.getTime() / 1000);
	s["%S"] =3D (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59
	s["%t"] =3D "\t";		// a tab character
	// FIXME: %T : the time in 24-hour notation (%H:%M:%S)
	s["%U"] =3D s["%W"] =3D s["%V"] =3D (wn < 10) ? ("0" + wn) : wn;
	s["%u"] =3D w + 1;	// the day of the week (range 1 to 7, 1 =3D MON)
	s["%w"] =3D w;		// the day of the week (range 0 to 6, 0 =3D SUN)
	// FIXME: %x : preferred date representation for the current locale =
without the time
	// FIXME: %X : preferred time representation for the current locale =
without the date
	s["%y"] =3D ('' + y).substr(2, 2); // year without the century (range =
00 to 99)
	s["%Y"] =3D y;		// year with the century
	s["%%"] =3D "%";		// a literal '%' character

	var re =3D /%./g;
	if (!Calendar.is_ie5 && !Calendar.is_khtml)
		return str.replace(re, function (par) { return s[par] || par; });

	var a =3D str.match(re);
	for (var i =3D 0; i < a.length; i++) {
		var tmp =3D s[a[i]];
		if (tmp) {
			re =3D new RegExp(a[i], 'g');
			str =3D str.replace(re, tmp);
		}
	}

	return str;
};

Date.prototype.__msh_oldSetFullYear =3D Date.prototype.setFullYear;
Date.prototype.setFullYear =3D function(y) {
	var d =3D new Date(this);
	d.__msh_oldSetFullYear(y);
	if (d.getMonth() !=3D this.getMonth())
		this.setDate(28);
	this.__msh_oldSetFullYear(y);
};

// END: DATE OBJECT PATCHES


// global object that remembers the calendar
window._dynarch_popupCalendar =3D null;

------=_NextPart_000_0000_01C73BCB.B9A1FF70
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.jharkhand.nic.in/images/calendar-en.js

// ** I18N

// Calendar EN language
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
// Encoding: any
// Distributed under the same terms as the calendar itself.

// For translators: please use UTF-8 if possible.  We strongly believe =
that
// Unicode is the answer to a real internationalized world.  Also please
// include your contact information in the header, as can be seen above.

// full day names
Calendar._DN =3D new Array
("Sunday",
 "Monday",
 "Tuesday",
 "Wednesday",
 "Thursday",
 "Friday",
 "Saturday",
 "Sunday");

// Please note that the following array of short day names (and the same =
goes
// for short month names, _SMN) isn't absolutely necessary.  We give it =
here
// for exemplification on how one can customize the short day names, but =
if
// they are simply the first N letters of the full name you can simply =
say:
//
//   Calendar._SDN_len =3D N; // short day name length
//   Calendar._SMN_len =3D N; // short month name length
//
// If N =3D 3 then this is not needed either since we assume a value of =
3 if not
// present, to be compatible with translation files that were written =
before
// this feature.

// short day names
Calendar._SDN =3D new Array
("Sun",
 "Mon",
 "Tue",
 "Wed",
 "Thu",
 "Fri",
 "Sat",
 "Sun");

// First day of the week. "0" means display Sunday first, "1" means =
display
// Monday first, etc.
Calendar._FD =3D 0;

// full month names
Calendar._MN =3D new Array
("January",
 "February",
 "March",
 "April",
 "May",
 "June",
 "July",
 "August",
 "September",
 "October",
 "November",
 "December");

// short month names
Calendar._SMN =3D new Array
("Jan",
 "Feb",
 "Mar",
 "Apr",
 "May",
 "Jun",
 "Jul",
 "Aug",
 "Sep",
 "Oct",
 "Nov",
 "Dec");

// tooltips
Calendar._TT =3D {};
Calendar._TT["INFO"] =3D "About the calendar";

Calendar._TT["ABOUT"] =3D
" Date selection:\n" +
"- Use the \xab, \xbb buttons to select year\n" +
"- Use the " + String.fromCharCode(0x2039) + ", " + =
String.fromCharCode(0x203a) + " buttons to select month\n" +
"- Hold mouse button on any of the above buttons for faster selection.";
Calendar._TT["ABOUT_TIME"] =3D "\n\n" +
"Time selection:\n" +
"- Click on any of the time parts to increase it\n" +
"- or Shift-click to decrease it\n" +
"- or click and drag for faster selection.";

Calendar._TT["PREV_YEAR"] =3D "Prev. year (hold for menu)";
Calendar._TT["PREV_MONTH"] =3D "Prev. month (hold for menu)";
Calendar._TT["GO_TODAY"] =3D "Go Today";
Calendar._TT["NEXT_MONTH"] =3D "Next month (hold for menu)";
Calendar._TT["NEXT_YEAR"] =3D "Next year (hold for menu)";
Calendar._TT["SEL_DATE"] =3D "Select date";
Calendar._TT["DRAG_TO_MOVE"] =3D "Drag to move";
Calendar._TT["PART_TODAY"] =3D " (today)";

// the following is to inform that "%s" is to be the first day of week
// %s will be replaced with the day name.
Calendar._TT["DAY_FIRST"] =3D "Display %s first";

// This may be locale-dependent.  It specifies the week-end days, as an =
array
// of comma-separated numbers.  The numbers are from 0 to 6: 0 means =
Sunday, 1
// means Monday, etc.
Calendar._TT["WEEKEND"] =3D "0,6";

Calendar._TT["CLOSE"] =3D "Close";
Calendar._TT["TODAY"] =3D "Today";
Calendar._TT["TIME_PART"] =3D "(Shift-)Click or drag to change value";

// date formats
Calendar._TT["DEF_DATE_FORMAT"] =3D "%Y-%m-%d";
Calendar._TT["TT_DATE_FORMAT"] =3D "%a, %b %e";

Calendar._TT["WK"] =3D "wk";
Calendar._TT["TIME"] =3D "Time:";

------=_NextPart_000_0000_01C73BCB.B9A1FF70
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.jharkhand.nic.in/images/calendar-setup.js

/*  Copyright Mihai Bazon, 2002, 2003  |  http://dynarch.com/mishoo/
 * =
-------------------------------------------------------------------------=
--
 *
 * The DHTML Calendar
 *
 * Details and latest version at:
 * http://dynarch.com/mishoo/calendar.epl
 *
 * This script is distributed under the GNU Lesser General Public =
License.
 * Read the entire license text here: =
http://www.gnu.org/licenses/lgpl.html
 *
 * This file defines helper functions for setting up the calendar.  They =
are
 * intended to help non-programmers get a working calendar on their site
 * quickly.  This script should not be seen as part of the calendar.  It =
just
 * shows you what one can do with the calendar, while in the same time
 * providing a quick and simple method for setting it up.  If you need
 * exhaustive customization of the calendar creation process feel free =
to
 * modify this code to suit your needs (this is recommended and much =
better
 * than modifying calendar.js itself).
 */

// $Id: calendar-setup.js,v 1.25 2005/03/07 09:51:33 mishoo Exp $

/**
 *  This function "patches" an input field (or other element) to use a =
calendar
 *  widget for date selection.
 *
 *  The "params" is a single object that can have the following =
properties:
 *
 *    prop. name   | description
 *  =
-------------------------------------------------------------------------=
------------------------
 *   inputField    | the ID of an input field to store the date
 *   displayArea   | the ID of a DIV or other element to show the date
 *   button        | ID of a button or other element that will trigger =
the calendar
 *   eventName     | event that will trigger the calendar, without the =
"on" prefix (default: "click")
 *   ifFormat      | date format that will be stored in the input field
 *   daFormat      | the date format that will be used to display the =
date in displayArea
 *   singleClick   | (true/false) wether the calendar is in single click =
mode or not (default: true)
 *   firstDay      | numeric: 0 to 6.  "0" means display Sunday first, =
"1" means display Monday first, etc.
 *   align         | alignment (default: "Br"); if you don't know what's =
this see the calendar documentation
 *   range         | array with 2 elements.  Default: [1900, 2999] -- =
the range of years available
 *   weekNumbers   | (true/false) if it's true (default) the calendar =
will display week numbers
 *   flat          | null or element ID; if not null the calendar will =
be a flat calendar having the parent with the given ID
 *   flatCallback  | function that receives a JS Date object and returns =
an URL to point the browser to (for flat calendar)
 *   disableFunc   | function that receives a JS Date object and should =
return true if that date has to be disabled in the calendar
 *   onSelect      | function that gets called when a date is selected.  =
You don't _have_ to supply this (the default is generally okay)
 *   onClose       | function that gets called when the calendar is =
closed.  [default]
 *   onUpdate      | function that gets called after the date is updated =
in the input field.  Receives a reference to the calendar.
 *   date          | the date that the calendar will be initially =
displayed to
 *   showsTime     | default: false; if true the calendar will include a =
time selector
 *   timeFormat    | the time format; can be "12" or "24", default is =
"12"
 *   electric      | if true (default) then given fields/date areas are =
updated for each move; otherwise they're updated only on close
 *   step          | configures the step of the years in drop-down =
boxes; default: 2
 *   position      | configures the calendar absolute position; default: =
null
 *   cache         | if "true" (but default: "false") it will reuse the =
same calendar object, where possible
 *   showOthers    | if "true" (but default: "false") it will show days =
from other months too
 *
 *  None of them is required, they all have default values.  However, if =
you
 *  pass none of "inputField", "displayArea" or "button" you'll get a =
warning
 *  saying "nothing to setup".
 */
Calendar.setup =3D function (params) {
	function param_default(pname, def) { if (typeof params[pname] =3D=3D =
"undefined") { params[pname] =3D def; } };

	param_default("inputField",     null);
	param_default("displayArea",    null);
	param_default("button",         null);
	param_default("eventName",      "click");
	param_default("ifFormat",       "%Y/%m/%d");
	param_default("daFormat",       "%Y/%m/%d");
	param_default("singleClick",    true);
	param_default("disableFunc",    null);
	param_default("dateStatusFunc", params["disableFunc"]);	// takes =
precedence if both are defined
	param_default("dateText",       null);
	param_default("firstDay",       null);
	param_default("align",          "Br");
	param_default("range",          [1900, 2999]);
	param_default("weekNumbers",    false);
	param_default("flat",           null);
	param_default("flatCallback",   null);
	param_default("onSelect",       null);
	param_default("onClose",        null);
	param_default("onUpdate",       null);
	param_default("date",           null);
	param_default("showsTime",      false);
	param_default("timeFormat",     "12");
	param_default("electric",       true);
	param_default("step",           2);
	param_default("position",       null);
	param_default("cache",          false);
	param_default("showOthers",     false);
	param_default("multiple",       null);

	var tmp =3D ["inputField", "displayArea", "button"];
	for (var i in tmp) {
		if (typeof params[tmp[i]] =3D=3D "string") {
			params[tmp[i]] =3D document.getElementById(params[tmp[i]]);
		}
	}
	if (!(params.flat || params.multiple || params.inputField || =
params.displayArea || params.button)) {
		alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please =
check your code");
		return false;
	}

	function onSelect(cal) {
		var p =3D cal.params;
		var update =3D (cal.dateClicked || p.electric);
		if (update && p.inputField) {
			p.inputField.value =3D cal.date.print(p.ifFormat);
			if (typeof p.inputField.onchange =3D=3D "function")
				p.inputField.onchange();
		}
		if (update && p.displayArea)
			p.displayArea.innerHTML =3D cal.date.print(p.daFormat);
		if (update && typeof p.onUpdate =3D=3D "function")
			p.onUpdate(cal);
		if (update && p.flat) {
			if (typeof p.flatCallback =3D=3D "function")
				p.flatCallback(cal);
		}
		if (update && p.singleClick && cal.dateClicked)
			cal.callCloseHandler();
	};

	if (params.flat !=3D null) {
		if (typeof params.flat =3D=3D "string")
			params.flat =3D document.getElementById(params.flat);
		if (!params.flat) {
			alert("Calendar.setup:\n  Flat specified but can't find parent.");
			return false;
		}
		var cal =3D new Calendar(params.firstDay, params.date, params.onSelect =
|| onSelect);
		cal.showsOtherMonths =3D params.showOthers;
		cal.showsTime =3D params.showsTime;
		cal.time24 =3D (params.timeFormat =3D=3D "24");
		cal.params =3D params;
		cal.weekNumbers =3D params.weekNumbers;
		cal.setRange(params.range[0], params.range[1]);
		cal.setDateStatusHandler(params.dateStatusFunc);
		cal.getDateText =3D params.dateText;
		if (params.ifFormat) {
			cal.setDateFormat(params.ifFormat);
		}
		if (params.inputField && typeof params.inputField.value =3D=3D =
"string") {
			cal.parseDate(params.inputField.value);
		}
		cal.create(params.flat);
		cal.show();
		return false;
	}

	var triggerEl =3D params.button || params.displayArea || =
params.inputField;
	triggerEl["on" + params.eventName] =3D function() {
		var dateEl =3D params.inputField || params.displayArea;
		var dateFmt =3D params.inputField ? params.ifFormat : params.daFormat;
		var mustCreate =3D false;
		var cal =3D window.calendar;
		if (dateEl)
			params.date =3D Date.parseDate(dateEl.value || dateEl.innerHTML, =
dateFmt);
		if (!(cal && params.cache)) {
			window.calendar =3D cal =3D new Calendar(params.firstDay,
							     params.date,
							     params.onSelect || onSelect,
							     params.onClose || function(cal) { cal.hide(); });
			cal.showsTime =3D params.showsTime;
			cal.time24 =3D (params.timeFormat =3D=3D "24");
			cal.weekNumbers =3D params.weekNumbers;
			mustCreate =3D true;
		} else {
			if (params.date)
				cal.setDate(params.date);
			cal.hide();
		}
		if (params.multiple) {
			cal.multiple =3D {};
			for (var i =3D params.multiple.length; --i >=3D 0;) {
				var d =3D params.multiple[i];
				var ds =3D d.print("%Y%m%d");
				cal.multiple[ds] =3D d;
			}
		}
		cal.showsOtherMonths =3D params.showOthers;
		cal.yearStep =3D params.step;
		cal.setRange(params.range[0], params.range[1]);
		cal.params =3D params;
		cal.setDateStatusHandler(params.dateStatusFunc);
		cal.getDateText =3D params.dateText;
		cal.setDateFormat(dateFmt);
		if (mustCreate)
			cal.create();
		cal.refresh();
		if (!params.position)
			cal.showAtElement(params.button || params.displayArea || =
params.inputField, params.align);
		else
			cal.showAt(params.position[0], params.position[1]);
		return false;
	};

	return cal;
};

------=_NextPart_000_0000_01C73BCB.B9A1FF70--

