function numsToHtml() {
  html='<h3>Overview</h3><p>&nbsp;</p>';
  for(i=0;i<$('bedrooms').value;i++)
    html += '<h3>Bedroom '+(i+1)+'</h3><p>&nbsp;</p>';
  for(i=0;i<$('receptions').value;i++)
    html += '<h3>Reception Room '+(i+1)+'</h3><p>&nbsp;</p>';
  for(i=0;i<$('kitchens').value;i++)
    html += '<h3>Kitchen '+(i+1)+'</h3><p>&nbsp;</p>';
  for(i=0;i<$('otherrooms').value;i++)
    html += '<h3>Other room '+(i+1)+'</h3><p>&nbsp;</p>';
  html+='<h3>Further information</h3><p>&nbsp;</p>';
  return html;
}

function changeInputs() {
  var els = document.getElementsByTagName('input');
  var elsLen = els.length;
  var i = 0;
  for ( i=0;i<elsLen;i++ ) {
    if ( els[i].getAttribute('type') ) {
      if ( els[i].getAttribute('type') == "button"|| els[i].getAttribute('type') == "submit" ) els[i].className += ' button';
    }
  }
}

Event.observe(window,'load',changeInputs);

  // Written by Sean Treadway 2006 sean@treadway.info
  // Free Beer and Free Speech - the best license of all

  TabControl = function(control_id, options) {
    var id = "#" + control_id;
    $$(id+' ul.tabs li a').each(function(a) {
      var page = a.getAttribute('href').match(/[-_\w]+$/i)[0];

      if (page != options['current']) { $(page).hide() } 
      else { $(a.parentNode).addClassName('active') }

      Event.observe(a, 'click', function(e) {
        $$(id+' ul.tabs li.active').each(function(e) { e.removeClassName('active'); })
        $$(id+' .tab_page[id!='+page+']').each(function(e) { e.hide() });
        $(a.parentNode).addClassName('active');
        $(page).show();
        Event.stop(e);
      });
    });
  }

function deleteImage (id) {
  if(window.confirm('Are you sure you want to delete this image?')){
    handler = function () {
      victim = $('image'+id);
      $(victim).style.display='none';
    }
    new Ajax.Request("/propertyEditor/deleteImage", {
      asynchronous:true, method:"post",
      postBody:"id="+id,
      onSuccess:handler,
      onFailure: function() { alert('Error'); }
    });
    
  }
}
function deleteProperty (id) {
  if(window.confirm('Are you sure you want to delete this property? If it is live, this will completely unlist it from MySaleAgreed and all our partners.')){
    handler = function () {
      victim = $('property'+id);
      $(victim).style.display='none';
    }
    new Ajax.Request("/hub/deleteProperty", {
      asynchronous:true, method:"post",
      postBody:"id="+id,
      onSuccess:handler,
      onFailure: function() { alert('Error'); }
    });
    
  }
}

function fetchXmlData(id,source,elem,num) {
    new Ajax.Updater(elem,"/propertyEditor/fetchXml", {
      asynchronous:true, method:"post",
      postBody:"source="+source+"&elem="+elem+"&id="+id,
      onSuccess: function() { count++; if(count==num) Effect.Appear('viewlisting'); },
      onFailure: function() { alert('Error'); }
    });
}
var count = 0;
var businesshighlight='';
pagehasmap=true;
var curpoint, curmarker;
var infoTabs = new Array();
var curtab;

function createPopupMarker(point,description,icon,html2,id) {
        var marker = new GMarker(point, {title:description, icon:icon});
//	alert(id);
        map.addOverlay(marker);
        GEvent.addListener(marker, "click", function() {
                //alert(linkurl);
//		marker.openInfoWindowHtml("<img src='/resize/"+propertyId+"/?height=100&width=100'>");
		marker.openInfoWindowTabsHtml(infoTabs[id][0]);
		curpoint=point; curmarker=marker; curtab=0;
//		if(document.getElementById('detailbox'))
//	                document.getElementById('detailbox').innerHTML=html2;
                //document.location.href=linkurl;
        });
}
function createLinkMarker(point,description,icon,linkurl) {
        var marker = new GMarker(point, {title:description, icon:icon});
        map.addOverlay(marker);
        GEvent.addListener(marker, "click", function() {
                //alert(linkurl);
                document.location.href=linkurl;
        });
}
function createZoomMarker(point,description,icon,zoomlevel) {
        var marker = new GMarker(point, {title:description, icon:icon});
        map.addOverlay(marker);
        GEvent.addListener(marker, "click", function() {
                //alert(marker.getPoint().toString()+marker.description+marker.foo); 
                map.setCenter(point,zoomlevel);
        });
}

function autoAddMarkers (criteria) {
        var center = map.getCenter();
        var latLngStr = center.toString();
        var bounds = map.getBounds();
        var sw = bounds.getSouthWest();
        var ne = bounds.getNorthEast();
        searchBusinessesAddMarkers(
                ne.lat(), ne.lng(), sw.lat(), sw.lng(), map.getZoom(), map, criteria);
}
function resizeV2(map, points) {
	var bounds = new GBounds(points);

	var sw = new GLatLng(bounds.maxY, bounds.minX);
	var ne = new GLatLng(bounds.minY, bounds.maxX);

	var latLngBounds = new GLatLngBounds(sw, ne);

	var center = latLngBounds.getCenter();
	var zoom = map.getBoundsZoomLevel(latLngBounds);
	map.setCenter(center, zoom);
}

function resizeFromLatLng(sw,ne) {
	var latLngBounds = new GLatLngBounds(sw, ne);

	var center = latLngBounds.getCenter();
	var zoom = map.getBoundsZoomLevel(latLngBounds);
	map.setCenter(center, zoom);
}

var firstrun=true;
var points = new Array();
var labels= new Array();
var oldzoom, newzoom;

Array.prototype.inArray = function (value) {
	// Returns true if the passed value is found in the
	// array. Returns false if it is not.
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i].equals(value)) {
			return true;
		}
	}
	return false;
};

function searchBusinessesAddMarkers(nelat, nelng, swlat, swlng, zoom, map, criteria) {
        GDownloadUrl("/search/XmlPropertySearch?nelat="+nelat+"&nelng="+nelng+"&swlat="+swlat+"&swlng="+swlng+"&zoom="+zoom+"&"+criteria, function(data, responseCode) {
                //GLog.write("/ajax/find_businesses.php?nelat="+nelat+"&nelng="+nelng+"&swlat="+swlat+"&swlng="+swlng+"&zoom="+zoom);
                var xml = GXml.parse(data);
                var markers = xml.documentElement.getElementsByTagName("marker");
                var i = 0;
		newzoom = zoom;
                if((!firstrun && (oldzoom != newzoom))) {
			map.clearOverlays();
                        for(i=0;i<labels.length;i++){
                          map.removeTLabel(labels[i]);
                        }
                        labels = new Array();
			points = new Array();
		}
		oldzoom = newzoom;
                for (i = 0; i < markers.length; i++) {
                        var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                                parseFloat(markers[i].getAttribute("lng")));
			if(parseFloat(markers[i].getAttribute("lat"))!=0 && !(points.inArray(point)) ) {
				points.push(point);
				var type = markers[i].getAttribute("type");
				var description = markers[i].getAttribute("description");
				var id = markers[i].getAttribute("id"); // a unique id for the marker - the first house it contains 
                                var notmarker=false;
				if(type=='multiplehouse') icon=iconmultiplehouse;
				else if(type=='multipleflat') icon=iconmultipleflat;
				else if(type=='multiplenewbuild') icon=iconmultiplenewbuild;
				else if(type=='house') icon=iconhouse;
				else if(type=='flat') icon=iconflat;
				else if(type=='newbuild') icon=iconnewbuild;
                                else {
                                  var label = new TLabel();
                                  label.id=id;
                                  label.content='<div style="border:1px solid gray;"><div style="background-color:#E30000; border:1px solid white; padding:2px; color:white; font-weight:bold;"><a href="javascript:void(0);" onclick="map.setCenter(new GLatLng('+markers[i].getAttribute("lat")+','+markers[i].getAttribute("lng")+'),newzoom+1);" style="color:white;">'+description+'</a></div></div>';
                                  label.anchorPoint='bottomLeft';
                                  label.markerOffset = new GSize (10,10);
                                  label.anchorLatLng=point;
                                  label.percentOpacity=90;
                                  map.addTLabel(label);
                                  labels.push(label);
                                  notmarker=true;
                                }
//				alert(id);
				var houses = markers[i].getElementsByTagName("house");
				infoTabs[id] = new Array();
				var k = 0; var toinc = false;
				infoTabs[id][k]=new Array();
				if(!notmarker) {
                                  for(j=0;j<houses.length;j++){
                                          var html = houses[j].getAttribute("html");
                                          if(houses.length>2){
                                                  if((j+1)<(houses.length-2)){
                                                          html = '<div style="text-align:right; font-size:8pt; width:50px; float:right"><a href="javascript:void(0);" onclick="curtab++; curmarker.openInfoWindowTabsHtml(infoTabs['+id+'][curtab]);">More...</a></div>' + html;
                                                  }
                                                  if(((j+1)%3==0) && ((j+1)!=houses.length)){
                                                          toinc=true;
  //							html='more';
                                                  }
                                                  if((j+1)>3) {
                                                          html = '<div style="text-align:left; font-size:8pt; width:50px; float:left;"><a href="javascript:void(0);" onclick="curtab--; curmarker.openInfoWindowTabsHtml(infoTabs['+id+'][curtab]);">Previous...</a></div>' + html;
                                                  }
                                                  if(((j+1)%3==1) && ((j+1)!=1)){
  //							html='less';
                                                  }
                                  //		alert(html);
                                                  html = "<div style='width:"+(88*3)+"px; clear:both;'>"+html+'</div>';
                                          }
                                          infoTabs[id][k].push(new GInfoWindowTab("Property "+(j+1),html));
                                          if(toinc) { k++; infoTabs[id][k]=new Array(); } toinc=false;
                                  }
                                  var html2 = markers[i].getAttribute("html2");
                                  createPopupMarker(point,description,icon,html2,id); // TODO 0 => propertyId
                                }
			}
			/*
                        switch(type) {
                                case "business":
                                        if(businesshighlight==markers[i].getAttribute("businessId")){
                                                createLinkMarker(point,description,iconred,linkurl);
                                        } else {
                                                createLinkMarker(point,description,iconwhite,linkurl);
                                        }
                                break;
                                case "locality":
                                        //createZoomMarker(point,description,iconyellow,map.getZoom()+1);
                                        createLinkMarker(point,description,iconyellow,linkurl);
                                break;
                                case "region":
                                        createZoomMarker(point,description,iconred,12);
                                break;
                        }*/
                        
                }
                //GLog.write(markers.length);
//		if(firstrun && points.length>0) resizeV2(map,points);
                firstrun=false;
        });
}
