if(!Array.indexOf){
	    Array.prototype.indexOf = function(obj){
	        for(var i=0; i<this.length; i++){
	            if(this[i]==obj){
	                return i;
	            }
	        }
	        return -1;
	    }
	}


function refactorAddress(){
var addresses = new Array();
var dupAddresses = new Array();
var addressHTML = new Array();
for (var cid in address){
 if (addresses.indexOf(address[cid]) == -1){
  addresses.push(address[cid]);
 }
 else{
  if(dupAddresses.indexOf(address[cid]) == -1){
   dupAddresses.push(address[cid]);
  }
 }
}

for (var cid in address){
 html = newPopup[cid];
 for (var dup in dupAddresses){
  if(address[cid] == dupAddresses[dup]){
   if(addressHTML[address[cid]] != null){
    addressHTML[address[cid]] = addressHTML[address[cid]] + "<hr style='width:300px'>" + html;
   }
   else{
    addressHTML[address[cid]] = html;
   }
  }
 }
}
for (var cid in address){
 var io = dupAddresses.indexOf(address[cid])
 if(io != -1){
  for (var x in search3){
   if(search3[x] == parseInt(cid)){
    popup[x]=[new GInfoWindowTab("",addressHTML[address[cid]])]; 
   }
  }
 }
}

}


function runIt(){
center = map.getCenter();
radius = 1
if (radius == ""){radius = 1;}
var x=0;
for(x=0;x<marker.length;x++)
{
 nid = 'sidenav' + x;
 n=document.getElementById(nid);
 n.style.display="inline";
 map.removeOverlay(marker[x])
 map.addOverlay(marker[x]); 
 latlon = marker[x].getLatLng();
 distance = center.distanceFrom(latlon) ;
 distance = distance * 0.000621371192237334;
 
 if (distance > radius ){
  map.removeOverlay(marker[x]);
  n.style.display="none";
}
}
}

function centerOnAddress(){
  var address = document.getElementById('centerAddress').value;
  if (address != ""){
    new GClientGeocoder().getLatLng(address, function(latLng) {
        if (latLng === null) {
            alert('Invalid Address');
        } else {
        c = new GClientGeocoder();
        map.setCenter(latLng);
        }
    });
}
runIt2();
}
function print_r( array, return_val ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Michael White (http://getsprink.com)
    // +   improved by: Ben Bryan
    // *     example 1: print_r(1, true);
    // *     returns 1: 1
    
    var output = "", pad_char = " ", pad_val = 4;
 
    var formatArray = function (obj, cur_depth, pad_val, pad_char) {
        if (cur_depth > 0) {
            cur_depth++;
        }
 
        var base_pad = repeat_char(pad_val*cur_depth, pad_char);
        var thick_pad = repeat_char(pad_val*(cur_depth+1), pad_char);
        var str = "";
 
        if (obj instanceof Array || obj instanceof Object) {
            str += "Array\n" + base_pad + "(\n";
            for (var key in obj) {
                if (obj[key] instanceof Array) {
                    str += thick_pad + "["+key+"] => "+formatArray(obj[key], cur_depth+1, pad_val, pad_char);
                } else {
                    str += thick_pad + "["+key+"] => " + obj[key] + "\n";
                }
            }
            str += base_pad + ")\n";
        } else if(obj == null || obj == undefined) {
            str = '';
        } else {
            str = obj.toString();
        }
 
        return str;
    };
 
    var repeat_char = function (len, pad_char) {
        var str = "";
        for(var i=0; i < len; i++) { 
            str += pad_char; 
        };
        return str;
    };
    output = formatArray(array, 0, pad_val, pad_char);
 
    if (return_val !== true) {
        document.write("<pre>" + output + "</pre>");
        return true;
    } else {
        return output;
    }
    }
function runIt2(){
var ONE_DAY = 60 * 60 * 24 * 1000;
var result=new Array();
var now = new Date();
now = Date.parse(now);
for (i=0;i<marker.length;i++) {result[i]=1};
 center = map.getCenter();
// radius = document.getElementById('circleradius').value;
var radius = 1;

 for(x=0;x<marker.length;x++)
 {
  latlon = marker[x].getLatLng();
  distance = center.distanceFrom(latlon) ;
  distance = distance * 0.000621371192237334;
  if (distance > radius ){
   result[x]=0;
  }
 }

  for (v=1;v<=document.searchform2.elements.length;v++) {
	var oper=eval('oper'+v);
	list=document.searchform2.elements['criteria'+v];
	if (list.type == "select-one") {
		criteria=list.options[list.selectedIndex].value;
	} else {
		criteria=list.value;
    }
        if (!criteria.length) {continue};

	for (i=0;i<marker.length;i++) {
		data=eval('search'+v+'['+i+']');
		if (oper=="contains") {
			re=/criteria/i;
			data=data.toLowerCase();
			criteria=criteria.toLowerCase();
			if (data.indexOf(criteria)==-1) {result[i]=0};
			continue;
		}
		if (oper=='is equal to') {
			if (data!=criteria) {result[i]=0};
			continue;
		}
 		data=new String(data);
		data=data.replace(/[^0-9\.]/g,'');
		if (oper=='at least') {
		if(v == 2){
		 num = document.getElementsByName('criteria2');
		 var days = num[0].options[num[0].selectedIndex].value;
		 days = days.replace(/\D/g, "")
		 var date = eval('search'+v+'['+i+']');
		 date = new String(date);
		 date=date.replace(/-/g,' ');
		 var then = Date.parse(date);
		 var diff = Math.abs(now - then);
		 diff = diff / (60*60*24*1000)
		 diff = Math.round(diff);
		 if(days < diff){ result[i]=0;}
		}
		else{
			if (data<criteria) {result[i]=0};
			continue;
		}
		}
		if (oper=='at most') {
			if (data>criteria) {result[i]=0};
			continue;
		}
		if (oper=='between x and y') {
			parts=criteria.split(/ *\- */);
			for (j=0;j<=1;j++) {
				var param=new String(parts[j]);
				if (param.search(/[0-9]+K/i)>-1) {
					parts[j]=parts[j].replace(/[^0-9\.]/,'');
					parts[j]=parts[j]*1000;
				}
				if (param.search(/[0-9]+M/i)>-1) {
					parts[j]=parts[j].replace(/[^0-9\.]/,'');
					parts[j]=parts[j]*1000000;
				}
			}
			if ((data<parts[0])||(data>parts[1])) {result[i]=0};
			continue;
		}		
		}
	}
//for(x=0;x<popup.length;x++){ if(x==378){alert(popup[x][0]['contentElem']['innerHTML']);}}

  for (i=0;i<result.length;i++) {
    if(result[i]) {
	map.addOverlay(marker[i]);
	if (document.getElementById("sidenav"+i)) {
        	document.getElementById("sidenav"+i).style.display="inline";
	};
    } else {
	map.removeOverlay(marker[i]);
	if (document.getElementById("sidenav"+i)) {
        	document.getElementById("sidenav"+i).style.display="none";
	}	
    }
  }
}
