var turnOffYearSpan = false; var weekStartsOnSunday = false; var showWeekNumber = true; var languageCode = 'en'; var calendar_display_time = true; var formname=''; var todayStringFormat = '[todayString] [UCFdayString]. [day]. [monthString] [year]'; var pathToImages = 'ts/'; var speedOfSelectBoxSliding = 200; var intervalSelectBox_minutes = 5; var calendar_offsetTop = 0; var calendar_offsetLeft = 0; 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; } 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 = '#D60808'; // Highlight color of select boxes var selectBoxRolloverBgColor = '#E2EBED'; // 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=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=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=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;no14)startHour=14; var subDiv = document.createElement('DIV'); subDiv.innerHTML = '  - '; subDiv.onclick = changeSelectBoxHour; subDiv.onmouseover = highlightMonthYear; subDiv.onmouseout = function(){ selectBoxMovementInProgress = false;}; subDiv.onselectstart = cancelCalendarEvent; div.appendChild(subDiv); for(var no=startHour;no=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_new.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 = '35px'; yearPicker.id = 'yearDropDown'; calendarDiv.appendChild(yearPicker); var img = document.createElement('IMG'); img.src = pathToImages + 'close_new.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]; //alert (document.getElementById('calendar_month_txt').innerHTML ) 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;no0 && 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 displayCalendar(inputField,format,buttonObj,displayTime,timeInput,fname) { formname = fname; 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]; var mydate = inputField.value; var arr = mydate.split('-'); var mon = 0; var monthArrayShort = ['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC']; for (i =0; i<= 11; i++ ) { if (monthArrayShort[i] == arr[1]) { mon = i; break; } } mon++; if(mon<10)mon = '0' + mon; arr[1] = mon; //alert(mon) mydate = arr[0]+'-'+arr[1]+'-'+arr[2]; //alert (mydate); for(var i=0;i=0) { window[properties[i]] = mydate.substr(positionArray[elements[i]],propertyLength[i])/1; //alert(window[properties[i]]) } } currentMonth--; //var monthArrayShort = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; // monthArrayShort[currentMonth] //alert (this.innerHTML) // alert(currentMonth +'--test'+ this.innerHTML); }else{ //alert("pradeep"); 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'){ 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 pickDate(e,inputDay) { var month = currentMonth/1 +1; var monthArrayShort = ['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC']; var monthinder = new Array ("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"); 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); var t = month -1; var a = monthArrayShort[t]; var mydate = new Date(); var m1 = mydate.getMonth(); var y1= mydate.getFullYear(); var d1= mydate.getDate(); m1++; //var c_date = d1+''+m1+''+y1; if (document.getElementById('check_in').value != '' && formname == "dept_Date") { var check_in_date = document.getElementById('check_in').value; var check_out_date = document.getElementById('dept_Date').value; var check_in_date_array=check_in_date.split("-"); var check_out_date_array=check_out_date.split("-"); var not_allowed=0; var check_in_month=0; for (var i=0;i<=11;i++) { if(check_in_date_array[1] == monthinder[i]) { check_in_month=i+1; } } if(currentYear < check_in_date_array[2]) { not_allowed = 1; } else { if(month < check_in_month) { if(currentYear == check_in_date_array[2]) { not_allowed = 1; } } else { if(currentYear == check_in_date_array[2] && month == check_in_month) { if(day < check_in_date_array[0]) { not_allowed = 1; } } } } if ( not_allowed == 1) { alert ('You can\'t select the date before Check In Date'); closeCalendar(); document.getElementById(formname).focus(); return; } } else { if (formname == "check_in") { if ( currentYear < y1) { alert ('You can\'t select the date before Current Date'); closeCalendar(); document.getElementById(formname).focus(); return; } else { if (currentYear == y1 ) { if (month < m1) { alert ('You can\'t select the date before Current Date'); closeCalendar(); document.getElementById(formname).focus(); return; } else { if (month == m1) { if (day < d1) { alert ('You can\'t select the date before Current Date'); closeCalendar(); document.getElementById(formname).focus(); return; } } } } } if(document.getElementById('dept_Date') !=null && document.getElementById('dept_Date').value != '') { var check_in_date = document.getElementById('check_in').value; var check_out_date = document.getElementById('dept_Date').value; var check_in_date_array=check_in_date.split("-"); var check_out_date_array=check_out_date.split("-"); var not_allowed=0; var check_out_month=0; for (var i=0;i<=11;i++) { if(check_out_date_array[1] == monthinder[i]) { check_out_month=i+1; } } if(currentYear > check_out_date_array[2]) { not_allowed = 1; } else { if(month > check_out_month) { if(currentYear == check_in_date_array[2]) { not_allowed = 1; } } else { if(currentYear == check_out_date_array[2] && month == check_out_month) { if(day > check_out_date_array[0]) { not_allowed = 1; } } } } if ( not_allowed == 1) { document.getElementById('dept_Date').value=''; document.getElementById('dept_Date').focus(); } } } else { alert("Kindly enter your Check-in date before your Check-out date.") document.getElementById('dept_Date').value=''; closeCalendar(); document.getElementById('check_in').focus()=''; return; } } //if(month<10)month = '0' + month; //var selected_date = day+''+month+''+currentYear; //alert ('selected date '+selected_date); //if (c_date < selected_date) //{ //alert ('You can\'t select the date after Current Date' ); // return; //} returnFormat = returnFormat.replace('mm',a); //alert (returnFormat +"==="+ a +"==="+ t); 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[int] characters remaining in your input limit.", //default message that gets output to statusid element uncheckedkeycodes: /(8)|(13)|(16)|(17)|(18)/, //keycodes that are not checked, even when limit has been reached. See http://www.javascriptkit.com/jsref/eventkeyboardmouse.shtml for avail keycodes limitinput:function(e, config){ var e=window.event || e var thefield=config.thefield var keyunicode=e.charCode || e.keyCode if (!this.uncheckedkeycodes.test(keyunicode)){ if (thefield.value.length>=config.maxlength){ if (e.preventDefault) e.preventDefault() return false } } }, showlimit:function(config){ var thefield=config.thefield var statusids=config.statusids var charsleft=config.maxlength-thefield.value.length if (charsleft<0) //if user has exceeded input limit (possible if cut and paste text into field) thefield.value=thefield.value.substring(0, config.maxlength) //trim input for (var i=0; i0){ var target=targetarr.shift() if (target.addEventListener) target.addEventListener(tasktype, functionref, false) else if (target.attachEvent) target.attachEvent('on'+tasktype, function(){return functionref.call(target, window.event)}) this.addEvent(targetarr, functionref, tasktype) } }, setup:function(config){ if (config.thefield){ //if form field exists config.onkeypress=config.onkeypress || function(){} config.thefield.value=config.thefield.value this.showlimit(config) this.addEvent([window], function(e){fieldlimiter.showlimit(config)}, "load") this.addEvent([window], function(e){fieldlimiter.cleanup(config)}, "unload") this.addEvent([config.thefield], function(e){return fieldlimiter.limitinput(e, config)}, "keypress") this.addEvent([config.thefield], function(){fieldlimiter.showlimit(config)}, "keyup") } } } function hidecal() { if(document.getElementById('calendarDiv')) { closeCalendar(); } }