function getLegalFolderName(folderName)
{
  var i, c, legalChars, result;

  legalChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.'()";
  result = "";
  for (i=0; i<folderName.length; i++)
  {
    c = folderName.charAt(i);
    if (legalChars.indexOf(c) != -1)
      result += c;
    else
      result += "_";
  }
  return result;
}

function isDocId(docId)
{
  return docId.search(/^(0|[1-9]\d{0,8}|(CwMsds(AusEn|ChnZh|EuroDe|EuroEn|EuroEs|EuroFr|JpnJa|NzlEn|UsaEn|UsaEs)(\d{4,8}|\d{4,6}-\d|\d{4,5}-\d\d)))$/) != -1;
}

function isManufId(manufId)
{
  return manufId.search(/^([0-9A-Z\-]{1,10})$/) != -1;
}

function isProdId(prodId)
{
  return prodId.search(/^((\d{4,8})|(\d{4,6}-\d)|(\d{4,5}-\d\d))$/) != -1;
}

function isProdIdAndManufId(prodIdAndManufId)
{
  return prodIdAndManufId.search(/^(((\d{4,8})|(\d{4,6}-\d)|(\d{4,5}-\d\d))_[0-9A-Z\-]{1,10})$/) != -1;
}

function isUserId(userId)
{
  return userId.search(/^([a-zA-Z\d_\.]{1,20})$/) != -1;
}

function isUserPassWord(passWord)
{
  return passWord.search(/^([a-zA-Z\d_\.]{1,20})$/) != -1;
}

function isUserExpiryDate(expiryDate)
{
  var yearStr, monthStr, dayStr;

  if (expiryDate.search(/^(\d{8})$/) == -1)
    return false;

  yearStr = expiryDate.substring(0, 4);
  monthStr = expiryDate.substring(4, 6);
  dayStr = expiryDate.substring(6, 8);
  if (parseInt(yearStr,10)<1970 || parseInt(yearStr,10)>2070 || parseInt(monthStr,10)<1 || parseInt(monthStr,10)>12 || parseInt(dayStr,10)<1 || parseInt(dayStr,10)>31)
    return false;

  return true;
}

function isUserComment(comment)
{
  return comment.length <= 100;
}

//
// window functions
//

function closeWindow(wndw)
{
  try
  {
    wndw.close();
  }
  catch (ex) { }
}

var requestMsdsPopup = null;
function openRequestMsdsPopup()
{
  closeWindow(requestMsdsPopup);
  requestMsdsPopup = window.open('controller?action=DocSubmitAction', '', 'menubar=yes,resizable=yes,scrollbars=yes,toolbar=yes,width=800,height=500');
}
