/**
 * This JavaScript file REQUIRES JQuery included in parent HTML.
 * @param frm
 */

var dre_metro = /^\w{8,9}$/;
var dre_reil = /^\d{8}$/;

var broco_metro_solid = /^\w{3,8}$/;
var broco_reil_solid = /^[\w\&.]{1,8}$/;

var lid_metro = /^\d{8,9}$/;
var lid_pin = /^\d{1,9}$/;
var lid_reil_old = /^\d{6}$/;
var lid_reil_new = /^\d{8}$/;
var lid_socal = /^\w{5,9}$/;
var lid_maxebrdi = /^\d{8}$/;
var lid_sand = /^\d{7,10}$/;
var lid_sandx = /^\d{7,10}$/;
var lid_actris = /^\w{6,7}$/;
var lid_mris = /^\w{8,10}$/;
var lid_mlsni = /^\d{8}$/;
var lid_carets = /^[\w:]{10,20}$/;

function getListingSystem(frm) {
  return (frm.ls.type.indexOf("select") >= 0)
          ? frm.ls.options[frm.ls.selectedIndex].value : frm.ls.value;
}

function checkMLSNumber(mlsnum, ls, mls_lengths) {
  if ( typeof( mls_lengths ) != 'undefined' ) {
    var maxLength = mls_lengths[ ls ]
    if ( maxLength != null ) {
      if ( mlsnum.length <= maxLength ) {
        return true
      }
      alert( "Invalid MLS# format: MLS numbers must be no longer than " + maxLength + " symbols.");
      return false
    }
  }
  if (ls=="METRO" && !lid_metro.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 8 or 9 digits.");
    return false;
  }
  if (ls=="REIL" && !lid_reil_old.test(mlsnum) && !lid_reil_new.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 6 or 8 digits.");
    return false;
  }
  if (ls=="SOCAL" && !lid_socal.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 5-9 symbols.");
    return false;
  }
  if (ls=="MAXEBRDI" && !lid_maxebrdi.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 8 digits.");
    return false;
  }
  if (ls=="PIN" && !lid_pin.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 1-9 digits.");
    return false;
  }
  if (ls=="ACTRIS" && !lid_actris.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 6-7 symbols.");
    return false;
  }
  if (ls=="SAND" && !lid_sand.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 7-9 digits.");
    return false;
  }
  if (ls=="SANDX" && !lid_sandx.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 7-9 digits.");
    return false;
  }
  if (ls=="MRIS" && !lid_mris.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 8-10 symbols.");
    return false;
  }
  if (ls=="MLSNI" && !lid_mlsni.test(mlsnum)) {
    alert("Invalid MLS# format: MLS numbers must be 8 digits.");
    return false;
  }
  //if (ls=="CARETS" && !lid_carets.test(mlsnum)) {
  //  alert("Invalid MLS# format: MLS numbers must be 10-20 symbols.");
  //  return false;
  //}
  return true;
}

function checkDRENumber(dre, ls) {
  //due to PM-1095
  //if ((ls=="METRO" || ls=="METROLIST") && (!dre_metro.test(dre))) {
  //  alert("Wrong METRO DRE numbers format!");
  //  return false;
  //}
  if (ls=="REIL" && !dre_reil.test(dre)) {
    alert("Wrong REIL DRE numbers format!");
    return false;
  }
  return true;
}

function checkCommaSeparatedMLSNumbers(fld, ls) {
  var mlsnum=fld.value;
  if(mlsnum.length == 0) return false;
  var vals = mlsnum.replace(/[\s,;]+/g," ").split(" ");
  for (q=0;q<vals.length;q++) {
    if (vals[q].length > 0 && !checkMLSNumber(vals[q], ls)){
      fld.focus();
      return false;
    } 
  }
  return true;
}

function checkCommaSeparatedMLSNumbersREIL(fld, ls) {
  var mlsnum=fld.value;
  if(mlsnum.length == 0) return false;
  var vals = mlsnum.replace(/[\s,;]+/g," ").split(" ");
  var ret = "";
  for (var q=0;q<vals.length;q++) {
    if (vals[q].length > 0 && !checkMLSNumber(vals[q], ls)){
      fld.focus();
      return false;
    }
    ret = ret+(vals[q].length==6?"80":"")+vals[q]+(q==vals.length-1?"":",");
  }
  fld.value=ret;
  return true;
}

function checkCommaSeparatedDRENumbers(dre, ls) {
  if(dre.length == 0) {
    return false;
  }
  vals = dre.replace(/[\s,;]+/g," ").split(" ");
  for (q=0;q<vals.length;q++) {
    if (vals[q].length > 0 && !checkDRENumber(vals[q], ls)) {
      return false;
    }
  }
  return true;
}


function checkSemicolonSeparatedDRENumbers(dre_field, ls) {
  var dre = dre_field.value;
  ls = ls.toUpperCase();
  if(dre.length == 0) {
    return false;
  }
  vals = dre.split(";");
  for (q=0;q<vals.length;q++) {
    if (vals[q].length > 0 && !checkDRENumber(vals[q], ls)) dre_field.focus();
  }
  return true;
}

function disableAllRecipientControlls() {
    if (!$('#variants-groups:checked').length) {
        $("input[name=groups]").attr("disabled", "disabled");
    }

    if (!$('#recipient-from-list-radio:checked').length) {
        $("input[name=contacts-from-list]").attr("disabled", "disabled");
    }

}


