<% /****************************************************************************\ ** ** ** This code has been generated with easyGen 2.2 ** ** External functions for ASP 3 ** ** http://www.easygen.com ** ** easyGen copyright (C) 2003 - 2004 Symbiant Software. ** ** Symbiant is a trade mark of Credit Card Merchant Services Ltd. ** ** ** ** ** ** THIS CODE IS PROVIDED BY THE COPYRIGHT HOLDERS AND ** ** CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, ** ** INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ** ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ** ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR ** ** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ** ** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ** ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ** ** HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ** ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ** ** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS CODE, ** ** EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ** ** ** \****************************************************************************/ // Check if a string is empty function isEmpty(str) { return (str == null || String(str) == "" || String(str) == "undefined") ? true : false; } // Exists in array function inArray(arr, x) { for (var i = 0; i < arr.length; i++) { if (arr[i] == x) return true; } return false; } Date.prototype.formatDate = function (input,time) { // formatDate : // a PHP date like function, for formatting date strings // See: http://www.php.net/date // // input : format string // time : epoch time (seconds, and optional) // // if time is not passed, formatting is based on // the current "this" date object's set time. // // supported: // a, A, B, d, D, F, g, G, h, H, i, j, l (lowercase L), L, // m, M, n, O, r, s, S, t, U, w, W, y, Y, z // // unsupported: // I (capital i), T, Z var switches = ["a", "A", "B", "d", "D", "F", "g", "G", "h", "H", "i", "j", "l", "L", "m", "M", "n", "O", "r", "s", "S", "t", "U", "w", "W", "y", "Y", "z"]; var daysLong = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; var daysShort = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; var monthsShort = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; var monthsLong = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var daysSuffix = ["st", "nd", "rd", "th", "th", "th", "th", // 1st - 7th "th", "th", "th", "th", "th", "th", "th", // 8th - 14th "th", "th", "th", "th", "th", "th", "st", // 15th - 21st "nd", "rd", "th", "th", "th", "th", "th", // 22nd - 28th "th", "th", "st"]; // 29th - 31st function a() { // Lowercase Ante meridiem and Post meridiem return self.getHours() > 11? "pm" : "am"; } function A() { // Uppercase Ante meridiem and Post meridiem return self.getHours() > 11? "PM" : "AM"; } function B(){ // Swatch internet time. code simply grabbed from ppk, // since I was feeling lazy: // http://www.xs4all.nl/~ppk/js/beat.html var off = (self.getTimezoneOffset() + 60)*60; var theSeconds = (self.getHours() * 3600) + (self.getMinutes() * 60) + self.getSeconds() + off; var beat = Math.floor(theSeconds/86.4); if (beat > 1000) beat -= 1000; if (beat < 0) beat += 1000; if ((""+beat).length == 1) beat = "00"+beat; if ((""+beat).length == 2) beat = "0"+beat; return beat; } function d() { // Day of the month, 2 digits with leading zeros return new String(self.getDate()).length == 1? "0"+self.getDate() : self.getDate(); } function D() { // A textual representation of a day, three letters return daysShort[self.getDay()]; } function F() { // A full textual representation of a month return monthsLong[self.getMonth()]; } function g() { // 12-hour format of an hour without leading zeros return self.getHours() > 12? self.getHours()-12 : self.getHours(); } function G() { // 24-hour format of an hour without leading zeros return self.getHours(); } function h() { // 12-hour format of an hour with leading zeros if (self.getHours() > 12) { var s = new String(self.getHours()-12); return s.length == 1? "0"+ (self.getHours()-12) : self.getHours()-12; } else { var s = new String(self.getHours()); return s.length == 1? "0"+self.getHours() : self.getHours(); } } function H() { // 24-hour format of an hour with leading zeros return new String(self.getHours()).length == 1? "0"+self.getHours() : self.getHours(); } function i() { // Minutes with leading zeros return new String(self.getMinutes()).length == 1? "0"+self.getMinutes() : self.getMinutes(); } function j() { // Day of the month without leading zeros return self.getDate(); } function l() { // A full textual representation of the day of the week return daysLong[self.getDay()]; } function L() { // leap year or not. 1 if leap year, 0 if not. // the logic should match iso's 8601 standard. var y_ = Y(); if ( (y_ % 4 == 0 && y_ % 100 != 0) || (y_ % 4 == 0 && y_ % 100 == 0 && y_ % 400 == 0) ) { return 1; } else { return 0; } } function m() { // Numeric representation of a month, with leading zeros return self.getMonth() < 9? "0"+(self.getMonth()+1) : self.getMonth()+1; } function M() { // A short textual representation of a month, three letters return monthsShort[self.getMonth()]; } function n() { // Numeric representation of a month, without leading zeros return self.getMonth()+1; } function O() { // Difference to Greenwich time (GMT) in hours var os = Math.abs(self.getTimezoneOffset()); var h = ""+Math.floor(os/60); var m = ""+(os%60); h.length == 1? h = "0"+h:1; m.length == 1? m = "0"+m:1; return self.getTimezoneOffset() < 0 ? "+"+h+m : "-"+h+m; } function r() { // RFC 822 formatted date var r; // result // Thu , 21 Dec 2000 r = D() + ", " + j() + " " + M() + " " + Y() + // 16 : 01 : 07 +0200 " " + H() + ":" + i() + ":" + s() + " " + O(); return r; } function S() { // English ordinal suffix for the day of the month, 2 characters return daysSuffix[self.getDate()-1]; } function s() { // Seconds, with leading zeros return new String(self.getSeconds()).length == 1? "0"+self.getSeconds() : self.getSeconds(); } function t() { // Number of days in the given month if (n()-1 == 1) return 28 + L(); // if february // thanks to Marek Lewczuk for finding a typo here. switch ((n()-1) % 2) { // otherwise case 0 : return 31; break; default : return 30; } } function U() { // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) return Math.round(self.getTime()/1000); } function W() { // Weeknumber, as per ISO specification: // http://www.cl.cam.ac.uk/~mgk25/iso-time.html // if the day is three days before newyears eve, // there's a chance it's "week 1" of next year. // here we check for that. var beforeNY = 364+L() - z(); var afterNY = z(); var weekday = w()!=0?w()-1:6; // makes sunday (0), into 6. if (beforeNY <= 2 && weekday <= 2-beforeNY) { return 1; } // similarly, if the day is within threedays of newyears // there's a chance it belongs in the old year. var ny = new Date("January 1 " + Y() + " 00:00:00"); var nyDay = ny.getDay()!=0?ny.getDay()-1:6; if ( (afterNY <= 2) && (nyDay >=4) && (afterNY >= (6-nyDay)) ) { // Since I'm not sure we can just always return 53, // i call the function here again, using the last day // of the previous year, as the date, and then just // return that week. var prevNY = new Date("December 31 " + (Y()-1) + " 00:00:00"); return prevNY.formatDate("W"); } // week 1, is the week that has the first thursday in it. // note that this value is not zero index. if (nyDay <= 3) { // first day of the year fell on a thursday, or earlier. return 1 + Math.floor( ( z() + nyDay ) / 7 ); } else { // first day of the year fell on a friday, or later. return 1 + Math.floor( ( z() - ( 7 - nyDay ) ) / 7 ); } } function w() { // Numeric representation of the day of the week return self.getDay(); } function Y() { // A full numeric representation of a year, 4 digits // we first check, if getFullYear is supported. if it // is, we just use that. ppks code is nice, but wont // work with dates outside 1900-2038, or something like that if (self.getFullYear) { var newDate = new Date("January 1 2001 00:00:00 +0000"); var x = newDate .getFullYear(); if (x == 2001) { // i trust the method now return self.getFullYear(); } } // else, do this: // codes thanks to ppk: // http://www.xs4all.nl/~ppk/js/introdate.html var x = self.getYear(); var y = x % 100; y += (y < 38) ? 2000 : 1900; return y; } function y() { // A two-digit representation of a year var y = Y()+""; return y.substring(y.length-2,y.length); } function z() { // The day of the year, zero indexed! 0 through 366 var t = new Date("January 1 " + Y() + " 00:00:00"); var diff = self.getTime() - t.getTime(); return Math.floor(diff/1000/60/60/24); } var self = this; if (time) { // save time var prevTime = self.getTime(); self.setTime(time); } var ia = input.split(""); var ij = 0; while (ia[ij]) { if (ia[ij] == "\\") { // this is our way of allowing users to escape stuff ia.splice(ij,1); } else { if (inArray(switches, ia[ij])) { ia[ij] = eval(ia[ij] + "()"); } } ij++; } // reset time, back to what it was if (prevTime) { self.setTime(prevTime); } return ia.join(""); } // Original JavaScript code by Duncan Crombie: dcrombie@chirp.com.au // Please acknowledge use of this code by including this header. // CONSTANTS //var separator = ","; // use comma as 000's separator //var decpoint = "."; // use period as decimal point var percent = "%"; var currency = "$"; // use dollar sign for currency function formatNumber(number, decimals, decpoint, separator) { var format = "#"; if(decimals > 0) format += "."; for(i = 0; i < decimals; i++) { format += "0"; } if (number - 0 != number) return null; // if number is NaN return null var useSeparator = format.indexOf(separator) != -1; // use separators in number var usePercent = format.indexOf(percent) != -1; // convert output to percentage var useCurrency = format.indexOf(currency) != -1; // use currency format var isNegative = (number < 0); number = Math.abs (number); if (usePercent) number *= 100; format = strip(format, separator + percent + currency); // remove key characters number = "" + number; // convert number input to string // split input value into LHS and RHS using decpoint as divider var dec = number.indexOf(decpoint) != -1; var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number; var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : ""; // split format string into LHS and RHS using decpoint as divider dec = format.indexOf(decpoint) != -1; var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format; var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : ""; // adjust decimal places by cropping or adding zeros to LHS of number if (srightEnd.length < nrightEnd.length) { var nextChar = nrightEnd.charAt(srightEnd.length) - 0; nrightEnd = nrightEnd.substring(0, srightEnd.length); if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1); // round up // patch provided by Patti Marcoux 1999/08/06 while (srightEnd.length > nrightEnd.length) { nrightEnd = "0" + nrightEnd; } if (srightEnd.length < nrightEnd.length) { nrightEnd = nrightEnd.substring(1); nleftEnd = (nleftEnd - 0) + 1; } } else { for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) { if (srightEnd.charAt(i) == "0") nrightEnd += "0"; // append zero to RHS of number else break; } } // adjust leading zeros sleftEnd = strip(sleftEnd, "#"); // remove hashes from LHS of format while (sleftEnd.length > nleftEnd.length) { nleftEnd = "0" + nleftEnd; // prepend zero to LHS of number } if (useSeparator) nleftEnd = separate(nleftEnd, separator); // add separator var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : ""); // combine parts output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : ""); if (isNegative) { // patch suggested by Tom Denn 25/4/2001 output = (useCurrency) ? "(" + output + ")" : "-" + output; } return output; } function strip(input, chars) { // strip all characters in 'chars' from input var output = ""; // initialise output string for (var i=0; i < input.length; i++) if (chars.indexOf(input.charAt(i)) == -1) output += input.charAt(i); return output; } function separate(input, separator) { // format input using 'separator' to mark 000's input = "" + input; var output = ""; // initialise output string for (var i=0; i < input.length; i++) { if (i != 0 && (input.length - i) % 3 == 0) output += separator; output += input.charAt(i); } return output; } %>