var popUpWin=0;
var popUpWinPrice=0;
/**
* DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
*/
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
  var i;
  for (i = 0; i < s.length; i++){   
  // Check that current character is number.
    var c = s.charAt(i);
    if (((c < "0") || (c > "9"))) return false;
  }
  // All characters are numbers.
  return true;
}

function stripCharsInBag(s, bag){
  var i;
  var returnString = "";
  // Search through string's characters one by one.
  // If character is not in bag, append to returnString.
  for (i = 0; i < s.length; i++){   
    var c = s.charAt(i);
    if (bag.indexOf(c) == -1) returnString += c;
  }
  return returnString;
}

function daysInFebruary (year){
  // February has 29 days in any year evenly divisible by four,
  // EXCEPT for centurial years which are not also divisible by 400.
  return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysArray(n) {
  for (var i = 1; i <= n; i++) {
    this[i] = 31
    if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
    if (i==2) {this[i] = 29}
  } 
  return this;
}

function isDate(dtStr){
  var daysInMonth = DaysArray(12);
  var pos1=dtStr.indexOf(dtCh);
  var pos2=dtStr.indexOf(dtCh,pos1+1);
  var strMonth=dtStr.substring(0,pos1);
  var strDay=dtStr.substring(pos1+1,pos2);
  var strYear=dtStr.substring(pos2+1);
  strYr=strYear;
  if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
  if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
  for (var i = 1; i <= 3; i++) {
    if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
  }
  month=parseInt(strMonth);
  day=parseInt(strDay);
  year=parseInt(strYr);
  if (pos1==-1 || pos2==-1){
    alert("The date format should be : mm/dd/yyyy");
    return false;
  }

  if (strMonth.length<1 || month<1 || month>12){
    alert("Please enter a valid month");
    return false;
  }

  if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
    alert("Please enter a valid day");
    return false;
  }

  if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
    alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
    return false;
  }
  
  if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
    alert("Please enter a valid date");
    return false;
  }
  return true;
}

function popUpWindow(URLStr, left, top, width, height){
  if (popUpWin) {
    if(!popUpWin.closed) popUpWin.close();
  }
  popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
}

function popUpWindowPrice(URLStr, left, top, width, height){
  if (popUpWinPrice) {
    if(!popUpWinPrice.closed) popUpWinPrice.close();
  }
  popUpWinPrice = open(URLStr, 'popUpWinPrice', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
}

function over_change(src, clrOver){
  src.style.cursor = 'default';
  src.bgColor = clrOver;
}

function out_change(src, clrIn){
  src.style.cursor = 'default';
  src.bgColor = clrIn;
}

function trim(str) {
  return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

function isEmpty(sValue){
  var result;
  if (sValue.length == 0 || sValue == null || sValue.value == "") {
    result = true;
  }
  else {
    result = false;
  }
  return result;
}

function isNotEmpty(sValue){
  var result;
  if (sValue.length == 0 || sValue == null || sValue.value == "") {
    result = false;
  }
  else {
    result = true;
  }
  return result;
}

function isNumeric2(sValue){
  var validChars = "0123456789.";
  var isNumber=true;
  var charArr;
  var decimalCount=0;

  for (i = 0; i < sValue.length && isNumber == true; i++) {
    charArr = sText.charAt(i); 
    if (validChars.indexOf(charArr) == -1) {
      isNumber = false;
    }
  
    if (validChars.indexOf(charArr) == 10) {
      decimalCount++;
      if (decimalCount > 1) {
        isNumber = false;
      }
    } 
  }
return isNumber;
}

function isNumeric(strString){
//  check for valid numeric strings	

  var strValidChars = "0123456789.-";
  var strChar;
  var blnResult = true;

  if (strString.length == 0) return false;
  if (multiOccur(strString, ".") > 0) return false;

  //  test strString consists of valid characters listed above
  for (i = 0; i < strString.length && blnResult == true; i++){
    strChar = strString.charAt(i);
    if (strValidChars.indexOf(strChar) == -1){
      blnResult = false;
    }
  }
  return blnResult;
}

function multiOccur(strValue, charOccur){
  var firstOccur=strValue.indexOf(charOccur);
  if (firstOccur == -1) return -1;

  var strSubstring = strValue.substr(firstOccur+1, strValue.length);
  var secondOccur = strSubstring.indexOf(charOccur);
  return secondOccur;
}

function isEmailAddr(inputvalue){
    //var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
    var pattern=/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+$/;
    if (pattern.test(inputvalue)){ return true; }
    else{ return false; }
}

/*
function isEmailAddr(sValue){
  var atPos=sValue.indexOf("@");
  var dotPos=sValue.lastIndexOf(".");
  var strSubstring;

  if (atPos < 1 || dotPos-atPos<2) return false;
  else {
    strSubstring = sValue.substr(atPos+1, sValue.length);
    atPos = strSubstring.indexOf("@");

    if (atPos == -1) return true;
    else return false;
  }
}
*/
