function $() {
	es = new Array();
	for (i=0; i<arguments.length; i++) {
		e = arguments[i];
		if (typeof e == "string") e = document.getElementById(e);
		if (arguments.length == 1) return e;
		es.push(e);
	}
	return es;
}
function bedroomRangeCheck() {
	return performCheck("h_aantal_slaapkamers_min", "h_aantal_slaapkamers_max", "Minimum aantal ligt boven het maximum aantal.");
}
function bedroomRangeCheckExtra(field1, field2) {
	return performCheck(field1, field2, "Minimum aantal ligt boven het maximum aantal.");
}
function capitalize(v) {
	t=v.value;
	if (t==t.toLowerCase() || t==t.toUpperCase()) {
		alfa="abcdefghijklmnopqrstuvwxyzáàäâéèêëóòöôïîíìúùüûýÿçñ"; alfa+=alfa.toUpperCase();
		t2="";
		if (t==t.toUpperCase()) t=t.toLowerCase();
		for (i=0;i<t.length;i++) {
			c=t.substring(i,i+1);
			if (i>0) { p=t.substring(i-1,i); if (alfa.indexOf(p)==-1) c=c.toUpperCase(); } else c=c.toUpperCase();
			t2+=c;
		}
		v.value=t2;
	}
}

function checkEmail(email){

   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

   if(reg.test(email) == false) {
      return false;
   }
}

function clearBorder(field) {
    document.getElementById(field).style.borderColor = "";
}

function countzipssingle() {
	sanitizePostcodes(document.forms.hmodh_form.zips);
	zips=document.forms.hmodh_form.zips.value;
	e=zips.split(",");
	if (zips.length==0) c=0; else c=e.length;
	document.getElementById("aantalzips").innerHTML=c;
}

function countzipsmultiple() {
	n = document.getElementById("idzips").value;
	zips2=document.getElementById("zips["+n+"]").value;
	e=zips2.split(",");
	nz=""; c=0;

	for (i=0;i<e.length;i++) {
		if (e[i].length==4 && Math.round(e[i]*1)==e[i] && e[i]>=1000) {
			nz=nz+e[i]+",";
			c++;
		}
	}
	if (nz.length>1) nz=nz.substring(0,nz.length-1);

	document.getElementById("aantalzips").innerHTML=c;
	document.getElementById("zips["+n+"]").value=nz;

	setzipvalue();
}

function displayExtras(element, showval) {
    ie7 = navigator.appVersion.indexOf("MSIE 7.0") != -1;
    if (ie7) {
        document.getElementById(element).style.display = (showval == 'table-row' ? 'inline' : 'none');
    } else {
        document.getElementById(element).style.display = showval;
    }

    document.getElementById('extrainfolink_show').style.display = (showval == 'table-row' ? 'none' : 'inline');
    document.getElementById('extrainfolink_hide').style.display = (showval == 'table-row' ? 'inline' : 'none');
/*
    $(element).style.display = showval;

    $('extrainfolink_show').style.display = (showval == 'table-row' ? 'none' : 'inline');
    $('extrainfolink_hide').style.display = (showval == 'table-row' ? 'inline' : 'none');
*/
}

function displayExtrasUpdate(element, showval, criteria) {
    ie7 = navigator.appVersion.indexOf("MSIE 7.0") != -1;
    if (ie7) {
        document.getElementById(element).style.display = (showval == 'table-row' ? 'inline' : 'none');
    } else {
        document.getElementById(element).style.display = showval;
    }

    document.getElementById('extrainfolink_show['+criteria+']').style.display = (showval == 'table-row' ? 'none' : 'inline');
    document.getElementById('extrainfolink_hide['+criteria+']').style.display = (showval == 'table-row' ? 'inline' : 'none');
/*
    $(element).style.display = showval;

    $('extrainfolink_show['+criteria+']').style.display = (showval == 'table-row' ? 'none' : 'inline');
    $('extrainfolink_hide['+criteria+']').style.display = (showval == 'table-row' ? 'inline' : 'none');
*/
}

function floorRangeCheck() {
	return performCheck("h_verdieping_min", "h_verdieping_max", "Minimum verdieping is boven de maximum verdieping.");
}

function floorRangeCheckExtra(field1, field2) {
	return performCheck(field1, field2, "Minimum verdieping is boven de maximum verdieping.");
}

function goodphone(t) {
	n=t.value; n2="";
	if (n.length>=9) {
	for (i=0;i<n.length;i++) {
		c=n.substring(i,i+1);
		if (parseInt(c)>=0 && parseInt(c)<=9) n2+=""+c;
	}
	if (n2.substring(0,2)=="32") n2=n2.substring(2);
	if (n2.length==9) {
		if (n2.substring(0,2) == "03" || n2.substring(0,2) == "02") {
			area=n2.substring(0,2);
			num1=n2.substring(2,5);
		} else {
			area=n2.substring(0,3);
			num1=n2.substring(3,5);
		}
		num2=n2.substring(5,7);
		num3=n2.substring(7,9);
	}
	if (n2.length==10) {
		area=n2.substring(0,4);
		num1=n2.substring(4,6);
		num2=n2.substring(6,8);
		num3=n2.substring(8,10);
	}
	n2="+32 "+"(0)"+area.substring(1)+" "+num1+" "+num2+" "+num3;
	t.value=n2;
	}
}

function number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, prec = decimals;
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep == "undefined") ? ',' : thousands_sep;
    var dec = (typeof dec_point == "undefined") ? '.' : dec_point;

    var s = (prec > 0) ? n.toFixed(prec) : Math.round(n).toFixed(prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;

    var abs = Math.abs(n).toFixed(prec);
    var _, i;

    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');

        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }

    return s;
}

function oppGrondTest(obj) {
	if (!performCheck("h_grond_oppervlak_min", "h_grond_oppervlak_max", "")) {
		if (obj != null)
			alert("Het minimum moet lager zijn dan het maximum.");
		return false;
	}
	return true;
}

function oppGrondTestExtra(obj, field1, field2) {
	if (!performCheck(field1, field2, "")) {
		if (obj != null)
			alert("Het minimum moet lager zijn dan het maximum.");
		return false;
	}
	return true;
}

function oppTest(obj) {
	if (!performCheck("h_handel_oppervlak_min", "h_handel_oppervlak_max", "")) {
		if (obj != null)
			alert("Het minimum moet lager zijn dan het maximum.");
		return false;
	}
	return true;
}

function oppTestExtra(obj, field1, field2) {
	if (!performCheck(field1, field2, "")) {
		if (obj != null)
			alert("Het minimum moet lager zijn dan het maximum.");
		return false;
	}
	return true;
}

function performCheck(IdMinimum, IdMaximum, errormsg) {
	document.getElementById('error_div').innerHTML='';
	var min = document.getElementById(IdMinimum);
	var max = document.getElementById(IdMaximum);
	if (min == null || max == null)
		return true;
	min = min.value.replace(/[^0123456789,]/g, "").replace(".", ",");
	max = max.value.replace(/[^0123456789,]/g, "").replace(".", ",");
	if (min != "" && max != "" && parseInt(min, 10) > parseInt(max, 10)) {
		document.getElementById('error_div').innerHTML = errormsg;
		return false;
	}
	return true;
}

function popkaart() {
	sx=100;
	sy=100;
	if (document.forms.hmodh_form.zips.value == "typ postcode(s)") document.forms.hmodh_form.zips.value = "";
	zips=document.forms.hmodh_form.zips.value;
	window.open("/includes/regioselector.php",null,"width=575,height=430,left="+sx+",top="+sy);
}

function priceRangeCheck() {
	return performCheck("h_prijs_min", "h_prijs_max", "Minimum prijs is boven de maximum prijs.");
}
function priceRangeCheckExtra(field1, field2) {
	return performCheck(field1, field2, "Minimum prijs is boven de maximum prijs.");
}
function rentPriceRangeCheck() {
	return performCheck("h_huurprijs_min", "h_huurprijs_max", "Minimum prijs is boven de maximum prijs.");
}

function sanitizeNumber(oppervlakteField) {
	oppervlakteField.value = oppervlakteField.value.replace(/[^0123456789,]/g, "");
}

function sanitizePostcodes(pcField) {
	saneArray = new Array();

	var pcvalues = pcField.value;
	pcvalues = trim(pcvalues);
	pcvalues = pcvalues.split(" ").join(",");
	pcvalues = pcvalues.split(";").join(",");
	pcvalues = pcvalues.split(".").join(",");
	pcArray = pcvalues.split(",");
	for (index in pcArray)
		if (pcArray[index].length == 4)
			saneArray.push(pcArray[index]);

	pcField.value = saneArray.join(",");

}

function sanitizePrice(priceField) {
	number = priceField.value;

	if (number == "")
		return "";

	number = new String(number);
	number = number.replace(/[^0123456789,]/g, ""); // remove all but digits & comma (we don't need dots)
	number = number.replace(",", ".");
	number = number_format(number, 0, ",", ".");
	if (number == "0.00")
		priceField.value = "";

	priceField.value = number;
}

function setAllFields(element,check) {
    var inputs = document.getElementById(element).getElementsByTagName("INPUT");
    for (var i = 0; i < inputs.length; i++){
        var inputname = inputs[i].id;
        if (inputname.substr(0,8) == "groepen["){
            document.getElementById(inputname).checked = check;
            document.getElementById(inputname).click();
            document.getElementById(inputname).click();
        }
    }
}

function setAllFieldsTest(element,check,subtypefield,subtypevalue) {
    var inputs = document.getElementById(element).getElementsByTagName("INPUT");
    for (var i = 0; i < inputs.length; i++){
        var inputname = inputs[i].id;
        if (inputname.substr(0,8) == "groepen["){
            document.getElementById(inputname).checked = check;
        }
    }
    currentsubtypevalue = newsubtypevalue = document.getElementById(subtypefield).value + ",";
    subvalues = subtypevalue.split(",");

    if (check == true) {
        for (i=0;i<subvalues.length;i++) {
            if (subvalues[i] != "") newsubtypevalue = currentsubtypevalue + "," + subvalues[i];
            currentsubtypevalue = newsubtypevalue;
        }
    } else {
        for (i=0;i<subvalues.length;i++) {
            if (subvalues[i] != "") newsubtypevalue = currentsubtypevalue.replace(","+subvalues[i]+",", ",");
            currentsubtypevalue = newsubtypevalue;
        }
    }

    document.getElementById(subtypefield).value = newsubtypevalue;
}

function setGroepFields(element,check,subtypefield,subtypevalue) {
    document.getElementById(element).checked = check;
    
    currentsubtypevalue = newsubtypevalue = document.getElementById(subtypefield).value + ",";
    subvalues = subtypevalue.split(",");

    if (check == true) {
        for (i=0;i<subvalues.length;i++) {
            if (subvalues[i] != "") newsubtypevalue = currentsubtypevalue + "," + subvalues[i];
            currentsubtypevalue = newsubtypevalue;
        }
    } else {
        for (i=0;i<subvalues.length;i++) {
            if (subvalues[i] != "") newsubtypevalue = currentsubtypevalue.replace(","+subvalues[i]+",", ",");
            currentsubtypevalue = newsubtypevalue;
        }
    }

    document.getElementById(subtypefield).value = newsubtypevalue;
}

function setBoxState(id, state) {
	document.getElementById(id).checked = state;
	document.getElementById("cbx_" + id).src = '/backsite/img/checkbox_'+(state ? 'on': 'off') + '.gif';
}

function setzipvalue() {
	n = document.getElementById("idzips").value;
	document.getElementById("zips["+n+"]").value = document.getElementById("zips").value;
}

function takeoverPriceRangeCheck() {
	return performCheck("h_overtenemen_prijs_min", "h_overtenemen_prijs_max", "Minimum prijs is boven de maximum prijs.");
}

function toggleFields(fields, newvalue) {
    var myFields = fields.split(",");
    for (var i = 0; i < myFields.length; i++) {
            var f = document.getElementById(myFields[i]);
            if (f != null) {
                    if (newvalue == false) {
                            f.value = "";
                            f.readOnly = true;
                            f.style.backgroundColor = "#C0C0C0";
                            f.style.borderColor = "";
                    } else {
                            f.readOnly = false;
                            f.style.backgroundColor = "";
                            f.style.borderColor = "";
                    }
            }
    }
}

function toggleSubTypes(id,state){
    if (!document.getElementById(id).animation){
        document.getElementById(id).animation = new Animator({duration:300});
        document.getElementById(id).animation.addSubject(new NumericalStyleSubject(document.getElementById(id), 'height', 0, document.getElementById(id).scrollHeight));
    }
    if (state) document.getElementById(id).animation.play();
    else document.getElementById(id).animation.reverse();
}

function trim(str) {
	if (str == null)
	laststr = str;
	if (str == "") return "";
	return str.replace(/^\s+/,'').replace(/\s+$/,'');
}
