﻿/* search_Validation.js
    CH2M HILL 2008
    Functions to validate the values entered by user in order to perform detailed search (used for both listings FOR LEASE and FOR SALE)
*/

function validateSearchValues(theForm) {
    var saletype="";
    for (i=0;i<document.forms[0].advSaleType.length;i++) {
        if (document.forms[0].advSaleType[i].checked) {
            saletype = document.forms[0].advSaleType[i].value;
        }
    }

    if (saletype == "advForLease"){
        return ValidateAdvancedLeaseSearchItems(theForm);
    }
    else if (saletype == "advForSale"){
        return ValidateAdvancedSaleSearchItems(theForm);
    }    	 
    else {
        return false;
    }
}
function ValidateAdvancedLeaseSearchItems(theForm) {
    var success;    
    success = ValidMinMaxItems('txtRentFLmin', 'txtRentFLmax',"rent");
    if (!success) return false;

    success = ValidMinMaxItems('txtSqFtFLmin', 'txtSqFtFLmax',"sqft needed");
    if (!success) return false;

}

function ValidateAdvancedSaleSearchItems(theForm) {
    var success;    
    success = ValidMinMaxItems('txtPriceFSmin', 'txtPriceFSmax',"price");
    if (!success) return false;

    success = ValidMinMaxItems('txtBuildingsqftFSmin', 'txtBuildingsqftFSmax',"building sqft");
    if (!success) return false;

    success = ValidMinMaxItems('txtLandsqftFSmin', 'txtLandsqftFSmax',"land sqft");
    if (!success) return false;

    success = ValidMinMaxItems('txtAcresFSmin', 'txtAcresFSmax',"acres");
    if (!success) return false;

    success = ValidMinMaxItems('txtLandPricesqftFSmin', 'txtLandPricesqftFSmax',"land price/sqft");
    if (!success) return false;

}

function ValidMinMaxItems(minID, maxID, message) {
    //get the min/max values as strings
    var sMin=document.getElementById(minID).value;
    var sMax=document.getElementById(maxID).value;

    //check if non blank and non numeric (includes negative sign) ''''''''''''
    if (sMin != "" & !IsNumeric(sMin) ) {
         alert('Minimum ' + message + ' must be a number greater than zero');
         document.getElementById(minID).focus();
         return false;
    }        
    
    if (sMax != "" & !IsNumeric(sMax) ) {
         alert('Maximum ' + message + ' must be a number greater than zero');
         document.getElementById(maxID).focus();
         return false;
    }
    //''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    //check if max is bigger than min ''''''''''''''''''''''''''''''''''''''''
    if (sMin != "" & IsNumeric(sMin)  & sMax != "" & IsNumeric(sMax) ) {
         var sMind = parseFloat(sMin);
         var sMaxd = parseFloat(sMax);
         if (sMind > sMaxd) {
            alert('Maximum ' + message + ' must be a number greater than the minimum');
            document.getElementById(maxID).focus();
            return false;
         }
    }
    //''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    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;
 }

