function submitValidForm(form, fldList, movieExtList, imageExtList)
{
  if (validateForm(form, fldList, movieExtList, imageExtList)) form.submit();
}


function validateForm(form, fldList, movieExtList, imageExtList)
{
  for(key in fldList)
  {
    var thisField = form.elements[key];
    if(typeof(thisField) != 'undefined')
    {
      if(thisField.type == "select-one")
	  var fieldValue = thisField.options[thisField.selectedIndex].value;
      else if(thisField.type == "file")
      {
      	var fieldValue = thisField.value;
      	var fileExtList = key == "movie" ? movieExtList : imageExtList  
      	if (fieldValue != "")
      	{
      	  var boolFnd = false;
      	  for(key2 in fileExtList)
      	  {
      	    var fileExt = getFileExtension(getFileNameFromPath(fieldValue))	
      	    boolFnd = boolFnd || (fileExt.toUpperCase() == fileExtList[key2].toUpperCase())
      	  }
      	  if (!boolFnd)
      	  {
      	    alert(fileExt.toUpperCase() + " extension is not allowed for " + key + " files");
            thisField.focus();
            return false;
      	  }	
        }
      }
      else 
	  var fieldValue = thisField.value;
      
      if((thisField.type != "file") && (fieldValue == ""))
      {
        alert("Please enter a value for the " + fldList[key] + " field.");
        thisField.focus();
        return false;
      }
      else 
      if (key.toUpperCase().indexOf("EMAIL") > -1)
      { 
        if (!validateEmail(fieldValue))
        {
	  alert("Please enter a valid email address.");
	  thisField.value = "";
	  thisField.focus();
	  return false;				     
        }				
      }			
    }
  }
  return true;
}



function validateEmail(strEmail)
{
  var RegexEmail=/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
  return RegexEmail.test(strEmail);
} 



///////////////////////////////
//                           //
// GENERAL UTILITY FUNCTIONS //
//                           //
///////////////////////////////

function getFileNameFromPath(path)
{
  indx = path.lastIndexOf("/");
  if (indx == -1)
    indx = path.lastIndexOf("\\");
  fileName = path.substr(indx + 1);
  return fileName;
}


function getFileExtension(fileName)
{
  indx = fileName.lastIndexOf(".");
  fileExt = fileName.substr(indx + 1);
  return fileExt;
}


function submitOnConfirm(form, msg)
{
  if (confirm(msg)) form.submit();
}


function getSelectVal(sel)
{
  return sel.options[sel.selectedIndex].value;
}
