// mel.js version 1.40 from 09/10/2004 // ------------------------------------------------------------------ // convert string to trimed not-null string, ignoring spaces function StoS(str_in) { var str_out = ""; if ( (!str_in) || (str_in == null) || (trim(str_in) == "") ) { return str_out; } else { str_out = "" + trim(str_in); } return str_out; } // end StoS // ------------------------------------------------------------------------------ // convert string to integer, ignoring spaces & leading zeroes, & rounding up function StoI(str) { str = StoS(str); var i = 0; if ( (str == "-") || (str == "+") ) { return i; } var flag1 = 0; var flag2 = 0; var flag3 = 0; var bad = 0; if ( str != "" ) { // if zero FOR1: for (var k = 0; k < str.length; k++) { // FOR1 var sub = str.substring(k,k+1); if ( sub == "-" ) { flag1++ ; continue FOR1; } else { // if "-" if ( (sub == "+") || (isNumeric(sub)) || (sub == ".") ) { if ( sub == "+" ) { flag2++; } if ( sub == "." ) { flag3++; } continue FOR1; } else { bad = 1; break FOR1; } // end if "+" } // end if "-" } // end FOR1 if ( (bad == 0) && (flag1 < 2) && (flag2 < 2) && (flag3 <2) ) { // if bad i = 1 * str; } // end if bad } // end if zero return 1*i; } // end StoI() // ------------------------------------------------------------------------------- // convert number to string function ItoS(n_in) { var str_out = ""; if ( n_in == 0 ) { return "0"; } if ( (n_in == null) || (trim(n_in) == "") ) { return str_out; } else { str_out = "" + trim(n_in); } return str_out; } // end ItoS // ------------------------------------------------------------------------------ // convert number to number function ItoI(n_in) { if ( n_in == 0 ) { return "0"; } var n_out = 1 * 0; if ( (n_in == null) || (trim(n_in) == "") ) { return n_out; } else { n_out = 1 * StoI(ItoS(n_in)); } return n_out; } // end ItoI // ------------------------------------------------------------------------------ // check_date for valid date from format 2001-12-31 YYYY-MM-DD function isDate(str) { var b = false; str = StoS(str); if ( (str != "") && (str.length == 10) ) { // if zero var YYYY = str.substring(0,4); var MM = str.substring(5,7); var DD = str.substring(8,10); if ( (str.substring(4,5) != "-") || (str.substring(7,8) != "-") || (!isNum(YYYY)) || (!isNum(MM)) || (!isNum(DD)) ) { return b; } // if 1 else { // else 1 var y = StoI(YYYY); var m = StoI(MM); var d = StoI(DD); if ( (y > 2150) || (y < 1900) || (m > 12) || (m < 1) || (d > 31) || (d < 1) ) { return b; } // if 2 else { // else 2 if (((m == 4) || (m == 6) || (m == 9) || (m == 11)) && (d > 30)) { return b; // if 3 } else { if ( (m == 2) && (d > 29) ) { // if 29 return b; } else { if ( (m == 2) && (d > 28) && ( (y % 4) > 0) ) { return b; } } // end if 29 b = true; } // else if 3 } // end if 2 } // end if 1 } // end if zero return b; } // end isDate() //------------------------------------------------------------------------------- // check_dates validates if date range is valid for str-date in format // yyyy-mm-dd ; fromdate must be <= todate function check_dates(fromday, frommonth, fromyear, today, tomonth, toyear) { var b = false; if ( !isDate(StoS(fromyear)+"-"+StoS(frommonth)+"-"+StoS(fromday)) || !isDate(StoS(toyear)+"-"+StoS(tomonth)+"-"+StoS(today)) ) {return b;}// if 1 else { // else 1 var y1 = StoI(fromyear); var m1 = StoI(frommonth); var d1 = StoI(fromday); var y2 = StoI(toyear); var m2 = StoI(tomonth); var d2 = StoI(today); if ( (y1 > y2) || ((y1 == y2) && (m1 > m2)) || ((y1 == y2) && (m1 == m2) && (d1 > d2)) ) { return b; } b = true; } // end if 1 return b; } // end check_dates() //---------------------------------------------------------------------------- // check_dates validates if date range is valid for str-date in format yyyy-mm-dd // -10 (if wrong arg) -1 (if fromdate < todate) 0 (if equal) 1 (fromdate > todate) function check_dates_eq(fromday, frommonth, fromyear, today, tomonth, toyear) { var b = -10; if ( isDate(StoS(fromyear)+"-"+StoS(frommonth)+"-"+StoS(fromday)) && isDate(StoS(toyear)+"-"+StoS(tomonth)+"-"+StoS(today)) ) { // if OK b = -1; var y1 = StoI(fromyear); var m1 = StoI(frommonth); var d1 = StoI(fromday); var y2 = StoI(toyear); var m2 = StoI(tomonth); var d2 = StoI(today); if ( y1 >= y2 ) { // if y1>= if ( y1 == y2 ) { // if y1= if ( m1 >= m2 ) { // if m1>= if ( m1 == m2 ) { // if m1= if ( d1 >= d2 ) { // if d1>= if ( d1 == d2 ) { // if d1= b = 0; } else { b = 1; } // end if d1= } // end if d1>= } else { b = 1; } // end if m1= } // end if m1>= } else { b = 1; } // end if y1= } // end if y1>= } // end if OK return b; } // end check_dates_eq() //---------------------------------------------------------------------------- // to determine if arg = Numeric function isNum(numVal) { numVal = StoS(numVal); var b = false; if ( numVal != "" ) { // if "" for ( i = 0; i < numVal.length; i++ ) { if (numVal.charAt(i) < "0" || numVal.charAt(i) > "9") { return b; } } // end for; b = true; } // end if "" return b; } // end isNum() // ------------------------------------------------------------------ // to determine if arg = Numeric or supplied add function isNum(numVal, add) { numVal = StoS(numVal); add = StoS(add); var b = false; var temp = ""; if ( numVal != "" ) { // if "" for ( i = 0; i < numVal.length; i++ ) { temp = numVal.charAt(i); if ( temp < "0" || temp > "9") { if ( temp != add ) { return b; } } } // end for; b = true; } // end if "" return b; } // end isNum() // ------------------------------------------------------------------ function isLetter(str) { var b = false; if ( (str != null) || ( !(trim(str) == "")) ) { // not zero or empty str str = trim(str).toUpperCase(); if ( str == "A" || str == "B" || str == "C" || str == "D" || str == "E" || str == "F" || str == "G" || str == "H" || str == "I" || str == "J" || str == "K" || str == "L" || str == "M" || str == "N" || str == "O" || str == "P" || str == "Q" || str == "R" || str == "S" || str == "T" || str == "U" || str == "V" || str == "W" || str == "X" || str == "Y" || str == "Z" ) { b = true; } } return b; } // end isLetter() // ------------------------------------------------------------------- // is letter case sensetive function isLetter_case(str) { var b = false; str = StoS(str); if ( (str != null) || ( !(trim(str) == "")) ) { // not zero or empty str if ( str == "A" || str == "B" || str == "C" || str == "D" || str == "E" || str == "F" || str == "G" || str == "H" || str == "I" || str == "J" || str == "K" || str == "L" || str == "M" || str == "N" || str == "O" || str == "P" || str == "Q" || str == "R" || str == "S" || str == "T" || str == "U" || str == "V" || str == "W" || str == "X" || str == "Y" || str == "Z" ) { b = true; } } return b; } // end isLetter_case() // ------------------------------------------------------------------- function ltrim(str_in) { str_in = "" + str_in; var str_out = ""; var e = " "; if ( !((str_in == null) || (str_in == e) || (str_in == "")) ) { // if nul str_out = str_in; var len = str_out.length; var wlen = len; FOR1: for (var i=0; i< len; i++) { if (str_out.indexOf(e,0) == 0) { // if ==0 if (wlen > 1) { str_out = str_out.substr(1,wlen); } else { break; } } else { break; } // end if ==0 wlen = str_out.length; } // end FOR1 } // end if nul return str_out; } // end ltrim() // ----------------------------- function rtrim(str_in) { str_in = "" + str_in; var str_out = ""; var e = " "; if ( !((str_in == null) || (str_in == e) || (str_in== "")) ) { // if nul str_out = str_in; var len = str_out.length; var wlen = len; FOR1: for (var i=0; i< len; i++) { if (wlen > 1) { // if wlen>1 if (str_out.indexOf(e,wlen-1) == wlen-1) { str_out = str_out.substr(0,wlen-1) } else { break; } } else { // else wlen>1 if ( str_out == e ) { str_out = "";} break; } // end if wlen>1 wlen = str_out.length; } // end FOR1 } // end if nul return str_out; } // end ltrim() // ----------------------------- function trim(str_in) { var str_out = rtrim(ltrim(str_in)); return str_out; } // end trim() // ------------------------------ function isNumeric(str) { var b = false; if ( (str != null) || ( !(trim(str) == "")) ) { // not zero or empty str str = trim(str); if ( str == "0" || str == "1" || str == "2" || str == "3" || str == "4" || str == "5" || str == "6" || str == "7" || str == "8" || str == "9" ) { b = true; } } return b; } // end isNumeric() // ------------------------------------------------------------------- function isDecNumber(str_in) { var str_out = ""; var dots = 0; var first = 0; var decs = 0; var len = 0; if ( (str_in == null) || (trim(str_in) == "") ) { // zero str_in str_out = ""; return false; } else { // else zero str_out = trim(str_in); var sub = null; len = str_out.length; var wlen = len; FOR1: for ( var i=0; i 1) { // if wlen>1 sub = str_out.substring(0,1); if (isNumeric(sub)) { // if isNum if (dots == 1) { decs++; } else { first++; } } else { // else isNum if ( sub == "." ) { // if . dots++; if (dots > 1) { return false; } } else { return false; } // end if . } // end if-else isNum str_out = str_out.substr(1,wlen-1); } else { // else wlen >1 sub = str_out; if (isNumeric(sub)) { // if isNum2 if (dots == 1) { decs++; } else { first++; } } else { // else isNum2 if ( sub == "." ) { // if . dots++; if (dots > 1) { return false; } } else { return false; } // end if . } // end if-else isNum2 str_out = ""; } // end wlen>1 wlen = str_out.length; } // end FOR1: } // end if-else zero if ( (dots > 1) || ((dots == 1) && (first == 0) && (decs == 0)) ) { return false; } return true; } // end IsDecNumber() // ---------------------------------------------------------------------- // to check if number supplied is valid decimal number // if qty_after_dot = 2: 1 1. 1.0 1.02 are valid 1.023 - invalid number function isDecNumber(str_in, qty_after_dot) { str_in = StoS(str_in); var str_out = str_in; var dots = 0; var first = 0; var decs = 0; var len = 0; if ( (str_in == null) || ( str_in == "" ) ) { // zero str_in return false; } else { // else zero var sub = null; len = str_out.length; var wlen = len; var dot_position = str_in.indexOf("."); // position of 1st dot FOR1: for ( var i=0; i < len; i++ ) { // FOR1 if (wlen > 1) { // if wlen>1 sub = str_out.substring(0,1); if (isNumeric(sub)) { // if isNum if (dots == 1) { decs++; } else { first++; } } else { // else isNum if ( sub == "." ) { // if . dots++; if (dots > 1) { return false; } } else { return false; } // end if . } // end if-else isNum str_out = str_out.substr(1,wlen-1); } else { // else wlen >1 sub = str_out; if (isNumeric(sub)) { // if isNum2 if (dots == 1) { decs++; } else { first++; } } else { // else isNum2 if ( sub == "." ) { // if . dots++; if (dots > 1) { return false; } } else { return false; } // end if . } // end if-else isNum2 str_out = ""; } // end wlen>1 wlen = str_out.length; } // end FOR1: } // end if-else zero if ( (dots > 1) || ((dots == 1) && (first == 0) && (decs == 0)) ) { return false; } if ( (dots == 1) && (dot_position >= 0) ) { // if =1 var how_far = (len - 1) - dot_position; // how far is dot from left side if ( how_far > qty_after_dot ) { return false; } } // end if =1 return true; } // end IsDecNumber(str, qty) // ---------------------------------------------------------------------- function isNumDot(numVal) { for (i = 0; i < numVal.length; i++) { if ( !isNumericDot(numVal.charAt(i)) ) { return false; } } return true; } // to determine if arg = Numeric // ------------------------------------------------------------------ // simple e-mail validation: to find @ within function check_email(email) { var valid = 0; var reg = new RegExp("@"); if ( email != null && email.search(reg) > 0 ) { valid = 1; } return valid; } // ------------------------------------------------------------------ function IsEmailValid(email){ var emailOk = true; var temp = email; var atSym = temp.value.indexOf('@'); var dot1 = temp.value.indexOf('.'); var dot2 = temp.value.lastIndexOf('.'); var space = temp.value.indexOf(' '); var length = temp.value.length - 1; // Array is from 0 to length-1 if ((atSym < 1) || // '@' cannot be in first position (dot2 <= atSym+1) || // Must be at least one valid char btwn '@' and '.' (dot2 == length) || // Must be at least one valid char after '.' (space != -1) || // No empty spaces permitted (dot1 < 1) || // no . or leading . (length < 5) ) // min e-mail length { emailOk = false; } return emailOk; } // end of IsEmailValid() // ------------------------------------------------------------------ function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i= 14) && (len <= 16) && isNum(ref) ) { // if OK var cctype = cardType(ref); if ( ( ((cctype == "Visa") || (cctype == "MasterCard") || (cctype == "Bankcard")) && (len != 16) ) || ( (cctype == "Amex") && (len != 15) ) || ( (cctype == "DinersClub") && (len != 14) ) ) { return b; } if ( ref.substring(0,10) == "0123456789") { return true; } for ( var i = 1; i < len; i++ ) { // for i = counter currDigit = ref.charAt(len - 1 - i); // alert("in cycle i= " + i + " char at " + (len-1-i) + " currDigit=" + currDigit); if ( (i % 2) != 0 ) { // if rightmost or next odd weight = 2; } else { weight = 1; } // end if rightmost product = weight * currDigit; // alert("weight=" + weight + "\nproduct=" + product); if ( 1 * product > 9 ) { // for 2-digits product sum = 1 * sum + 1 * 1 + (product % 10); // alert(" product=" + product + " > 9\nproduct % 10 =" + (product % 10) + "\nsum=" + sum); } else { sum = 1 * sum + 1 * product; // alert(" product=" + product + " < 9\nsum=" + sum); } // end if 2-digits product } // end for i // alert("final sum=" + sum); var remainder = sum % 10; var finalCheck = 0; if ( remainder == 0 ) { finalCheck = 0; } else { finalCheck = 10 - remainder; } // alert("remainder=" + remainder + "\nfinalCheck=" + finalCheck); if ( 1 * StoI(finalCheck) == 1 * StoI(checkDigit) ) { b = true; } } // end if OK return b; } // end isCreditCard() //------------------------------------------------------------------- // return true for valid Credit card # VI & MC - ok, check on DI, AX, BA, rent c function isCreditCard_old(str) { var b = false; str = trim(str); var len = str.length; if ( (str == null) || (str == ("")) || (len < 11) || (len > 17) || !isNum(str)) { return b; } else { // else "" if ( str.substring(0,10) == "0123456789") { return true; } a = new Array; c = new Array; a1 = new Array; c1 = new Array; a2 = new Array; var k = 0; for (var i=len-2; i >= 0 ; i--) { a[k] = str.charAt(i); a1[k] = 2 * a[k]; a2[k] = a1[k] + ""; i--; k++; } a1[k] = 0; a2[k] = "0"; k = 0; for (var i=len-3; i >= 0 ; i--) { c[k] = str.charAt(i); c1[k] = 1*c[k]; i--; k++; } // end for c1[k] = 0; var sum = 0; for (var i=0; i < len/2 ; i++) { if ( a2[i].length == 2 ) { var f1 = a2[i].substr(0,1); var f2 = a2[i].substr(1); a1[i] = 1*f1 + 1*f2; } sum = 0 + sum + a1[i] + c1[i]; } // end for var sumS = "" + sum; var ss2 = "" + sumS.substr(0,1); var ss3 = 0; if (sumS.substring(1) == "0") { ss3 = 1*ss2; } else { ss3 = 1*ss2 + 1; } var first = 10 * ss3; var last_char = str.substr(len-1); if ( (first - sum ) == (1*last_char) ) { b = true; } } // end if "" return b; } // end isCreditCard_old() //------------------------------------------------------------------- // return selected value for element selectObject (