function IDGenerator (nextID)
{
	this.nextID = nextID;
	this.GenerateID = IDGeneratorGenerateID;
}
function IDGeneratorGenerateID () {return this.nextID++;}
var oldLink = null;
var MINUTE = 60 * 1000;
var HOUR = 60 * MINUTE;
var DAY = 24 * HOUR;
var WEEK = 7 * DAY;
function setActiveStyleSheet (link, title)
{
	var i, a, main;
	for (i=0; (a = document.getElementsByTagName("link")[i]); i++)
	{
		if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title"))
		{
			a.disabled = true;
			if(a.getAttribute("title") == title) a.disabled = false;
		}
	}
	if (oldLink) oldLink.style.fontWeight = 'normal';
	oldLink = link;
	link.style.fontWeight = 'bold';
	return false;
}
// This function gets called when the end-user clicks on some date.
function selected (cal, date)
{
	cal.sel.value = date;// just update the date in the input field.
	if (cal.sel.id == "sel1" || cal.sel.id == "sel2" || cal.sel.id == "sel3" || cal.sel.id == "sel4"|| cal.sel.id == "sel5" || cal.sel.id == "sel6")
	// if we add this call we close the calendar on single-click.
	// just to exemplify both cases, we are using this only for the 1st
	// and the 3rd field, while 2nd and 4th will still require double-click.
    cal.callCloseHandler();
}
// And this gets called when the end-user clicks on the _selected_ date,
// or clicks on the "Close" button.  It just hides the calendar without
// destroying it.
function closeHandler (cal)
{
	cal.sel.focus();
	cal.hide();// hide the calendar
}
// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function showCalendar (id, format)
{
	var el = document.getElementById(id);
	var EngDate = "";

    // convert entry date  to  eng  date 
	if  (el.value!="")
	{
		var EngYear	  =  parseInt(el.value.substr(6,4)) - 543;
		var EngMM       =   el.value.substr(3,2)
        var EngDD        =   el.value.substr(0,2)
		 if(((EngDD=='08'||EngDD=='09') &&(EngMM<'10'))||((EngMM=='08'||EngMM=='09') &&(EngDD<'13'))||((EngDD=='08'||EngDD=='09') &&(EngMM>'09'))){
            EngDate  =  EngMM + '/' + EngDD + '/' + EngYear;    
			//alert(EngDate); 
         }else{
		    EngDate  =  el.value.substr(0,6) + EngYear;			 
	     }
		 //alert (EngDate);
	}

	if (calendar != null)
	{
		// we already have some calendar created
		calendar.hide();// so we hide it first.
	}
	else
	{
		// first-time call, create the calendar.
		var cal = new Calendar(false, null, selected, closeHandler);
		// uncomment the following line to hide the week numbers
		cal.weekNumbers = false;
		calendar = cal;// remember it in the global var
		cal.setRange(1900, 3000);// min/max year allowed.
		cal.create();
	}
	calendar.setDateFormat(format);// set the specified date format
	//calendar.parseDate(el.value);// try to parse the text in field
	calendar.parseDate(EngDate); // try to parse the text in field
	calendar.sel = el;  // inform it what input field we use
	calendar.showAtElement(el);// show the calendar below it
	el.focus();
	return false;
}
// If this handler returns true then the "date" given as
// parameter will be disabled.  In this example we enable
// only days within a range of 10 days from the current
// date.
// You can use the functions date.getFullYear() -- returns the year
// as 4 digit number, date.getMonth() -- returns the month as 0..11,
// and date.getDate() -- returns the date of the month as 1..31, to
// make heavy calculations here.  However, beware that this function
// should be very fast, as it is called for each day in a month when
// the calendar is (re)constructed.
function isDisabled (date)
{
	var today = new Date();
	return (Math.abs(date.getTime() - today.getTime()) / DAY) > 10;
}
function flatSelected (cal, date)
{
	var el = document.getElementById("preview");
	el.innerHTML = date;
}


