function swapArrowDetached(prefix,imagePrefix,imageType) { //initialize variables var layer = document.getElementById(prefix + "Layer"); var arrow = document.getElementById(prefix + "Arrow"); //default arguments if not specified if(typeof(imagePrefix) == "undefined") { imagePrefix = "arrow_white"; } if(typeof(imageType) == "undefined") { imageType = "gif"; } if(layer.style.display == 'none') { arrow.src = "/images/" + imagePrefix + "_down." + imageType; } else { arrow.src = "/images/" + imagePrefix + "_right." + imageType; } showItem(layer); } function NumberFormat(number, mask) { var result = number; var zeros = mask.length; var n = number.toString(); var m = mask.toString(); if (n.length > zeros) { // remove leading zeros while (n.length > zeros && n.substring(0,1) == "0") { n = n.substring(1,n.length); } result = n; } else if (n.length < zeros) { // add leading zeros while (n.length < zeros) { n = "0" + n; } result = n; } return result; } function isLeapYear(year) { return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)); } function DateDiff(datepart, date1, date2) { var result = 0; var dateArray1 = BreakDate(date1); var dateArray2 = BreakDate(date2); var compare1 = new Date(dateArray1[0],(dateArray1[1]-1),dateArray1[2]); var compare2 = new Date(dateArray2[0],(dateArray2[1]-1),dateArray2[2]); var diffArray = GetDiffs(date1,date2); switch (datepart.toLowerCase().substr(0,1)) { case 'y': if (diffArray[0] != 0) { if (diffArray[1] < 0) { result = parseInt(((dateArray2[2] > dateArray1[2]) ? diffArray[1] + 1 : diffArray[1]) / 12); } else if (diffArray[1] > 0) { result = parseInt(((dateArray2[2] < dateArray1[2]) ? diffArray[1] - 1 : diffArray[1]) / 12); } else { result = diffArray[0]; } } else { result = diffArray[0]; } break; case 'm': if (diffArray[1] < 0) { result = (dateArray2[2] > dateArray1[2]) ? diffArray[1] + 1 : diffArray[1]; } else if (diffArray[1] > 0) { result = (dateArray2[2] < dateArray1[2]) ? diffArray[1] - 1 : diffArray[1]; } else { result = diffArray[1]; } break; case 'd': result = Math.round((Date.parse(compare2) - Date.parse(compare1)) / (24 * 60 * 60 * 1000)); break; } return result; } function GetDiffs(date1, date2) { // DateDiff helper function var dateArray1 = BreakDate(date1); var dateArray2 = BreakDate(date2); var results = new Array(3); results[0] = dateArray2[0] - dateArray1[0]; results[1] = dateArray2[1] - dateArray1[1] + (results[0] != 0 ? results[0] * 12 : 0); results[2] = dateArray2[2] - dateArray1[2]; return results; } function BreakDate(string) { var dateArray = new Array(3); var regex = new RegExp("[^0-9 ]","g"); var result = string.replace(regex, " "); var y = ""; var m = ""; var d = ""; var dim = 0; // for IsDate, don't want to check last day of the month if (arguments.length >= 2) { dim = arguments[1]; } if (result.indexOf(" ") > 0) { y = parseInt(result.split(" ")[0]); m = parseInt(NumberFormat(result.split(" ")[1],"0")); d = parseInt(NumberFormat(result.split(" ")[2],"0")); if (dim == 0) { dim = DaysInMonth(y + "-" + m + "-" + d,m,y); d = (d > dim) ? dim : d; } } else if (result.length == 8) { y = parseInt(result.substring(0,4)); m = parseInt(NumberFormat(result.substring(4,6),"0")); d = parseInt(NumberFormat(result.substring(6,8),"0")); if (dim == 0) { dim = DaysInMonth(y + "-" + m + "-" + d,m,y); d = (d > dim) ? dim : d; } } dateArray[0] = y; dateArray[1] = m; dateArray[2] = d; return dateArray; } function DaysInMonth(date) { if (arguments.length >= 2) { var month = arguments[1]; } else { var month = DatePart("M",date); } if (arguments.length >= 3) { var year = arguments[2]; } else { var year = DatePart("YYYY",date); } var result = 30; switch (month.toString()) { case '2': IsLeapYear(year) ? result = 29 : result = 28; break; case '1': case '3': case '5': case '7': case '8': case '10': case '12': result = 31; break; } return result; }