function getMapData(mapitem,maplink,cine_id) {
	
	var post_body_str = 'cine_id=' + cine_id + '&mapitem=' + mapitem + '&maplink=' + maplink;
	
	new Ajax.Request('map', {method:'post', 
							 parameters:post_body_str, 
							 onLoading:loadingText(maplink), 
							 onSuccess:handleCreateMap, 
							 onFailure:errFunc});
}


function loadingText(maplink) {
	
	Element.update(maplink,'loading...');
	Element.writeAttribute(maplink,{onclick:'return true'});
}


function openMap(mapitem,maplink) {
	
	Effect.BlindDown(mapitem, {duration:1});
	Element.update(maplink,'close map');
	var urlstr = 'closeMap(\''+ mapitem + '\',\''+ maplink + '\')';
	Element.writeAttribute(maplink,{onclick:urlstr});
}


function closeMap(mapitem,maplink) {
	
	Effect.BlindUp(mapitem, {duration:1});
	Element.update(maplink,'open map');
	var urlstr = 'openMap(\''+ mapitem + '\',\''+ maplink + '\')';
	Element.writeAttribute(maplink,{onclick:urlstr});
}


var errFunc = function(t) {
	
	//alert("error");
}


var handleCreateMap = function(t, json_obj) {

	getLatLangForPostcode(json_obj.pcode, json_obj.mapitem, createMap);
	  
	openMap(json_obj.mapitem,json_obj.maplink);
}



var localSearch = new GlocalSearch();


function getMapTest(mapdiv,maplink,pcode) {
	
	getLatLangForPostcode(pcode, mapdiv, createMap);
	
	openMap(mapdiv,maplink);	 
}


function getLatLangForPostcode(postcode, mapdiv, callbackFunction) {
  
  localSearch.setSearchCompleteCallback(null,
    
    function() {
      
      if (localSearch.results[0]) {    
        
        var lat = localSearch.results[0].lat;
        var lng = localSearch.results[0].lng;
        var point = new GLatLng(lat,lng);
        callbackFunction(point,mapdiv);
      }
      else{
        
        //alert("Postcode not found!");
      }
      
    });  
    
  localSearch.execute(postcode + ", UK");
}


function createMap(point,mapdiv) {
	
	if (GBrowserIsCompatible()) {
        
        var cust_size = new GSize(510,200);
        var map = new GMap2(document.getElementById(mapdiv),{size:cust_size});
        map.setCenter(point, 14);
        map.addControl(new GSmallMapControl());
        map.addOverlay(new GMarker(point));
        
        return map;
	}
}

