function trimstring(s){
   var i=0;
   while ((i<s.length) && (s.charAt(i)==' ')){
     i++;
     }
   if (i>0) {s=s.substring(i);}
   i = s.length;
   while ((s.charAt(i-1)==' ') && (i>=0)){
     i--;
     }
   if (i<s.length) { s=s.substring(0,i);}
   return s;
   }

// Standard Netscape function
function isEmail(s){
    var i = 1;
    var sLength = s.length;
    while ((i < sLength) && (s.charAt(i) != "@")){
      i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;
    while ((i < sLength) && (s.charAt(i) != ".")){
      i++
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function IsNumeric(sText){
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
         }
      }
   return IsNumber;
}


function isValid(parm,val) {
  if (parm == "") return true;
  for (i=0; i<parm.length; i++) {
    if (val.indexOf(parm.charAt(i),0) == -1) return false;
  }
  return true;
}
 
function isNum(parm) {return isValid(parm,numb);}
function isLower(parm) {return isValid(parm,lwr);}
function isUpper(parm) {return isValid(parm,upr);}
function isAlpha(parm) {return isValid(parm,lwr+upr);}
function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);} 

function validate_apt_update_form(lForm){ 
	var aptid = lForm.aptid.value;
	var aptid_re = new RegExp("^\\d+$"); // aptid must be numeric
	var aptid_us = aptid_re.test(aptid);

	if(aptid_us == false){
		alert("Please select a property");
		return false;
	}
	return true;
}

function validate_apt_add_form(lForm){
	return true;
}

function validate_account_request(lForm){ 
	var company = lForm.company.value;
	var property_name = lForm.property_name.value;
	var first = lForm.firstname.value;
	var last = lForm.lastname.value;
	var email = lForm.email.value;
	var phone = lForm.phone.value;
	if(company == ''){
		alert("Please enter a Company name.");
		return false;
	}else if(property_name == ''){
		alert("Please enter a Property name.");
		return false;
	}else if(first == ''){
		alert("Please enter your First Name.");
		return false;
	}else if(last == ''){
		alert("Please enter your Last Name.");
		return false;
	}else if(email == ''){
		alert("Please enter your Email address.");
		return false;
	}else if(phone == ''){
		alert("Please enter your phone number.");
		return false;
	}
	return true;
}

function validate_manager_create(f){
   var msg="";
   var i = 0;
   f.username.value = trimstring(f.username.value);
   if(f.username.value.length==0){
      msg += "   - please enter a username.\n";
      i++;
   }
   f.password.value = trimstring(f.password.value);
   if (f.password.value.length==0){
      msg += "   - password is required.\n";
      i++; 
   }
   f.password_verify.value = trimstring(f.password_verify.value);
   if (f.password_verify.value.length==0){
      msg += "   - password verify is required.\n";
      i++; 
   }
  if (!((f.password.value.length==0) && (f.password_verify.value.length==0))){
      if (f.password.value != f.password_verify.value){
         msg += "   - the passwords did not match.\n";
         i++;
         }
   }
   f.email.value = trimstring(f.email.value);
   if (f.email.value.length==0){
      msg += "   - email address is missing.\n";
      i++;
      }else {
      if (!isEmail(f.email.value)){
         msg += "   - email address does not appear to be valid.\n";
         i++; 
         }
   }
   f.firstname.value = trimstring(f.firstname.value);
   f.lastname.value = trimstring(f.lastname.value);
   if ((f.firstname.value.length==0) || (f.lastname.value.length==0)){
      msg += "   - your first and last names are required.\n";
      i++; 
      }
   f.company.value = trimstring(f.company.value);
   if (f.company.value.length==0){
      msg += "   - you must enter a company name.\n";
      i++; 
      }
   f.property_name.value = trimstring(f.property_name.value);
   if (f.property_name.value.length==0){
      msg += "   - you must enter a property name.\n";
      i++; 
      }
   f.phone.value = trimstring(f.phone.value);
   if ((f.phone.value.length==0) || (f.phone.value.length==0)){
      msg += "   - phone number is required.\n";
      i++; 
      }
   if (i>0){
      alert("There are problems with some of the form values:\n\n"+msg);
      return false;
   }else{
      return true;
   }
}
var validateId = new Array('apt_name','apt_street_number','apt_street_name','apt_city','apt_state','apt_phone');
var validateMsg = new Array('Property Name','Street Number','Street Name','City','State','Phone');
function validate_apt_update(){
  for(var i=0; i<validateId.length; i++){
    if(document.getElementById(validateId[i]).value == ''){
      pmToggleSec('general','none');
      alert('Please enter the '+validateMsg[i]);
      return false;
    }
  }
  return true;
}

function reload_apt_update(){
  var aptid = document.getElementById('aptUpdateSelect').value;
  if( (aptid == null) || (aptid == '') ){
    alert('Please select a Property to Edit');
    return false;
  }
  var url = 'http://my.apartmentsearch.com/db/app.pl?db=myss2&action=manage&mode=app&manage=update&aptid=' + aptid;
  window.location = url;
}

function pmToggleSec(theId,defaultDisplay){
  var theDiv = document.getElementById(theId + '-div');
  var theImg = document.getElementById(theId + '-img');
  if(defaultDisplay == null){
    defaultDisplay = theDiv.style.display;
  }
  if(defaultDisplay == 'block'){
    theDiv.style.display = 'none';
    theImg.src = "/images/collapsed_button.gif";
  }else{
    theDiv.style.display = 'block';
    theImg.src = "/images/expanded_button.gif";
  }
}

function deleteCheck(uIndex){
  var uDelete = document.getElementById('U-' + String(uIndex) + '-delete_existing_unit');
  var uModify = document.getElementById('U-' + String(uIndex) + '-modify_existing_unit');
  if(uDelete.checked){
    disableUnit(uIndex,true);
    uModify.disabled = true;
  }else{
    uModify.disabled = false;
    if(uModify.checked){
      disableUnit(uIndex,false);
    }
  }
}

function modifyCheck(uIndex){
  var uDelete = document.getElementById('U-' + String(uIndex) + '-delete_existing_unit');
  var uModify = document.getElementById('U-' + String(uIndex) + '-modify_existing_unit');
  if(uModify.checked && !uDelete.checked){
    disableUnit(uIndex,false);
  }else{
    disableUnit(uIndex,true);
  }
}

function createCheck(uIndex){
  var uCreate = document.getElementById('U-' + String(uIndex) + '-add_new_unit');
  if(uCreate.checked){
    disableUnit(uIndex,false);
  }else{
    disableUnit(uIndex,true);
  }
}

function disableUnit(uIndex, trueFalse){
  var myNode = document.getElementById('unitFieldGroup-' + uIndex);
  var uInput = myNode.getElementsByTagName("input"); 
  for(var i=0; i<uInput.length; i++){
    var cInput = uInput[i];
    if( (!cInput.name.match('-modify_existing_unit')) && (!cInput.name.match('-add_new_unit')) && (!cInput.name.match('-delete_existing_unit')) && (!cInput.name.match('unitid')) ){
        cInput.disabled = trueFalse;
    }
  }
  var select = myNode.getElementsByTagName("select"); 
  for(var i=0; i<select.length; i++){
      select[i].disabled = trueFalse;
  }
}


// MANAGER
var gErrInput;
function clearRegError(){
  document.getElementById('register-error').innerHTML = '';
  if(gErrInput != undefined){
    gErrInput.style.border = 'solid 1px #aacfe4';
  }
}
function showRegError(msg,curInput){
  clearRegError();
  var errBox = document.getElementById('register-error');
  errBox.style.display = 'block';
  errBox.innerHTML = msg;
  if(curInput != undefined){
    gErrInput = curInput;
    gErrInput.style.border = '2px solid red';
    gErrInput.focus();
  }
}
String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g, "");
};
function validateValue(value){
  value = value.trim();
  if( (value == undefined) || (value == '') ){
    return false;
  }else{
    return true;
  }
}
function requestManagerSubmit(form){
  var first = form.firstname;
  var last = form.lastname;
  var phone = form.phone;
  var company = form.company;
  var property_name = form.property_name;
  if(validateValue(first.value)){
    if(validateValue(last.value)){
      if(validateValue(phone.value)){
        if(validateValue(company.value)){
          if(validateValue(property_name.value)){
            form.submit();
          }else{
            showRegError('Please enter a value for the Property Name',property_name);
          }
        }else{
          showRegError('Please enter a value for the Company',company);
        }
      }else{
        showRegError('Please enter a value for the Phone',phone);
      }
    }else{
      showRegError('Please enter a value for the Last Name',last);
    }
  }else{
      showRegError('Please enter a value for the First Name',first);
  }
  return false;
}

