// JavaScript Document

//Copyright Kerberos Internet Services, CC; All rights reserved.

//info@kerberosb2b.com

//helpdesk@kerberosb2b.com

//http://www.kerberosb2b.com

isIE4 = document.all ? true : false;

isIE6 = document.getElementById && document.all ? true : false;

isNS4 = document.layers ? true : false;

isNS6 = document.getElementById && !document.all ? true : false;



var FLATDATE_CONTAINER_PREFIX = "FLATDATE_CONTAINER";

var FLATDATE_DISPLAY_PREFIX = "FLATDATE_DISPLAY";

var FLATDATE_BUTTON_PREFIX = "FLATDATE_BUTTON";

var FLATDATE_DROPDOWN_PREFIX = "FLATDATE_DROPDOWN";

var FLATDATE_MONTHYEARDISPLAY_PREFIX = "FLATDATE_MONTHYEARDISPLAY";

var FLATDATE_CELL_PREFIX = "FLATDATE_CELL";

var FlatDatePicker_idGenerator = new IDGenerator(0);

var FlatDatePickerMap = new Object();

var FlatDatePickerIDGenerator = null;

//Date Picker Constants

var CSS_TITLE = "TITLE";

var CSS_NAV_YEAR = "NAV_YEAR";

var CSS_NAV_MONTH = "NAV_MONTH";

var CSS_DATE_TEXT = "DATE_TEXT";

var CSS_CAL_BACKGROUND = "CALENDAR_BACKGROUND";

var CSS_CAL_IMAGE = "CALENDAR_IMAGE";

var CSS_MOUSEOVER = "MOUSEOVER";

var CSS_MOUSESELECT = "MOUSESELECT";



//Language Constants

var LinguaFranca = new Object();

LinguaFranca['EN'] = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October','November', 'December','No Date Selected','S','M','T','W','T','F','S'];



//Utility Functions

function IDGenerator(nextID){

	this.nextID = nextID;

	this.GenerateID = IDGeneratorGenerateID;

}

function IDGeneratorGenerateID(){

	return this.nextID++;

}

function getDOMObject (documentID){

	if (isIE4){

		return document.all[documentID];

	}else if(isIE6){

		return document.getElementById(documentID);

	}else if (isNS4){

		return document.layers[documentID];

	}else if (isNS6) {

		return document.getElementById(documentID);

	}

}

function FlatDatePicker_Util_getDayLimit(testDate){

	switch(testDate.getMonth()){

		case 0:	return 31;

		case 1:	return (testDate.getFullYear() % 4==0 ? 29:28);

		case 2:	return 31;

		case 3:	return 30;

		case 4:	return 31;

		case 5:	return 30;

		case 6:	return 31;

		case 7:	return 31;

		case 8:	return 30;

		case 9: return 31;

		case 10: return 30;

		case 11: return 31;

	}

}

function FlatDatePicker_Util_getDayLimit_MonthID(testMonth, testYear){

	switch(testMonth){

		case 0:	return 31;

		case 1:	return (testYear % 4==0 ? 29:28);

		case 2:	return 31;

		case 3:	return 30;

		case 4:	return 31;

		case 5:	return 30;

		case 6:	return 31;

		case 7:	return 31;

		case 8:	return 30;

		case 9: return 31;

		case 10: return 30;

		case 11: return 31;

	}

}

function FlatDatePicker (boundControl, returnFormat, returnNullDates, showWeekDays, ISOLanguageCode, scriptAction){

	this.idGenerator = FlatDatePicker_idGenerator;

	this.scriptAction = scriptAction;

	this.returnFormat = String(returnFormat).toLowerCase();

	this.boundControl = boundControl;

	this.instantiated = false;

	this.returnNullDate = false;

	this.showWeekDays = false;

	this.showYearNav = true;

	this.showMonthNav = true;

	this.simpleEvents = null;

	this.ISOLanguageCode = "EN";

	if (ISOLanguageCode) this.ISOLanguageCode = String(ISOLanguageCode).toUpperCase();

	if (showWeekDays == true ) this.showWeekDays = true;

	if (returnNullDates == true) this.returnNullDate = true;

	this.CSS_Title = "font: normal normal normal 12px normal verdana; text-decoration:none; color: #666666";

	this.CSS_NavYear = "font: normal normal bolder 18px bold verdana; text-decoration:none; color: #FF0000";

	this.CSS_NavMonth = "font: normal normal bolder 18px bold verdana; text-decoration:none; color: #0066CC";

	this.CSS_DateText = "font: normal normal normal 11px normal arial; text-decoration:none; color: #666666";

	this.CSS_Cal_Background = "#FFFFEE";

	this.CSS_Cal_Image = "";

	this.CSS_Mouseover_Color = "#0000FF";

	this.CSS_Mouseselect_Color = "#FF0000";

	this.NavYearPrevious = "&lt;";

	this.NavYearNext = "&gt;";

	this.NavMonthPrevious = "&lt;";

	this.NavMonthNext = "&gt;";

	this.currentDate = new Date();

	this.isNullDate = false;

	this.Instantiate = FlatDatePicker_Instantiate;

	this.parseDateString = FlatDatePicker_parseInitialDateString;

	this.displayDate = FlatDatePicker_DisplayDate;

	this.getMonthName = FlatDatePicker_GetMonthName;

	this.getDayLimit = FlatDatePicker_GetDayLimit;

	this.setCSSAttribute = FlatDatePicker_SetCSSAttribute;

	this.isSimpleEvent = FlatDatePicker_IsSimpleEvent;

	this.setSimpleEvents = FlatDatePicker_SetSimpleEvents;

}

function FlatDatePicker_IsSimpleEvent(checkDate){

	if (this.simpleEvents == null) return "";

	var checkMonth = this.currentDate.getMonth();

	var checkYear = this.currentDate.getFullYear();

	for (xi = 0; xi < this.simpleEvents.length; xi++){

		if (checkDate == new Date(this.simpleEvents[xi][0]).getDate() && checkMonth == new Date(this.simpleEvents[xi][0]).getMonth() && String(this.simpleEvents[xi][2]).toLowerCase()=="true"){

			return this.simpleEvents[xi][1];

		}

		if (checkDate == new Date(this.simpleEvents[xi][0]).getDate() && checkMonth == new Date(this.simpleEvents[xi][0]).getMonth() && checkYear == new Date(this.simpleEvents[xi][0]).getFullYear() && String(this.simpleEvents[xi][2]).toLowerCase()=="false"){

			return this.simpleEvents[xi][1];

		}

	}

	return "";

}

function FlatDatePicker_SetSimpleEvents(eventArray){

	this.simpleEvents = new Array();

	var rowArray = eventArray.split("||");

	for (i = 0; i < rowArray.length; i++){

		this.simpleEvents.push (rowArray[i].split("|"));

	}

}

function FlatDatePicker_SetCSSAttribute(attribute, cssValue){

	switch (attribute){

		case CSS_TITLE:

			this.CSS_Title = cssValue;

			break;

		case CSS_NAV_YEAR:

			this.CSS_NavYear = cssValue;

			break;

		case CSS_NAV_MONTH:

			this.CSS_NavMonth = cssValue;

			break;

		case CSS_DATE_TEXT:

			this.CSS_DateText = cssValue;

			break;

		case CSS_CAL_BACKGROUND:

			this.CSS_Cal_Background = cssValue;

			break;

		case CSS_CAL_IMAGE:

			this.CSS_Cal_Image = cssValue;

			break;

		case CSS_MOUSEOVER:

			this.CSS_Mouseover_Color = cssValue;

			break;

		case CSS_MOUSESELECT:

			this.CSS_Mouseselect_Color = cssValue;

			break;

	}

}

function  FlatDatePicker_Instantiate(){

	if (this.instantiated) {

		return;

	}

	this.id = this.idGenerator.GenerateID();

	FlatDatePickerMap[this.id] = this;

	FlatDatePickerIDGenerator = this.idGenerator;



	var html = "";

	html += "<STYLE>";

	html += "#" + FLATDATE_CELL_PREFIX + this.id + ":hover {background-color: " + this.CSS_Mouseover_Color + "}";

	html += "#" + FLATDATE_CELL_PREFIX + this.id + " {display:block; width:100%; height:100%;" + this.CSS_DateText + ";}";

	html += "</STYLE>";

	html += "<DIV id='"+FLATDATE_DROPDOWN_PREFIX+this.id+"' name='"+FLATDATE_DROPDOWN_PREFIX+this.id+"' style='position:static; overflow:visible; display:block; height: 164px; width:164px; border: 1px solid #CCCCCC; background-color: " + this.CSS_Cal_Background + "; " + this.CSS_Cal_Image + "'></DIV>";

	document.write (html);

	this.parseDateString();

	this.displayDate();

	this.instantiated = true;

}

function FlatDatePicker_parseInitialDateString(){

	var initialDateString = getDOMObject(this.boundControl).value;

	if (initialDateString == "" || initialDateString == "undefined")return;

	if (String(initialDateString).toLowerCase() == "null" && this.returnNullDate){

		this.isNullDate = true;

		return;		

	}else if (String(initialDateString).toLowerCase() != "null"){

		//Handle the odd return formats first

		if (String(this.returnFormat).toLowerCase() == "unix"){

			if (isNaN(initialDateString))return;

			this.currentDate.setTime(parseInt(initialDateString) * 1000);

		}else if (String(this.returnFormat).toLowerCase() == "mysql3"){

			if (isNaN(initialDateString))return;

			initialDateString = initialDateString.slice(0,4) + "/" + initialDateString.slice(4,6) + "/" + initialDateString.slice(6);

			this.currentDate = new Date(initialDateString);

		}else{//Standardized return formats

			//Replace delimiters with valid characters

			initialDateString = initialDateString.replace(/[\-\@]/gi,"/");

			this.currentDate = new Date(initialDateString);

		}

		if (isNaN(this.currentDate.getDate()))this.currentDate = new Date();

		return;

	}else{

		return;	

	}	

}



function FlatDatePicker_DisplayDate(){

	var returnString = "";

	var simpleEventString = "";

	if (this.isNullDate && this.returnNullDate){

		returnString = "null";

	}else{

		returnString = getThisDateString(this.returnFormat, this);

	}

	var html = "";

	html += "<TABLE width=100% height=100%><tr><td width='14%' height='12%'>";

	if (this.showYearNav) html += "<A HREF='javascript:FlatDatePicker_DecrementYear(" + this.id + ")' STYLE='" + this.CSS_NavYear + "'>" + this.NavYearPrevious + "</A>";

	html += "</td><td width='14%' height='12%'>";

	if (this.showMonthNav) html += "<A HREF='javascript:FlatDatePicker_DecrementMonth(" + this.id + ")' STYLE='" + this.CSS_NavMonth + "'>" + this.NavMonthPrevious + "</A>";

	html += "</td><td id='" + FLATDATE_MONTHYEARDISPLAY_PREFIX + this.id + "' name='" + FLATDATE_MONTHYEARDISPLAY_PREFIX + this.id + "'  colspan='3' align='center' STYLE='" + this.CSS_Title + "'>" + this.getMonthName() + " " + this.currentDate.getFullYear() + "</td>";

	html += "<td width='14%' height='12%'>";

	if (this.showMonthNav) html += "<A HREF='javascript:FlatDatePicker_IncrementMonth(" + this.id + ")' STYLE='" + this.CSS_NavMonth + "'>" + this.NavMonthNext + "</A>";

	html += "</td><td width='14%' height='12%'>";

	if (this.showYearNav) html += "<A HREF='javascript:FlatDatePicker_IncrementYear(" + this.id + ")' STYLE='" + this.CSS_NavYear + "'>" + this.NavYearNext + "</A>";

	html += "</td></tr>";

	var dayOffset = 0;

	if (this.showWeekDays){

		html += "<tr STYLE='" + this.CSS_DateText + "'><td  align=center valign=middle ><b>" + LinguaFranca[this.ISOLanguageCode][13].slice(0,1) + "</b></td><td align=center valign=middle ><b>" + LinguaFranca[this.ISOLanguageCode][14].slice(0,1) + "</b></td><td align=center valign=middle ><b>" + LinguaFranca[this.ISOLanguageCode][15].slice(0,1) + "</b></td><td align=center valign=middle ><b>" + LinguaFranca[this.ISOLanguageCode][16].slice(0,1) + "</b></td><td align=center valign=middle ><b>" + LinguaFranca[this.ISOLanguageCode][17].slice(0,1) + "</b></td><td align=center valign=middle ><b>" + LinguaFranca[this.ISOLanguageCode][18].slice(0,1) + "</b></td><td align=center valign=middle ><b>" + LinguaFranca[this.ISOLanguageCode][19].slice(0,1) + "</b></td></tr>"

		var testDate = new Date();

		testDate.setDate(1);

		testDate.setMonth(parseInt(this.currentDate.getMonth()));

		testDate.setFullYear(parseInt(this.currentDate.getFullYear()));

		dayOffset = testDate.getDay();

	}

	for (i = 0; i < ((this.getDayLimit() + dayOffset) < 35 ? 5 : 6); i++){

		html += "<tr>";

		for (ii = 1; ii <= 7; ii++){

			if (ii-1 < dayOffset && i == 0){

				html += "<td></td>";

			}else{

				if ((i * 7 + ii - dayOffset) <= this.getDayLimit()){

					simpleEventString = this.isSimpleEvent (i*7+ii - dayOffset);

					html += "<td WIDTH='14%' HEIGHT='12%' ALIGN='center' VALIGN='middle'" + (!this.isNullDate && (i*7+ii - dayOffset) == this.currentDate.getDate() ? " STYLE='background-color:" + this.CSS_Mouseselect_Color + "'" : "") + "><A id='" + FLATDATE_CELL_PREFIX + this.id + "' NAME='" + FLATDATE_CELL_PREFIX + this.id + "' HREF='javascript:FlatDatePicker_SetDay (" + this.id + "," + eval(i*7+ii - dayOffset) + ");' title=\"" + simpleEventString + "\">"+ (simpleEventString != "" ? "<b>"+eval(i*7+ii - dayOffset)+"</b>" : eval(i*7+ii - dayOffset) ) +"</a></td>";

				}else{

					if (this.returnNullDate && (i*7+ii - dayOffset) == this.getDayLimit()+1){

						html += "<td ALIGN='right' VALIGN='middle' HEIGHT='12%' COLSPAN='"+eval(7 - ii + 1 + 6 - dayOffset)+"' " + (this.isNullDate ? " STYLE='background-color:" + this.CSS_Mouseselect_Color + "'" : "") + "><A ID='" + FLATDATE_CELL_PREFIX + this.id + "' NAME='" + FLATDATE_CELL_PREFIX + this.id + "' HREF='javascript:FlatDatePicker_SetDay (" + this.id + ", 32);'>X</a></td>";

					}else if (!this.returnNullDate){

						html += "<td></td>"

					}			

				}

			}

		}

		html += "</tr>";

	}

	html += "</TABLE>";

	getDOMObject(this.boundControl).value = returnString;

	getDOMObject(FLATDATE_DROPDOWN_PREFIX+this.id).innerHTML = html;

//Display Utility Functions

	function getThisDateString(thisFormat, DPO){

		switch (String(thisFormat)){

			case '1':return eval(DPO.currentDate.getMonth()+1) + "/" + DPO.currentDate.getDate() + "/" + DPO.currentDate.getFullYear();

			case '2':return DPO.currentDate.getFullYear() + "." + eval(DPO.currentDate.getMonth()+1) + "." + DPO.currentDate.getDate();

			case '3':return DPO.currentDate.getDate() + "/" + eval(DPO.currentDate.getMonth()+1) + "/" + DPO.currentDate.getFullYear();

			case '4':return DPO.currentDate.getDate() + "-" + eval(DPO.currentDate.getMonth()+1) + "-" + DPO.currentDate.getFullYear();

			case '5':return DPO.currentDate.getDate() + "/" + eval(DPO.currentDate.getMonth()+1) + "/" + DPO.currentDate.getFullYear();

			case '6':return DPO.currentDate.getDate() + "." + eval(DPO.currentDate.getMonth()+1) + "." + DPO.currentDate.getFullYear();

			case '7':return DPO.currentDate.getFullYear() + "/" + eval(DPO.currentDate.getMonth()+1) + "/" + DPO.currentDate.getDate();

			case '8':return DPO.currentDate.getFullYear() + "/" + eval(DPO.currentDate.getMonth()+1) + "/" + DPO.currentDate.getDate();

			case '9':return eval(DPO.currentDate.getMonth()+1) + "-" + DPO.currentDate.getDate() + "-" + DPO.currentDate.getFullYear();

			case '10':return eval(DPO.currentDate.getMonth()+1) + "/" + DPO.currentDate.getDate() + "/" + DPO.currentDate.getFullYear();

			case '11':return DPO.currentDate.getDate() + "/" + eval(DPO.currentDate.getMonth()+1) + "/" + DPO.currentDate.getFullYear();

			case '12':return DPO.currentDate.getFullYear() + "/" + eval(DPO.currentDate.getMonth()+1) + "/" + DPO.currentDate.getDate();

			case 'short':return eval(DPO.currentDate.getMonth()+1) + " / " + DPO.currentDate.getDate() + " / " + DPO.currentDate.getFullYear();

			case 'long':return DPO.getMonthName() + " " + DPO.currentDate.getDate() + ", " + DPO.currentDate.getFullYear();

			case 'long2':return DPO.currentDate.getDate() + " " + DPO.getMonthName() + " " + DPO.currentDate.getFullYear();

			case 'long3':return LinguaFranca[DPO.ISOLanguageCode][13 + DPO.currentDate.getDay()].slice(0,3) + ", " + DPO.currentDate.getDate() + " " + DPO.getMonthName() + " " + DPO.currentDate.getFullYear();

			case 'long4':return LinguaFranca[DPO.ISOLanguageCode][13 + DPO.currentDate.getDay()].slice(0,3) + ", " + DPO.getMonthName() + " " + DPO.currentDate.getDate() + " " + DPO.currentDate.getFullYear();

			case 'long5':return LinguaFranca[DPO.ISOLanguageCode][13 + DPO.currentDate.getDay()] + ", " + DPO.currentDate.getDate() + " " + DPO.getMonthName() + " " + DPO.currentDate.getFullYear();

			case 'long6':return LinguaFranca[DPO.ISOLanguageCode][13 + DPO.currentDate.getDay()] + ", " + DPO.getMonthName() + " " + DPO.currentDate.getDate() + " " + DPO.currentDate.getFullYear();

			case 'abbr1':return DPO.currentDate.getDate() + " " + DPO.getMonthName().slice(0,3) + ", " + DPO.currentDate.getFullYear();

			case 'abbr2':return DPO.getMonthName().slice(0,3) + " " + DPO.currentDate.getDate() + ", " + DPO.currentDate.getFullYear();

			case 'abbr3':return LinguaFranca[DPO.ISOLanguageCode][13 + DPO.currentDate.getDay()].slice(0,3) + ", " + DPO.currentDate.getDate() + " " + DPO.getMonthName().slice(0,3) + " " + DPO.currentDate.getFullYear();

			case 'abbr4':return LinguaFranca[DPO.ISOLanguageCode][13 + DPO.currentDate.getDay()].slice(0,3) + ", " + DPO.getMonthName().slice(0,3) + " " + DPO.currentDate.getDate() + " " + DPO.currentDate.getFullYear();

			case 'abbr5':return LinguaFranca[DPO.ISOLanguageCode][13 + DPO.currentDate.getDay()] + ", " + DPO.currentDate.getDate() + " " + DPO.getMonthName().slice(0,3) + " " + DPO.currentDate.getFullYear();

			case 'abbr6':return LinguaFranca[DPO.ISOLanguageCode][13 + DPO.currentDate.getDay()] + ", " + DPO.getMonthName().slice(0,3) + " " + DPO.currentDate.getDate() + " " + DPO.currentDate.getFullYear();

			case 'utc':return DPO.currentDate.toUTCString();

			case 'gmt':return DPO.currentDate.toGMTString();

			case 'unix':return String(parseInt(DPO.currentDate.getTime() / 1000));

			case 'mysql1':return DPO.currentDate.getFullYear() + "-" + eval(DPO.currentDate.getMonth()+1) + "-" + DPO.currentDate.getDate();

			case 'mysql2':return DPO.currentDate.getFullYear() + "@" + eval(DPO.currentDate.getMonth()+1) + "@" + DPO.currentDate.getDate();

			case 'mysql3':return DPO.currentDate.getFullYear() + (String(eval(DPO.currentDate.getMonth()+1)).length==1?"0" + String(eval(DPO.currentDate.getMonth()+1)) : String(eval(DPO.currentDate.getMonth()+1))) + (String(eval(DPO.currentDate.getDate())).length == 1? "0" + String(eval(DPO.currentDate.getDate())):String(eval(DPO.currentDate.getDate())));

			case 'vt_date':

				var dtString = "";

				try {

					dtString = DPO.currentDate.getVarDate();

				}catch (e){

					dtString = DPO.currentDate.toUTCString();

				} 

				return dtString;

			default:

				alert ('Format Case Failure. Defaulting...');

				return eval(DPO.currentDate.getMonth()+1) + " / " + DPO.currentDate.getDate() + " / " + DPO.currentDate.getFullYear();

		}

	}

}

function FlatDatePicker_GetMonthName(){

	return LinguaFranca[this.ISOLanguageCode][this.currentDate.getMonth()];

}



function FlatDatePicker_SetDay (id, tdID){

	if (tdID != 32) {

		FlatDatePickerMap[id].isNullDate = false;

		FlatDatePickerMap[id].currentDate.setDate(tdID);

	}else{

		FlatDatePickerMap[id].isNullDate = true;

	}

	FlatDatePickerMap[id].displayDate();

	if (FlatDatePickerMap[id].instantiated) eval(FlatDatePickerMap[id].scriptAction);

}



function FlatDatePicker_IncrementMonth(id){

	var currentMonth = parseInt(FlatDatePickerMap[id].currentDate.getMonth());

	var currentYear = parseInt(FlatDatePickerMap[id].currentDate.getFullYear());

	var currentDate = parseInt (FlatDatePickerMap[id].currentDate.getDate());

//Do the increment

	if (currentMonth == 11){

		currentMonth = 0;

		currentYear += 1;

	}else{

		currentMonth += 1;

	}

//Test the daylimit

	var incDayLimit = FlatDatePicker_Util_getDayLimit_MonthID(currentMonth, currentYear);

	if (currentDate > incDayLimit)currentDate=incDayLimit;

//Assign the new values

	FlatDatePickerMap[id].currentDate.setDate(currentDate);

	FlatDatePickerMap[id].currentDate.setMonth(currentMonth);

	FlatDatePickerMap[id].currentDate.setFullYear(currentYear);

	FlatDatePickerMap[id].displayDate();

	if (FlatDatePickerMap[id].instantiated) eval(FlatDatePickerMap[id].scriptAction);

}

function FlatDatePicker_DecrementMonth(id){

	var currentMonth = parseInt(FlatDatePickerMap[id].currentDate.getMonth());

	var currentYear = parseInt(FlatDatePickerMap[id].currentDate.getFullYear());

	var currentDate = parseInt (FlatDatePickerMap[id].currentDate.getDate());

//Do the decrement

	if (currentMonth == 0){

		currentMonth = 11;

		currentYear -= 1;

	}else{

		currentMonth -= 1;

	}

//Test the daylimit

	var decDayLimit = FlatDatePicker_Util_getDayLimit_MonthID(currentMonth, currentYear);

	if (currentDate > decDayLimit)currentDate=decDayLimit;

//Assign the new values

	FlatDatePickerMap[id].currentDate.setDate(currentDate);

	FlatDatePickerMap[id].currentDate.setMonth(currentMonth);

	FlatDatePickerMap[id].currentDate.setFullYear(currentYear);

	FlatDatePickerMap[id].displayDate();

	if (FlatDatePickerMap[id].instantiated) eval(FlatDatePickerMap[id].scriptAction);

}

function FlatDatePicker_IncrementYear(id){

	var currentMonth = parseInt(FlatDatePickerMap[id].currentDate.getMonth());

	var currentYear = parseInt(FlatDatePickerMap[id].currentDate.getFullYear());

	var currentDate = parseInt (FlatDatePickerMap[id].currentDate.getDate());

//Do the increment

	currentYear += 1;

//Test the daylimit

	var incDayLimit = FlatDatePicker_Util_getDayLimit_MonthID(currentMonth, currentYear);

	if (currentDate > incDayLimit)currentDate=incDayLimit;

//Assign the new values

	FlatDatePickerMap[id].currentDate.setDate(currentDate);

	FlatDatePickerMap[id].currentDate.setMonth(currentMonth);

	FlatDatePickerMap[id].currentDate.setFullYear(currentYear);

	FlatDatePickerMap[id].displayDate();

	if (FlatDatePickerMap[id].instantiated) eval(FlatDatePickerMap[id].scriptAction);

}

function FlatDatePicker_DecrementYear(id){

	var currentMonth = parseInt(FlatDatePickerMap[id].currentDate.getMonth());

	var currentYear = parseInt(FlatDatePickerMap[id].currentDate.getFullYear());

	var currentDate = parseInt (FlatDatePickerMap[id].currentDate.getDate());

//Do the decrement

	currentYear -= 1;

//Test the daylimit

	var decDayLimit = FlatDatePicker_Util_getDayLimit_MonthID(currentMonth, currentYear);

	if (currentDate > decDayLimit)currentDate=decDayLimit;

//Assign the new values

	FlatDatePickerMap[id].currentDate.setDate(currentDate);

	FlatDatePickerMap[id].currentDate.setMonth(currentMonth);

	FlatDatePickerMap[id].currentDate.setFullYear(currentYear);

	FlatDatePickerMap[id].displayDate();

	if (FlatDatePickerMap[id].instantiated) eval(FlatDatePickerMap[id].scriptAction);

}

function FlatDatePicker_GetDayLimit(){

	return FlatDatePicker_Util_getDayLimit (this.currentDate);

}
