// Bazillyo's Spiffy DHTML Popup Calendar v. 1.0 © 2000 S. Ousta (http://www.geocities.com/bazillyo/calendar/calendarTest.htm) // Courtesy of SimplytheBest.net (http://simplythebest.net/info/dhtml_scripts.html) // initialiZe variables... var ppcIE=((navigator.appName == "Microsoft Internet Explorer") || ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5))); var ppcNN6=((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5)); //var ppcIE=(navigator.appName == "Microsoft Internet Explorer"); var ppcNN=((navigator.appName == "Netscape")&&(document.layers)); var ppcX = 4; var ppcY = 4; var IsCalendarVisible; var calfrmName; var maxYearList; var minYearList; var todayDate = new Date; var curDate = new Date; var curImg; var curDateBox; var curDateIndex; var minDate = new Date; var maxDate = new Date; var hideDropDowns; var IsUsingMinMax; var FuncsToRun; var img_del; var img_close; // Locale type 0= Germany 1=USA 2,3,4..=OTHERS var dt_locale_type = "de"; var dt_separator = '/'; var names = new makeArray0('01','02','03','04','05','06','07','08','09','10','11','12'); var days = new makeArray0(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); var dow = new makeArray0('Su','Mo','Th','We','Tu','Fr','Sa'); img_del=new Image(); img_del.src="/products/calendar/btn_del_small.gif"; img_close=new Image(); img_close.src="/products/calendar/btn_close_small.gif"; minYearList=todayDate.getFullYear()-10; maxYearList=todayDate.getFullYear()+10; IsCalendarVisible=false; img_Date_UP=new Image(); img_Date_UP.src="/products/calendar/btn_date_up.gif"; img_Date_OVER=new Image(); img_Date_OVER.src="/products/calendar/btn_date_over.gif"; img_Date_DOWN=new Image(); img_Date_DOWN.src="/products/calendar/btn_date_down.gif"; function getImgIndex(img) { var tokens = img.name.split('_'); var index = tokens[tokens.length - 1]; if (index == '0' || parseInt(index)) return index; else return -1; } function changeTime(img, formName, fieldName, inc) { var field = null; var index = getImgIndex(img); if (index == -1) { field = document.forms[formName].elements[fieldName]; } else { field = document.forms[formName].elements[fieldName][index]; } var tokens = field.value.split(':'); var hours = parseInt(tokens[0].charAt(0) == '0' ? tokens[0].charAt(1): tokens[0]); var minutes = parseInt(tokens[1].charAt(0) == '0' ? tokens[1].charAt(1): tokens[1]); var incr = parseInt(inc); var newHours = hours; var newMinutes = minutes + incr; if (newMinutes < 0) { newMinutes += 60; newHours--; if (newHours < 0) { newHours = 23; } } else if (newMinutes > 59) { newMinutes -= 60; newHours++; if (newHours > 23) { newHours = 0; } } var strNewHours = newHours < 10 ? "0" + newHours : "" + newHours; var strNewMinutes = newMinutes < 10 ? "0" + newMinutes : "" + newMinutes; field.value = strNewHours + ":" + strNewMinutes; } function calSwapImg(whatID, NewImg,override) { if (document.images) { if (!( IsCalendarVisible && override )) { whatID.src = eval(NewImg + ".src"); } } window.status=' '; return true; } function getOffsetLeft (el) { var ol = el.offsetLeft; while ((el = el.offsetParent) != null) ol += el.offsetLeft; return ol; } function getOffsetTop (el) { var ot = el.offsetTop; while((el = el.offsetParent) != null) ot += el.offsetTop; return ot; } function showCalendar(locale_type, frmName,dteBox,btnImg, hideDrops, MnDt, MnMo, MnYr, MxDt, MxMo, MxYr,runFuncs) { dt_locale_type = locale_type; dt_separator = '/'; if (dt_locale_type == "de" ) { dt_separator = '.'; dow = new makeArray0('So','Mo','Di','Mi','Do','Fr','Sa'); } else if (dt_locale_type == "it" ) { dow = new makeArray0('Do','Lu','Ma','Me','Gi','Ve','Sa'); } else if (dt_locale_type == "fr" ) { dow = new makeArray0('Di','Lu','Ma','Me','Ji','Ve','Sa'); } hideDropDowns = hideDrops; FuncsToRun = runFuncs; calfrmName = frmName; if (IsCalendarVisible) { hideCalendar(); } else { var index = getImgIndex(btnImg); var tok; if (index == -1) { tok = document.forms[frmName].elements[dteBox].value.split(dt_separator); } else { tok = document.forms[frmName].elements[dteBox][index].value.split(dt_separator); } if(tok.length==3) { todayDate.setDate(tok[0]-1); todayDate.setMonth(tok[1]-1); todayDate.setFullYear(tok[2]); } else { todayDate = new Date; } if (document.images['calbtn1']!=null ) document.images['calbtn1'].src=img_del.src; if (document.images['calbtn2']!=null ) document.images['calbtn2'].src=img_close.src; if (hideDropDowns) {toggleDropDowns('hidden');} if ((MnDt!=null) && (MnMo!=null) && (MnYr!=null) && (MxDt!=null) && (MxMo!=null) && (MxYr!=null)) { IsUsingMinMax = true; minDate.setDate(MnDt); minDate.setMonth(MnMo-1); minDate.setFullYear(MnYr); maxDate.setDate(MxDt); maxDate.setMonth(MxMo-1); maxDate.setFullYear(MxYr); } else { IsUsingMinMax = false; } curImg = btnImg; curDateBox = dteBox; var ind = getImgIndex(btnImg); if (ind == -1) curDateIndex = ""; else curDateIndex = "[" + ind + "]"; if ( ppcIE ) { ppcX = getOffsetLeft(btnImg); ppcY = getOffsetTop(btnImg) + btnImg.height; } else if (ppcNN){ ppcX = btnImg.x; ppcY = btnImg.y + btnImg.height; } if (ppcX < 180) domlay('popupcalendar',1,ppcX,ppcY+2,Calendar(todayDate.getMonth(),todayDate.getFullYear())); else domlay('popupcalendar',1,ppcX-180,ppcY+2,Calendar(todayDate.getMonth(),todayDate.getFullYear())); //domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear())); IsCalendarVisible = true; } } function toggleDropDowns(showHow){ var i; var j; for (i=0;i