function getUrlParameter() {
	
	var url = location.href;
	var reg_en=new RegExp("[/]en[/]","g");
	var reg_es=new RegExp("[/]es[/]","g");
	var reg_fr=new RegExp("[/]fr[/]","g");
	
	if (url.match(reg_en)) {
		return "en";
	}else if(url.match(reg_es)){
		return "es";
	}else{
		return "fr";
	}
}


function showFormBox(idBox)
{
	var action = idBox.substr(19, 12);
	var prefix = idBox.substr(0, 19);
	
	switch(action)
	{
		case 'court_sejour':
			document.getElementById(prefix+'court_sejour').style.display = 'block';
			document.getElementById(prefix+'long_sejour').style.display  = 'none';
		break;
		
		case 'long_sejour':
			document.getElementById(prefix+'court_sejour').style.display = 'none';
			document.getElementById(prefix+'long_sejour').style.display  = 'block';
			if (document.getElementById('calendarDiv'))
			{
				document.getElementById('calendarDiv').style.display = 'none';
			}
		break;
			
		default:
			alert ('Params invalide.');
		break;
	}
}



function updateSlaveSelect(master, slave)
{
	document.getElementById(slave).options[master.options.selectedIndex].selected = true;
}


function controlForm(plugin)
{
	if (document.getElementById(plugin+'_court_sejour_radio').checked)
	{
		var bool    = true;
		var arrival = document.getElementById('inputArrival_'+plugin);
		if (arrival.value == '')
		{
			arrival.style.borderColor = '#FF0000';
					//alert('Ta gueule Benjamin !!!!');
			bool = false;
		}
		else
		{
			arrival.style.borderColor = '#00A145';
		}
		
		var departure = document.getElementById('inputDuree_'+plugin);
		if (departure.value == '')
		{
			departure.style.borderColor = '#FF0000';
			//alert('Ta gueule Benjamin !!!!');
			bool = false;
		}
		else
		{
			departure.style.borderColor = '#00A145';
		}
		
		if (!bool)
		{
			switch(getUrlParameter()){
				case "en":
					alert('Your data are not correct');
					break;
				case "es":
					languageCode = 'es';
					break;
				case "de":
					languageCode = 'ge';
					break;
				default :
					alert('Vos données ne sont pas correctes.');
					break;
			}
			
		}
		return bool;
	}
}





/************************************************************************************************************
 JS Calendar
 Copyright (C) September 2006  DTHMLGoodies.com, Alf Magne Kalleland
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.
 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.
 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
 written by Alf Magne Kalleland.
 Alf Magne Kalleland, 2006
 Owner of DHTMLgoodies.com
 ************************************************************************************************************/

var turnOffYearSpan = true; // true = Only show This Year and Next, false = show +/- 5 years
var weekStartsOnSunday = false; // true = Start the week on Sunday, false = start the week on Monday
var showWeekNumber = true; // true = show week number,  false = do not show week number
var languageCode = 'fr'; // Possible values: 	en,ge,no,nl,es,pt-br,fr
// en = english, ge = german, no = norwegian,nl = dutch, es = spanish, pt-br = portuguese, fr = french, da = danish, hu = hungarian(Use UTF-8 doctype for hungarian)


switch(getUrlParameter()){
	case "en":
		languageCode = 'en';
		break;
	case "es":
		languageCode = 'es';
		break;
	case "de":
		languageCode = 'ge';
		break;
	default :
		languageCode = 'fr';
		break;
}

	
var calendar_display_time = true;

// Format of current day at the bottom of the calendar
// [todayString] = the value of todayString
// [dayString] = day of week (examle: mon, tue, wed...)
// [UCFdayString] = day of week (examle: Mon, Tue, Wed...) ( First letter in uppercase)
// [day] = Day of month, 1..31
// [monthString] = Name of current month
// [year] = Current year
var todayStringFormat = '[todayString] [UCFdayString]. [day]. [monthString] [year]';
var pathToImages = 'typo3conf/ext/novaresaloc/res/img/'; // Relative to your HTML file
var speedOfSelectBoxSliding = 200; // Milliseconds between changing year and hour when holding mouse over "-" and "+" - lower value = faster
var intervalSelectBox_minutes = 5; // Minute select box - interval between each option (5 = default)
var calendar_offsetTop = 0; // Offset - calendar placement - You probably have to modify this value if you're not using a strict doctype
var calendar_offsetLeft = 0; // Offset - calendar placement - You probably have to modify this value if you're not using a strict doctype
var calendarDiv = false;

var MSIE = false;
var Opera = false;
if (navigator.userAgent.indexOf('MSIE') >= 0 && navigator.userAgent.indexOf('Opera') < 0) 
    MSIE = true;
if (navigator.userAgent.indexOf('Opera') >= 0) 
    Opera = true;


switch (languageCode) {
    case "en": /* English */
        var monthArray = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
        var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
        var dayArray = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
        var weekString = 'Week';
        var todayString = '';
        break;
    case "ge": /* German */
        var monthArray = ['Januar', 'Februar', 'Mërz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];
        var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'];
        var dayArray = ['Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam', 'Son'];
        var weekString = 'Woche';
        var todayString = 'Heute';
        break;
    case "no": /* Norwegian */
        var monthArray = ['Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember'];
        var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'];
        var dayArray = ['Man', 'Tir', 'Ons', 'Tor', 'Fre', 'L&oslash;r', 'S&oslash;n'];
        var weekString = 'Uke';
        var todayString = 'Dagen i dag er';
        break;
    case "nl": /* Dutch */
        var monthArray = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];
        var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'];
        var dayArray = ['Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za', 'Zo'];
        var weekString = 'Week';
        var todayString = 'Vandaag';
        break;
    case "es": /* Spanish */
        var monthArray = ['Enero', 'Febrero', 'Marzo', 'April', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
        var monthArrayShort = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'];
        var dayArray = ['Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab', 'Dom'];
        var weekString = 'Sem';
        var todayString = 'Hoy es';
        break;
    case "pt-br": /* Brazilian portuguese (pt-br) */
        var monthArray = ['Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
        var monthArrayShort = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];
        var dayArray = ['Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'S&aacute;b', 'Dom'];
        var weekString = 'Sem.';
        var todayString = 'Hoje &eacute;';
        break;
    case "fr": /* French */
        var monthArray = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
        var monthArrayShort = ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Aou', 'Sep', 'Oct', 'Nov', 'Dec'];
        var dayArray = ['Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim'];
        var weekString = 'Sem';
        var todayString = "Aujourd'hui";
        break;
    case "da": /*Danish*/
        var monthArray = ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'];
        var monthArrayShort = ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'];
        var dayArray = ['man', 'tirs', 'ons', 'tors', 'fre', 'l&oslash;r', 's&oslash;n'];
        var weekString = 'Uge';
        var todayString = 'I dag er den';
        break;
    case "hu": /* Hungarian  - Remember to use UTF-8 encoding, i.e. the <meta> tag */
        var monthArray = ['Január', 'Február', 'Március', '??prilis', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'];
        var monthArrayShort = ['Jan', 'Feb', 'Márc', '??pr', 'Máj', 'Jún', 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'];
        var dayArray = ['Hé', 'Ke', 'Sze', 'Cs', 'Pé', 'Szo', 'Vas'];
        var weekString = 'Hét';
        var todayString = 'Mai nap';
        break;
    case "it": /* Italian*/
        var monthArray = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'];
        var monthArrayShort = ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lugl', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'];
        var dayArray = ['Lun', ';Mar', 'Mer', 'Gio', 'Ven', 'Sab', 'Dom'];
        var weekString = 'Settimana';
        var todayString = 'Oggi &egrave; il';
        break;
    case "sv": /* Swedish */
        var monthArray = ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'];
        var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'];
        var dayArray = ['M&aring;n', 'Tis', 'Ons', 'Tor', 'Fre', 'L&ouml;r', 'S&ouml;n'];
        var weekString = 'Vecka';
        var todayString = 'Idag &auml;r det den';
        break;
    case "cz": /* Czech */
        var monthArray = ['leden', '&#250;nor', 'b&#345;ezen', 'duben', 'kv&#283;ten', '&#269;erven', '&#269;ervenec', 'srpen', 'z&#225;&#345;&#237;', '&#345;&#237;jen', 'listopad', 'prosinec'];
        var monthArrayShort = ['led', '&#250;n', 'b&#345;', 'dub', 'kv&#283;', '&#269;er', '&#269;er-ec', 'srp', 'z&#225;&#345;', '&#345;&#237;j', 'list', 'pros'];
        var dayArray = ['Pon', '&#218;t', 'St', '&#268;t', 'P&#225;', 'So', 'Ne'];
        var weekString = 't&#253;den';
        var todayString = '';
        break;
}

if (weekStartsOnSunday) {
    var tempDayName = dayArray[6];
    for (var theIx = 6; theIx > 0; theIx--) {
        dayArray[theIx] = dayArray[theIx - 1];
    }
    dayArray[0] = tempDayName;
}



var daysInMonthArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var currentMonth;
var currentYear;
var currentHour;
var currentMinute;
var calendarContentDiv;
var returnDateTo;
var returnFormat;
var activeSelectBoxMonth;
var activeSelectBoxYear;
var activeSelectBoxHour;
var activeSelectBoxMinute;

var iframeObj = false;
//// fix for EI frame problem on time dropdowns 09/30/2006
var iframeObj2 = false;
function EIS_FIX_EI1(where2fixit){

    if (!iframeObj2) 
        return;
    iframeObj2.style.display = 'block';
    iframeObj2.style.height = document.getElementById(where2fixit).offsetHeight + 1;
    iframeObj2.style.width = document.getElementById(where2fixit).offsetWidth;
    iframeObj2.style.left = getleftPos(document.getElementById(where2fixit)) + 1 - calendar_offsetLeft;
    iframeObj2.style.top = getTopPos(document.getElementById(where2fixit)) - document.getElementById(where2fixit).offsetHeight - calendar_offsetTop;
}

function EIS_Hide_Frame(){
    if (iframeObj2) 
        iframeObj2.style.display = 'none';
}

//// fix for EI frame problem on time dropdowns 09/30/2006
var returnDateToYear;
var returnDateToMonth;
var returnDateToDay;
var returnDateToHour;
var returnDateToMinute;

var inputYear;
var inputMonth;
var inputDay;
var inputHour;
var inputMinute;
var calendarDisplayTime = false;

var selectBoxHighlightColor = '#00A145'; // Highlight color of select boxes
var selectBoxRolloverBgColor = '#ebf3db'; // Background color on drop down lists(rollover)
var selectBoxMovementInProgress = false;
var activeSelectBox = false;

function cancelCalendarEvent(){
    return false;
}

function isLeapYear(inputYear){
    if (inputYear % 400 == 0 || (inputYear % 4 == 0 && inputYear % 100 != 0)) 
        return true;
    return false;
    
}

var activeSelectBoxMonth = false;
var activeSelectBoxDirection = false;

function highlightMonthYear(){
    if (activeSelectBoxMonth) 
        activeSelectBoxMonth.className = '';
    activeSelectBox = this;
    
    
    if (this.className == 'monthYearActive') {
        this.className = '';
    }
    else {
        this.className = 'monthYearActive';
        activeSelectBoxMonth = this;
    }
    
    if (this.innerHTML.indexOf('-') >= 0 || this.innerHTML.indexOf('+') >= 0) {
        if (this.className == 'monthYearActive') 
            selectBoxMovementInProgress = true;
        else 
            selectBoxMovementInProgress = false;
        if (this.innerHTML.indexOf('-') >= 0) 
            activeSelectBoxDirection = -1;
        else 
            activeSelectBoxDirection = 1;
        
    }
    else 
        selectBoxMovementInProgress = false;
    
}

function showMonthDropDown(){
    if (document.getElementById('monthDropDown').style.display == 'block') {
        document.getElementById('monthDropDown').style.display = 'none';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    }
    else {
        document.getElementById('monthDropDown').style.display = 'block';
        document.getElementById('yearDropDown').style.display = 'none';
        document.getElementById('hourDropDown').style.display = 'none';
        document.getElementById('minuteDropDown').style.display = 'none';
        if (MSIE) {
            EIS_FIX_EI1('monthDropDown')
        }
        //// fix for EI frame problem on time dropdowns 09/30/2006
    
    }
}

function showYearDropDown(){
    if (document.getElementById('yearDropDown').style.display == 'block') {
        document.getElementById('yearDropDown').style.display = 'none';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    }
    else {
        document.getElementById('yearDropDown').style.display = 'block';
        document.getElementById('monthDropDown').style.display = 'none';
        document.getElementById('hourDropDown').style.display = 'none';
        document.getElementById('minuteDropDown').style.display = 'none';
        if (MSIE) {
            EIS_FIX_EI1('yearDropDown')
        }
        //// fix for EI frame problem on time dropdowns 09/30/2006
    
    }
    
}

function showHourDropDown(){
    if (document.getElementById('hourDropDown').style.display == 'block') {
        document.getElementById('hourDropDown').style.display = 'none';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    }
    else {
        document.getElementById('hourDropDown').style.display = 'block';
        document.getElementById('monthDropDown').style.display = 'none';
        document.getElementById('yearDropDown').style.display = 'none';
        document.getElementById('minuteDropDown').style.display = 'none';
        if (MSIE) {
            EIS_FIX_EI1('hourDropDown')
        }
        //// fix for EI frame problem on time dropdowns 09/30/2006
    }
    
}

function showMinuteDropDown(){
    if (document.getElementById('minuteDropDown').style.display == 'block') {
        document.getElementById('minuteDropDown').style.display = 'none';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    }
    else {
        document.getElementById('minuteDropDown').style.display = 'block';
        document.getElementById('monthDropDown').style.display = 'none';
        document.getElementById('yearDropDown').style.display = 'none';
        document.getElementById('hourDropDown').style.display = 'none';
        if (MSIE) {
            EIS_FIX_EI1('minuteDropDown')
        }
        //// fix for EI frame problem on time dropdowns 09/30/2006
    }
    
}

function selectMonth(){
    document.getElementById('calendar_month_txt').innerHTML = this.innerHTML
    currentMonth = this.id.replace(/[^\d]/g, '');
    
    document.getElementById('monthDropDown').style.display = 'none';
    //// fix for EI frame problem on time dropdowns 09/30/2006
    EIS_Hide_Frame();
    for (var no = 0; no < monthArray.length; no++) {
        document.getElementById('monthDiv_' + no).style.color = '';
    }
    this.style.color = selectBoxHighlightColor;
    activeSelectBoxMonth = this;
    writeCalendarContent();
    
}

function selectHour(){
    document.getElementById('calendar_hour_txt').innerHTML = this.innerHTML
    currentHour = this.innerHTML.replace(/[^\d]/g, '');
    document.getElementById('hourDropDown').style.display = 'none';
    //// fix for EI frame problem on time dropdowns 09/30/2006
    EIS_Hide_Frame();
    if (activeSelectBoxHour) {
        activeSelectBoxHour.style.color = '';
    }
    activeSelectBoxHour = this;
    this.style.color = selectBoxHighlightColor;
}

function selectMinute(){
    document.getElementById('calendar_minute_txt').innerHTML = this.innerHTML
    currentMinute = this.innerHTML.replace(/[^\d]/g, '');
    document.getElementById('minuteDropDown').style.display = 'none';
    //// fix for EI frame problem on time dropdowns 09/30/2006
    EIS_Hide_Frame();
    if (activeSelectBoxMinute) {
        activeSelectBoxMinute.style.color = '';
    }
    activeSelectBoxMinute = this;
    this.style.color = selectBoxHighlightColor;
}


function selectYear(){
    document.getElementById('calendar_year_txt').innerHTML = this.innerHTML
    currentYear = this.innerHTML.replace(/[^\d]/g, '');
    document.getElementById('yearDropDown').style.display = 'none';
    //// fix for EI frame problem on time dropdowns 09/30/2006
    EIS_Hide_Frame();
    if (activeSelectBoxYear) {
        activeSelectBoxYear.style.color = '';
    }
    activeSelectBoxYear = this;
    this.style.color = selectBoxHighlightColor;
    writeCalendarContent();
    
}

function switchMonth(){
    if (this.src.indexOf('left') >= 0) {
        currentMonth = currentMonth - 1;
        ;
        if (currentMonth < 0) {
            currentMonth = 11;
            currentYear = currentYear - 1;
        }
    }
    else {
        currentMonth = currentMonth + 1;
        ;
        if (currentMonth > 11) {
            currentMonth = 0;
            currentYear = currentYear / 1 + 1;
        }
    }
    
    writeCalendarContent();
    
    
}

function createMonthDiv(){
    var div = document.createElement('DIV');
    div.className = 'monthYearPicker';
    div.id = 'monthPicker';
    
    for (var no = 0; no < monthArray.length; no++) {
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = monthArray[no];
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = highlightMonthYear;
        subDiv.onclick = selectMonth;
        subDiv.id = 'monthDiv_' + no;
        //subDiv.style.width = '56px';
        subDiv.onselectstart = cancelCalendarEvent;
        div.appendChild(subDiv);
        if (currentMonth && currentMonth == no) {
            subDiv.style.color = selectBoxHighlightColor;
            activeSelectBoxMonth = subDiv;
        }
        
    }
    return div;
    
}

function changeSelectBoxYear(e, inputObj){
    if (!inputObj) 
        inputObj = this;
    var yearItems = inputObj.parentNode.getElementsByTagName('DIV');
    if (inputObj.innerHTML.indexOf('-') >= 0) {
        var startYear = yearItems[1].innerHTML / 1 - 1;
        if (activeSelectBoxYear) {
            activeSelectBoxYear.style.color = '';
        }
    }
    else {
        var startYear = yearItems[1].innerHTML / 1 + 1;
        if (activeSelectBoxYear) {
            activeSelectBoxYear.style.color = '';
            
        }
    }
    
    for (var no = 1; no < yearItems.length - 1; no++) {
        yearItems[no].innerHTML = startYear + no - 1;
        yearItems[no].id = 'yearDiv' + (startYear / 1 + no / 1 - 1);
        
    }
    if (activeSelectBoxYear) {
        activeSelectBoxYear.style.color = '';
        if (document.getElementById('yearDiv' + currentYear)) {
            activeSelectBoxYear = document.getElementById('yearDiv' + currentYear);
            activeSelectBoxYear.style.color = selectBoxHighlightColor;
            ;
        }
    }
}

function changeSelectBoxHour(e, inputObj){
    if (!inputObj) 
        inputObj = this;
    
    var hourItems = inputObj.parentNode.getElementsByTagName('DIV');
    if (inputObj.innerHTML.indexOf('-') >= 0) {
        var startHour = hourItems[1].innerHTML / 1 - 1;
        if (startHour < 0) 
            startHour = 0;
        if (activeSelectBoxHour) {
            activeSelectBoxHour.style.color = '';
        }
    }
    else {
        var startHour = hourItems[1].innerHTML / 1 + 1;
        if (startHour > 14) 
            startHour = 14;
        if (activeSelectBoxHour) {
            activeSelectBoxHour.style.color = '';
            
        }
    }
    var prefix = '';
    for (var no = 1; no < hourItems.length - 1; no++) {
        if ((startHour / 1 + no / 1) < 11) 
            prefix = '0';
        else 
            prefix = '';
        hourItems[no].innerHTML = prefix + (startHour + no - 1);
        
        hourItems[no].id = 'hourDiv' + (startHour / 1 + no / 1 - 1);
        
    }
    if (activeSelectBoxHour) {
        activeSelectBoxHour.style.color = '';
        if (document.getElementById('hourDiv' + currentHour)) {
            activeSelectBoxHour = document.getElementById('hourDiv' + currentHour);
            activeSelectBoxHour.style.color = selectBoxHighlightColor;
            ;
        }
    }
}

function updateYearDiv(){
    var yearSpan = 5;
    if (turnOffYearSpan) {
        yearSpan = 0;
    }
    var div = document.getElementById('yearDropDown');
    var yearItems = div.getElementsByTagName('DIV');
    for (var no = 1; no < yearItems.length - 1; no++) {
        yearItems[no].innerHTML = currentYear / 1 - yearSpan + no;
        if (currentYear == (currentYear / 1 - yearSpan + no)) {
            yearItems[no].style.color = selectBoxHighlightColor;
            activeSelectBoxYear = yearItems[no];
        }
        else {
            yearItems[no].style.color = '';
        }
    }
}

function updateMonthDiv(){
    for (no = 0; no < 12; no++) {
        document.getElementById('monthDiv_' + no).style.color = '';
    }
    document.getElementById('monthDiv_' + currentMonth).style.color = selectBoxHighlightColor;
    activeSelectBoxMonth = document.getElementById('monthDiv_' + currentMonth);
}


function updateHourDiv(){
    var div = document.getElementById('hourDropDown');
    var hourItems = div.getElementsByTagName('DIV');
    
    var addHours = 0;
    if ((currentHour / 1 - 6 + 1) < 0) {
        addHours = (currentHour / 1 - 6 + 1) * -1;
    }
    for (var no = 1; no < hourItems.length - 1; no++) {
        var prefix = '';
        if ((currentHour / 1 - 6 + no + addHours) < 10) 
            prefix = '0';
        hourItems[no].innerHTML = prefix + (currentHour / 1 - 6 + no + addHours);
        if (currentHour == (currentHour / 1 - 6 + no)) {
            hourItems[no].style.color = selectBoxHighlightColor;
            activeSelectBoxHour = hourItems[no];
        }
        else {
            hourItems[no].style.color = '';
        }
    }
}

function updateMinuteDiv(){
    for (no = 0; no < 60; no += intervalSelectBox_minutes) {
        var prefix = '';
        if (no < 10) 
            prefix = '0';
        
        document.getElementById('minuteDiv_' + prefix + no).style.color = '';
    }
    if (document.getElementById('minuteDiv_' + currentMinute)) {
        document.getElementById('minuteDiv_' + currentMinute).style.color = selectBoxHighlightColor;
        activeSelectBoxMinute = document.getElementById('minuteDiv_' + currentMinute);
    }
}



function createYearDiv(){

    if (!document.getElementById('yearDropDown')) {
        var div = document.createElement('DIV');
        div.className = 'monthYearPicker';
    }
    else {
        var div = document.getElementById('yearDropDown');
        var subDivs = div.getElementsByTagName('DIV');
        for (var no = 0; no < subDivs.length; no++) {
            subDivs[no].parentNode.removeChild(subDivs[no]);
        }
    }
    
    
    var d = new Date();
    if (currentYear) {
        d.setFullYear(currentYear);
    }
    
    var startYear = d.getFullYear() / 1 - 5;
    
    var yearSpan = 10;
    if (!turnOffYearSpan) {
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = '&nbsp;&nbsp;- ';
        subDiv.onclick = changeSelectBoxYear;
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = function(){
            selectBoxMovementInProgress = false;
        };
        subDiv.onselectstart = cancelCalendarEvent;
        div.appendChild(subDiv);
    }
    else {
        startYear = d.getFullYear() / 1 - 0;
        yearSpan = 2;
    }
    
    for (var no = startYear; no < (startYear + yearSpan); no++) {
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = no;
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = highlightMonthYear;
        subDiv.onclick = selectYear;
        subDiv.id = 'yearDiv' + no;
        subDiv.onselectstart = cancelCalendarEvent;
        div.appendChild(subDiv);
        if (currentYear && currentYear == no) {
            subDiv.style.color = selectBoxHighlightColor;
            activeSelectBoxYear = subDiv;
        }
    }
    if (!turnOffYearSpan) {
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = '&nbsp;&nbsp;+ ';
        subDiv.onclick = changeSelectBoxYear;
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = function(){
            selectBoxMovementInProgress = false;
        };
        subDiv.onselectstart = cancelCalendarEvent;
        div.appendChild(subDiv);
    }
    return div;
}

/* This function creates the hour div at the bottom bar */

function slideCalendarSelectBox(){
    if (selectBoxMovementInProgress) {
        if (activeSelectBox.parentNode.id == 'hourDropDown') {
            changeSelectBoxHour(false, activeSelectBox);
        }
        if (activeSelectBox.parentNode.id == 'yearDropDown') {
            changeSelectBoxYear(false, activeSelectBox);
        }
        
    }
    setTimeout('slideCalendarSelectBox()', speedOfSelectBoxSliding);
    
}

function createHourDiv(){
    if (!document.getElementById('hourDropDown')) {
        var div = document.createElement('DIV');
        div.className = 'monthYearPicker';
    }
    else {
        var div = document.getElementById('hourDropDown');
        var subDivs = div.getElementsByTagName('DIV');
        for (var no = 0; no < subDivs.length; no++) {
            subDivs[no].parentNode.removeChild(subDivs[no]);
        }
    }
    
    if (!currentHour) 
        currentHour = 0;
    var startHour = currentHour / 1;
    if (startHour > 14) 
        startHour = 14;
    
    var subDiv = document.createElement('DIV');
    subDiv.innerHTML = '&nbsp;&nbsp;- ';
    subDiv.onclick = changeSelectBoxHour;
    subDiv.onmouseover = highlightMonthYear;
    subDiv.onmouseout = function(){
        selectBoxMovementInProgress = false;
    };
    subDiv.onselectstart = cancelCalendarEvent;
    div.appendChild(subDiv);
    
    for (var no = startHour; no < startHour + 10; no++) {
        var prefix = '';
        if (no / 1 < 10) 
            prefix = '0';
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = prefix + no;
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = highlightMonthYear;
        subDiv.onclick = selectHour;
        subDiv.id = 'hourDiv' + no;
        subDiv.onselectstart = cancelCalendarEvent;
        div.appendChild(subDiv);
        if (currentYear && currentYear == no) {
            subDiv.style.color = selectBoxHighlightColor;
            activeSelectBoxYear = subDiv;
        }
    }
    var subDiv = document.createElement('DIV');
    subDiv.innerHTML = '&nbsp;&nbsp;+ ';
    subDiv.onclick = changeSelectBoxHour;
    subDiv.onmouseover = highlightMonthYear;
    subDiv.onmouseout = function(){
        selectBoxMovementInProgress = false;
    };
    subDiv.onselectstart = cancelCalendarEvent;
    div.appendChild(subDiv);
    
    return div;
}

/* This function creates the minute div at the bottom bar */

function createMinuteDiv(){
    if (!document.getElementById('minuteDropDown')) {
        var div = document.createElement('DIV');
        div.className = 'monthYearPicker';
    }
    else {
        var div = document.getElementById('minuteDropDown');
        var subDivs = div.getElementsByTagName('DIV');
        for (var no = 0; no < subDivs.length; no++) {
            subDivs[no].parentNode.removeChild(subDivs[no]);
        }
    }
    var startMinute = 0;
    var prefix = '';
    for (var no = startMinute; no < 60; no += intervalSelectBox_minutes) {
    
        if (no < 10) 
            prefix = '0';
        else 
            prefix = '';
        var subDiv = document.createElement('DIV');
        subDiv.innerHTML = prefix + no;
        subDiv.onmouseover = highlightMonthYear;
        subDiv.onmouseout = highlightMonthYear;
        subDiv.onclick = selectMinute;
        subDiv.id = 'minuteDiv_' + prefix + no;
        subDiv.onselectstart = cancelCalendarEvent;
        div.appendChild(subDiv);
        if (currentYear && currentYear == no) {
            subDiv.style.color = selectBoxHighlightColor;
            activeSelectBoxYear = subDiv;
        }
    }
    return div;
}

function highlightSelect(){

    if (this.className == 'selectBoxTime') {
        this.className = 'selectBoxTimeOver';
        this.getElementsByTagName('IMG')[0].src = pathToImages + 'down_time_over.gif';
    }
    else 
        if (this.className == 'selectBoxTimeOver') {
            this.className = 'selectBoxTime';
            this.getElementsByTagName('IMG')[0].src = pathToImages + 'down_time.gif';
        }
    
    if (this.className == 'selectBox') {
        this.className = 'selectBoxOver';
        this.getElementsByTagName('IMG')[0].src = pathToImages + 'down_over.gif';
    }
    else 
        if (this.className == 'selectBoxOver') {
            this.className = 'selectBox';
            this.getElementsByTagName('IMG')[0].src = pathToImages + 'down.gif';
        }
    
}

function highlightArrow(){
    if (this.src.indexOf('over') >= 0) {
        if (this.src.indexOf('left') >= 0) 
            this.src = pathToImages + 'left.gif';
        if (this.src.indexOf('right') >= 0) 
            this.src = pathToImages + 'right.gif';
    }
    else {
        if (this.src.indexOf('left') >= 0) 
            this.src = pathToImages + 'left_over.gif';
        if (this.src.indexOf('right') >= 0) 
            this.src = pathToImages + 'right_over.gif';
    }
}

function highlightClose(){
    if (this.src.indexOf('over') >= 0) {
        this.src = pathToImages + 'close.gif';
    }
    else {
        this.src = pathToImages + 'close_over.gif';
    }
    
}

function closeCalendar(){

    document.getElementById('yearDropDown').style.display = 'none';
    document.getElementById('monthDropDown').style.display = 'none';
    document.getElementById('hourDropDown').style.display = 'none';
    document.getElementById('minuteDropDown').style.display = 'none';
    
    calendarDiv.style.display = 'none';
    if (iframeObj) {
        iframeObj.style.display = 'none';
        //// //// fix for EI frame problem on time dropdowns 09/30/2006
        EIS_Hide_Frame();
    }
    if (activeSelectBoxMonth) 
        activeSelectBoxMonth.className = '';
    if (activeSelectBoxYear) 
        activeSelectBoxYear.className = '';
    
    
}

function writeTopBar(){

    var topBar = document.createElement('DIV');
    topBar.className = 'topBar';
    topBar.id = 'topBar';
    calendarDiv.appendChild(topBar);
    
    // Left arrow
    var leftDiv = document.createElement('DIV');
    leftDiv.style.marginRight = '1px';
    var img = document.createElement('IMG');
    img.src = pathToImages + 'left.gif';
    img.onmouseover = highlightArrow;
    img.onclick = switchMonth;
    img.onmouseout = highlightArrow;
    leftDiv.appendChild(img);
    topBar.appendChild(leftDiv);
    if (Opera) 
        leftDiv.style.width = '16px';
    
    // Right arrow
    var rightDiv = document.createElement('DIV');
    rightDiv.style.marginRight = '1px';
    var img = document.createElement('IMG');
    img.src = pathToImages + 'right.gif';
    img.onclick = switchMonth;
    img.onmouseover = highlightArrow;
    img.onmouseout = highlightArrow;
    rightDiv.appendChild(img);
    if (Opera) 
        rightDiv.style.width = '16px';
    topBar.appendChild(rightDiv);
    
    
    // Month selector
    var monthDiv = document.createElement('DIV');
    monthDiv.id = 'monthSelect';
    monthDiv.onmouseover = highlightSelect;
    monthDiv.onmouseout = highlightSelect;
    monthDiv.onclick = showMonthDropDown;
    var span = document.createElement('SPAN');
    span.innerHTML = monthArray[currentMonth];
    span.id = 'calendar_month_txt';
    monthDiv.appendChild(span);
    
    var img = document.createElement('IMG');
    img.src = pathToImages + 'down.gif';
    img.style.position = 'absolute';
    img.style.right = '0px';
    monthDiv.appendChild(img);
    monthDiv.className = 'selectBox';
    if (Opera) {
        img.style.cssText = 'float:right;position:relative';
        img.style.position = 'relative';
        img.style.styleFloat = 'right';
    }
    topBar.appendChild(monthDiv);
    
    var monthPicker = createMonthDiv();
    monthPicker.style.left = '37px';
    monthPicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px';
    //monthPicker.style.width = '60px';
    monthPicker.id = 'monthDropDown';
    
    calendarDiv.appendChild(monthPicker);
    
    // Year selector
    var yearDiv = document.createElement('DIV');
    yearDiv.onmouseover = highlightSelect;
    yearDiv.onmouseout = highlightSelect;
    yearDiv.onclick = showYearDropDown;
    var span = document.createElement('SPAN');
    span.innerHTML = currentYear;
    span.id = 'calendar_year_txt';
    yearDiv.appendChild(span);
    topBar.appendChild(yearDiv);
    
    var img = document.createElement('IMG');
    img.src = pathToImages + 'down.gif';
    yearDiv.appendChild(img);
    yearDiv.className = 'selectBox';
    
    if (Opera) {
        yearDiv.style.width = '50px';
        img.style.cssText = 'float:right';
        img.style.position = 'relative';
        img.style.styleFloat = 'right';
    }
    
    var yearPicker = createYearDiv();
    yearPicker.style.left = '113px';
    yearPicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px';
    yearPicker.style.width = '49px';
    yearPicker.id = 'yearDropDown';
    calendarDiv.appendChild(yearPicker);
    
    
    var img = document.createElement('IMG');
    img.src = pathToImages + 'close.gif';
    img.style.styleFloat = 'right';
    img.onmouseover = highlightClose;
    img.onmouseout = highlightClose;
    img.onclick = closeCalendar;
    topBar.appendChild(img);
    if (!document.all) {
        img.style.position = 'absolute';
        img.style.right = '2px';
    }
    
    
    
}

function writeCalendarContent(){
    var calendarContentDivExists = true;
    if (!calendarContentDiv) {
        calendarContentDiv = document.createElement('DIV');
        calendarDiv.appendChild(calendarContentDiv);
        calendarContentDivExists = false;
    }
    currentMonth = currentMonth / 1;
    var d = new Date();
    
    d.setFullYear(currentYear);
    d.setDate(1);
    d.setMonth(currentMonth);
    
    var dayStartOfMonth = d.getDay();
    if (!weekStartsOnSunday) {
        if (dayStartOfMonth == 0) 
            dayStartOfMonth = 7;
        dayStartOfMonth--;
    }
    
    document.getElementById('calendar_year_txt').innerHTML = currentYear;
    document.getElementById('calendar_month_txt').innerHTML = monthArray[currentMonth];
    document.getElementById('calendar_hour_txt').innerHTML = currentHour;
    document.getElementById('calendar_minute_txt').innerHTML = currentMinute;
    
    var existingTable = calendarContentDiv.getElementsByTagName('TABLE');
    if (existingTable.length > 0) {
        calendarContentDiv.removeChild(existingTable[0]);
    }
    
    var calTable = document.createElement('TABLE');
    calTable.width = '100%';
    calTable.cellSpacing = '0';
    calendarContentDiv.appendChild(calTable);
    
    
    
    
    var calTBody = document.createElement('TBODY');
    calTable.appendChild(calTBody);
    var row = calTBody.insertRow(-1);
    row.className = 'calendar_week_row';
    if (showWeekNumber) {
        var cell = row.insertCell(-1);
        cell.innerHTML = weekString;
        cell.className = 'calendar_week_column';
        cell.style.backgroundColor = selectBoxRolloverBgColor;
    }
    
    for (var no = 0; no < dayArray.length; no++) {
        var cell = row.insertCell(-1);
        cell.innerHTML = dayArray[no];
    }
    
    var row = calTBody.insertRow(-1);
    
    if (showWeekNumber) {
        var cell = row.insertCell(-1);
        cell.className = 'calendar_week_column';
        cell.style.backgroundColor = selectBoxRolloverBgColor;
        var week = getWeek(currentYear, currentMonth, 1);
        cell.innerHTML = week; // Week
    }
    for (var no = 0; no < dayStartOfMonth; no++) {
        var cell = row.insertCell(-1);
        cell.innerHTML = '&nbsp;';
    }
    
    var colCounter = dayStartOfMonth;
    var daysInMonth = daysInMonthArray[currentMonth];
    if (daysInMonth == 28) {
        if (isLeapYear(currentYear)) 
            daysInMonth = 29;
    }
    
    for (var no = 1; no <= daysInMonth; no++) {
        d.setDate(no - 1);
        if (colCounter > 0 && colCounter % 7 == 0) {
            var row = calTBody.insertRow(-1);
            if (showWeekNumber) {
                var cell = row.insertCell(-1);
                cell.className = 'calendar_week_column';
                var week = getWeek(currentYear, currentMonth, no);
                cell.innerHTML = week; // Week
                cell.style.backgroundColor = selectBoxRolloverBgColor;
            }
        }
        var cell = row.insertCell(-1);
        if (currentYear == inputYear && currentMonth == inputMonth && no == inputDay) {
            cell.className = 'activeDay';
        }
        cell.innerHTML = no;
        cell.onclick = pickDate;
        colCounter++;
    }
    
    
    if (!document.all) {
        if (calendarContentDiv.offsetHeight) 
            document.getElementById('topBar').style.top = calendarContentDiv.offsetHeight + document.getElementById('timeBar').offsetHeight + document.getElementById('topBar').offsetHeight - 1 + 'px';
        else {
            document.getElementById('topBar').style.top = '';
            document.getElementById('topBar').style.bottom = '0px';
        }
        
    }
    
    if (iframeObj) {
        if (!calendarContentDivExists) 
            setTimeout('resizeIframe()', 350);
        else 
            setTimeout('resizeIframe()', 10);
    }
    
    
    
    
}

function resizeIframe(){
    iframeObj.style.width = calendarDiv.offsetWidth + 'px';
    iframeObj.style.height = calendarDiv.offsetHeight + 'px';
    
    
}

function pickTodaysDate(){
    var d = new Date();
    currentMonth = d.getMonth();
    currentYear = d.getFullYear();
    pickDate(false, d.getDate());
    
}

function pickDate(e, inputDay){
    var month = currentMonth / 1 + 1;
    if (month < 10) 
        month = '0' + month;
    var day;
    if (!inputDay && this) 
        day = this.innerHTML;
    else 
        day = inputDay;
    
    if (day / 1 < 10) 
        day = '0' + day;
    if (returnFormat) {
        returnFormat = returnFormat.replace('dd', day);
        returnFormat = returnFormat.replace('mm', month);
        returnFormat = returnFormat.replace('yyyy', currentYear);
        returnFormat = returnFormat.replace('hh', currentHour);
        returnFormat = returnFormat.replace('ii', currentMinute);
        returnFormat = returnFormat.replace('d', day / 1);
        returnFormat = returnFormat.replace('m', month / 1);
        
        returnDateTo.value = returnFormat;
        try {
            returnDateTo.onchange();
        } 
        catch (e) {
        
        }
    }
    else {
        for (var no = 0; no < returnDateToYear.options.length; no++) {
            if (returnDateToYear.options[no].value == currentYear) {
                returnDateToYear.selectedIndex = no;
                break;
            }
        }
        for (var no = 0; no < returnDateToMonth.options.length; no++) {
            if (returnDateToMonth.options[no].value == parseInt(month)) {
                returnDateToMonth.selectedIndex = no;
                break;
            }
        }
        for (var no = 0; no < returnDateToDay.options.length; no++) {
            if (returnDateToDay.options[no].value == parseInt(day)) {
                returnDateToDay.selectedIndex = no;
                break;
            }
        }
        if (calendarDisplayTime) {
            for (var no = 0; no < returnDateToHour.options.length; no++) {
                if (returnDateToHour.options[no].value == parseInt(currentHour)) {
                    returnDateToHour.selectedIndex = no;
                    break;
                }
            }
            for (var no = 0; no < returnDateToMinute.options.length; no++) {
                if (returnDateToMinute.options[no].value == parseInt(currentMinute)) {
                    returnDateToMinute.selectedIndex = no;
                    break;
                }
            }
        }
    }
    closeCalendar();
    
}

// This function is from http://www.codeproject.com/csharp/gregorianwknum.asp
// Only changed the month add
function getWeek(year, month, day){
    if (!weekStartsOnSunday) {
        day = (day / 1);
    }
    else {
        day = (day / 1) + 1;
    }
    year = year / 1;
    month = month / 1 + 1; //use 1-12
    var a = Math.floor((14 - (month)) / 12);
    var y = year + 4800 - a;
    var m = (month) + (12 * a) - 3;
    var jd = day + Math.floor(((153 * m) + 2) / 5) +
    (365 * y) +
    Math.floor(y / 4) -
    Math.floor(y / 100) +
    Math.floor(y / 400) -
    32045; // (gregorian calendar)
    var d4 = (jd + 31741 - (jd % 7)) % 146097 % 36524 % 1461;
    var L = Math.floor(d4 / 1460);
    var d1 = ((d4 - L) % 365) + L;
    NumberOfWeek = Math.floor(d1 / 7) + 1;
    return NumberOfWeek;
}

function writeTimeBar(){
    var timeBar = document.createElement('DIV');
    timeBar.id = 'timeBar';
    timeBar.className = 'timeBar';
    
    var subDiv = document.createElement('DIV');
    subDiv.innerHTML = 'Time:';
    //timeBar.appendChild(subDiv);
    
    // Year selector
    var hourDiv = document.createElement('DIV');
    hourDiv.onmouseover = highlightSelect;
    hourDiv.onmouseout = highlightSelect;
    hourDiv.onclick = showHourDropDown;
    hourDiv.style.width = '30px';
    var span = document.createElement('SPAN');
    span.innerHTML = currentHour;
    span.id = 'calendar_hour_txt';
    hourDiv.appendChild(span);
    timeBar.appendChild(hourDiv);
    
    var img = document.createElement('IMG');
    img.src = pathToImages + 'down_time.gif';
    hourDiv.appendChild(img);
    hourDiv.className = 'selectBoxTime';
    
    if (Opera) {
        hourDiv.style.width = '30px';
        img.style.cssText = 'float:right';
        img.style.position = 'relative';
        img.style.styleFloat = 'right';
    }
    
    var hourPicker = createHourDiv();
    hourPicker.style.left = '130px';
    //hourPicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px';
    hourPicker.style.width = '35px';
    hourPicker.id = 'hourDropDown';
    calendarDiv.appendChild(hourPicker);
    
    // Add Minute picker
    
    // Year selector
    var minuteDiv = document.createElement('DIV');
    minuteDiv.onmouseover = highlightSelect;
    minuteDiv.onmouseout = highlightSelect;
    minuteDiv.onclick = showMinuteDropDown;
    minuteDiv.style.width = '30px';
    var span = document.createElement('SPAN');
    span.innerHTML = currentMinute;
    
    span.id = 'calendar_minute_txt';
    minuteDiv.appendChild(span);
    timeBar.appendChild(minuteDiv);
    
    var img = document.createElement('IMG');
    img.src = pathToImages + 'down_time.gif';
    minuteDiv.appendChild(img);
    minuteDiv.className = 'selectBoxTime';
    
    if (Opera) {
        minuteDiv.style.width = '30px';
        img.style.cssText = 'float:right';
        img.style.position = 'relative';
        img.style.styleFloat = 'right';
    }
    
    var minutePicker = createMinuteDiv();
    minutePicker.style.left = '167px';
    //minutePicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px';
    minutePicker.style.width = '35px';
    minutePicker.id = 'minuteDropDown';
    calendarDiv.appendChild(minutePicker);
    
    
    return timeBar;
    
}

function writeBottomBar(){
    var d = new Date();
    var bottomBar = document.createElement('DIV');
    
    bottomBar.id = 'bottomBar';
    
    bottomBar.style.cursor = 'pointer';
    bottomBar.className = 'todaysDate';
    // var todayStringFormat = '[todayString] [dayString] [day] [monthString] [year]';	;;
    
    var subDiv = document.createElement('DIV');
    subDiv.onclick = pickTodaysDate;
    subDiv.id = 'todaysDateString';
    subDiv.style.width = (calendarDiv.offsetWidth - 95) + 'px';
    var day = d.getDay();
    if (!weekStartsOnSunday) {
        if (day == 0) 
            day = 7;
        day--;
    }
    
    var bottomString = todayStringFormat;
    bottomString = bottomString.replace('[monthString]', monthArrayShort[d.getMonth()]);
    bottomString = bottomString.replace('[day]', d.getDate());
    bottomString = bottomString.replace('[year]', d.getFullYear());
    bottomString = bottomString.replace('[dayString]', dayArray[day].toLowerCase());
    bottomString = bottomString.replace('[UCFdayString]', dayArray[day]);
    bottomString = bottomString.replace('[todayString]', todayString);
    
    
    subDiv.innerHTML = todayString + ': ' + d.getDate() + '. ' + monthArrayShort[d.getMonth()] + ', ' + d.getFullYear();
    subDiv.innerHTML = bottomString;
    bottomBar.appendChild(subDiv);
    
    var timeDiv = writeTimeBar();
    bottomBar.appendChild(timeDiv);
    
    calendarDiv.appendChild(bottomBar);
    
    
    
}

function getTopPos(inputObj){

    var returnValue = inputObj.offsetTop + inputObj.offsetHeight;
    while ((inputObj = inputObj.offsetParent) != null) 
        returnValue += inputObj.offsetTop;
    return returnValue + calendar_offsetTop;
}

function getleftPos(inputObj){
    var returnValue = inputObj.offsetLeft;
    while ((inputObj = inputObj.offsetParent) != null) 
        returnValue += inputObj.offsetLeft;
    return returnValue + calendar_offsetLeft;
}

function positionCalendar(inputObj){
    calendarDiv.style.left = getleftPos(inputObj) + 'px';
    calendarDiv.style.top = getTopPos(inputObj) + 'px';
    if (iframeObj) {
        iframeObj.style.left = calendarDiv.style.left;
        iframeObj.style.top = calendarDiv.style.top;
        //// fix for EI frame problem on time dropdowns 09/30/2006
        iframeObj2.style.left = calendarDiv.style.left;
        iframeObj2.style.top = calendarDiv.style.top;
    }
    
}

function initCalendar(){
    if (MSIE) {
        iframeObj = document.createElement('IFRAME');
        iframeObj.style.filter = 'alpha(opacity=0)';
        iframeObj.style.position = 'absolute';
        iframeObj.border = '0px';
        iframeObj.style.border = '0px';
        iframeObj.style.backgroundColor = '#FF0000';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        iframeObj2 = document.createElement('IFRAME');
        iframeObj2.style.position = 'absolute';
        iframeObj2.border = '0px';
        iframeObj2.style.border = '0px';
        iframeObj2.style.height = '1px';
        iframeObj2.style.width = '1px';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        // Added fixed for HTTPS
        iframeObj2.src = 'blank.html';
        iframeObj.src = 'blank.html';
        document.body.appendChild(iframeObj2); // gfb move this down AFTER the .src is set
        document.body.appendChild(iframeObj);
    }
    
    calendarDiv = document.createElement('DIV');
    calendarDiv.id = 'calendarDiv';
    calendarDiv.style.zIndex = 1000;
    slideCalendarSelectBox();
    
    document.body.appendChild(calendarDiv);
    writeBottomBar();
    writeTopBar();
    
    
    
    if (!currentYear) {
        var d = new Date();
        currentMonth = d.getMonth();
        currentYear = d.getFullYear();
    }
    writeCalendarContent();
    
    
    
}

function setTimeProperties(){
    if (!calendarDisplayTime) {
        document.getElementById('timeBar').style.display = 'none';
        document.getElementById('timeBar').style.visibility = 'hidden';
        document.getElementById('todaysDateString').style.width = '100%';
        
        
    }
    else {
        document.getElementById('timeBar').style.display = 'block';
        document.getElementById('timeBar').style.visibility = 'visible';
        document.getElementById('hourDropDown').style.top = document.getElementById('calendar_minute_txt').parentNode.offsetHeight + calendarContentDiv.offsetHeight + document.getElementById('topBar').offsetHeight + 'px';
        document.getElementById('minuteDropDown').style.top = document.getElementById('calendar_minute_txt').parentNode.offsetHeight + calendarContentDiv.offsetHeight + document.getElementById('topBar').offsetHeight + 'px';
        document.getElementById('minuteDropDown').style.right = '50px';
        document.getElementById('hourDropDown').style.right = '50px';
        document.getElementById('todaysDateString').style.width = '115px';
    }
}

function calendarSortItems(a, b){
    return a / 1 - b / 1;
}


function displayCalendar(inputField, format, buttonObj, displayTime, timeInput){
    if (displayTime) 
        calendarDisplayTime = true;
    else 
        calendarDisplayTime = false;
    
    if (inputField.value.length > 6) { //dates must have at least 6 digits...
        if (!inputField.value.match(/^[0-9]*?$/gi)) {
        
            var items = inputField.value.split(/[^0-9]/gi);
            var positionArray = new Object();
            positionArray.m = format.indexOf('mm');
            if (positionArray.m == -1) 
                positionArray.m = format.indexOf('m');
            positionArray.d = format.indexOf('dd');
            if (positionArray.d == -1) 
                positionArray.d = format.indexOf('d');
            positionArray.y = format.indexOf('yyyy');
            positionArray.h = format.indexOf('hh');
            positionArray.i = format.indexOf('ii');
            
            
            this.initialHour = '00';
            this.initialMinute = '00';
            var elements = ['y', 'm', 'd', 'h', 'i'];
            var properties = ['currentYear', 'currentMonth', 'inputDay', 'currentHour', 'currentMinute'];
            var propertyLength = [4, 2, 2, 2, 2];
            for (var i = 0; i < elements.length; i++) {
                if (positionArray[elements[i]] >= 0) {
                    window[properties[i]] = inputField.value.substr(positionArray[elements[i]], propertyLength[i]) / 1;
                }
            }
            
            currentMonth--;
        }
        else {
            var monthPos = format.indexOf('mm');
            currentMonth = inputField.value.substr(monthPos, 2) / 1 - 1;
            var yearPos = format.indexOf('yyyy');
            currentYear = inputField.value.substr(yearPos, 4);
            var dayPos = format.indexOf('dd');
            tmpDay = inputField.value.substr(dayPos, 2);
            
            var hourPos = format.indexOf('hh');
            if (hourPos >= 0) {
                tmpHour = inputField.value.substr(hourPos, 2);
                currentHour = tmpHour;
            }
            else {
                currentHour = '00';
            }
            var minutePos = format.indexOf('ii');
            if (minutePos >= 0) {
                tmpMinute = inputField.value.substr(minutePos, 2);
                currentMinute = tmpMinute;
            }
            else {
                currentMinute = '00';
            }
        }
    }
    else {
        var d = new Date();
        currentMonth = d.getMonth();
        currentYear = d.getFullYear();
        currentHour = '08';
        currentMinute = '00';
        inputDay = d.getDate() / 1;
    }
    
    inputYear = currentYear;
    inputMonth = currentMonth;
    
    
    if (!calendarDiv) {
        initCalendar();
    }
    else {
        if (calendarDiv.style.display == 'block') {
            closeCalendar();
            return false;
        }
        writeCalendarContent();
    }
    
    
    
    returnFormat = format;
    returnDateTo = inputField;
    positionCalendar(buttonObj);
    calendarDiv.style.visibility = 'visible';
    calendarDiv.style.display = 'block';
    if (iframeObj) {
        iframeObj.style.display = '';
        iframeObj.style.height = '140px';
        iframeObj.style.width = '195px';
        iframeObj2.style.display = '';
        iframeObj2.style.height = '140px';
        iframeObj2.style.width = '195px';
    }
    
    setTimeProperties();
    updateYearDiv();
    updateMonthDiv();
    updateMinuteDiv();
    updateHourDiv();
    
}

function displayCalendarSelectBox(yearInput, monthInput, dayInput, hourInput, minuteInput, buttonObj){
    if (!hourInput) 
        calendarDisplayTime = false;
    else 
        calendarDisplayTime = true;
    
    currentMonth = monthInput.options[monthInput.selectedIndex].value / 1 - 1;
    currentYear = yearInput.options[yearInput.selectedIndex].value;
    if (hourInput) {
        currentHour = hourInput.options[hourInput.selectedIndex].value;
        inputHour = currentHour / 1;
    }
    if (minuteInput) {
        currentMinute = minuteInput.options[minuteInput.selectedIndex].value;
        inputMinute = currentMinute / 1;
    }
    
    inputYear = yearInput.options[yearInput.selectedIndex].value;
    inputMonth = monthInput.options[monthInput.selectedIndex].value / 1 - 1;
    inputDay = dayInput.options[dayInput.selectedIndex].value / 1;
    
    if (!calendarDiv) {
        initCalendar();
    }
    else {
        writeCalendarContent();
    }
    
    
    
    returnDateToYear = yearInput;
    returnDateToMonth = monthInput;
    returnDateToDay = dayInput;
    returnDateToHour = hourInput;
    returnDateToMinute = minuteInput;
    
    
    
    
    returnFormat = false;
    returnDateTo = false;
    positionCalendar(buttonObj);
    calendarDiv.style.visibility = 'visible';
    calendarDiv.style.display = 'block';
    if (iframeObj) {
        iframeObj.style.display = '';
        iframeObj.style.height = calendarDiv.offsetHeight + 'px';
        iframeObj.style.width = calendarDiv.offsetWidth + 'px';
        //// fix for EI frame problem on time dropdowns 09/30/2006
        iframeObj2.style.display = '';
        iframeObj2.style.height = calendarDiv.offsetHeight + 'px';
        iframeObj2.style.width = calendarDiv.offsetWidth + 'px'
    }
    setTimeProperties();
    updateYearDiv();
    updateMonthDiv();
    updateHourDiv();
    updateMinuteDiv();
    
}

