/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var mm;
var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
var icons = [];
var map;
var url = 'xml_gen.php';
var pattern = '<p style="font-size: 12px; color: #7d7d7d; font-family: tahoma, sans-serif; margin-bottom: 5px;"></p><div id="object"><img src="IMAGE_URL" style="float: left; margin: 0 10px 10px 0;" /><span style="font-size: 15px; color: #7d7d7d; font-family: tahoma, sans-serif;">NAME</span><br /><span style="font-size: 11px; color: #7d7d7d; font-family: tahoma, sans-serif;">Liczba pokoi: ROOMS</span><br /><span style="font-size: 11px; color: #7d7d7d; font-family: tahoma, sans-serif;">ADDRESS<br />Ceny od: PRICE_FROMzł<br />Telefon: PHONE</span><br /><br /></div><div id="desc" style="display: block; width:300px;"><span style="font-size: 11px; color: #7d7d7d; font-family: tahoma, sans-serif; line-height: 15px;">DESCRIPTION</span><br /><br /><span style="font-size: 13px; color: #7d7d7d; text-decoration: underline; font-family: tahoma, sans-serif; line-height: 15px;"><a href="URL" target="_blank">Więcej informacji >></a></span></div>';

var district_pattern = '<b>Województwo:</b> NAME<br /><b>Liczba ofert:</b> COUNT<br /><br /><a href="javascript:loadMarkers( ID );">szczegó\u0142y</a>';
var img_url = 'http://thydzik.com/thydzikGoogleMap/markerlink.php?text=100&color=FCF356';

function decode(utftext)
{
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}

		}

		return string;
}

function initialize()
{
  //pattern = '<p style="font-size: 12px; color: #7d7d7d; font-family: tahoma, sans-serif; margin-bottom: 5px;"></p><div id="object"><img src="1.jpg" style="float: left; margin: 0 10px 10px 0;" /><span style="font-size: 15px; color: #7d7d7d; font-family: tahoma, sans-serif;">Dom wypoczynkowy</span><br /> <span style="font-size: 11px; color: #7d7d7d; font-family: tahoma, sans-serif;">Warszawa, ul. Sodowa 16<br /> Od 1500zł<br />Telefon: +48 606 495 493</span><br /><br /> <span style="font-size: 13px; color: #7d7d7d; text-decoration: underline; font-family: tahoma, sans-serif; line-height: 15px;">Więcej informacji >></span></div><div id="desc" style="display: none;">  <img src="1.jpg" style="float: left; margin: 0 10px 10px 0;" />  <span style="font-size: 15px; color: #7d7d7d; font-family: tahoma, sans-serif;">Dom wypoczynkowy</span><br />  <span style="font-size: 11px; color: #7d7d7d; font-family: tahoma, sans-serif; line-height: 15px;">Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. Aliquam erat ac ipsum. Integer aliquam purus.</span><br /><br />  <span style="font-size: 13px; color: #7d7d7d; text-decoration: underline; font-family: tahoma, sans-serif; line-height: 15px;">Więcej informacji >></span></div>';
  if( GBrowserIsCompatible() )
  {
    map = new GMap2( document.getElementById( "map" ) );
    map.addControl( new GMapTypeControl() );
    map.addControl( new GScaleControl() );
    map.addControl( new GOverviewMapControl() );
    map.addControl( new GLargeMapControl() );
    map.enableContinuousZoom();
    map.setCenter( new GLatLng( 51.64870258356996, 17.812957763671875 ), 6 );

    mm = new MarkerManager( map );

    GEvent.addListener( map, 'click', function( marker, point )
    {
      if( marker )
      {
        if( marker.txt != undefined )
          marker.openInfoWindowHtml( marker.txt );
      }
      else
      {

      }

    });


    icons[0] = new GIcon();
    icons[0].image = 'images/general/hotel.png';
    //icons[0].shadow = 'markers/s1.png';
    icons[0].iconSize = new GSize(32,37);
    //icons[0].shadowSize = new GSize(66,60);
    icons[0].iconAnchor = new GPoint(18,62);
    icons[0].infoWindowAnchor = new GPoint(18,1);

    icons[1] = new GIcon();
    icons[1].image = 'images/general/home.png'; // wyróżniona
    //icons[1].shadow = 'markers/s2.png';
    icons[1].iconSize = new GSize(32,37);
    //icons[1].shadowSize = new GSize(36,33);
    icons[1].iconAnchor = new GPoint(10,34);
    icons[1].infoWindowAnchor = new GPoint(10,1);

    icons[2] = new GIcon();
    icons[2].image = 'images/general/district.png';//img_url;//'http://thydzik.com/thydzikGoogleMap/markerlink.php?text=NUMBER&color=FCF356';
    icons[2].iconSize = new GSize( 20, 34 );
    icons[2].iconAnchor = new GPoint(10,34);
    icons[2].infoWindowAnchor = new GPoint(10,1);

    loadDistrictsMarkers();


    //loadMarkers();
    //mm.addMarkers( loadMarkers() );
    //mm.refresh();
  }
}

function loadDistrictsMarkers()
{
  GDownloadUrl( url + "?data=districts", function( data, response )
  {
    mm.clearMarkers();
    var xml = GXml.parse( data );
    var markers = xml.getElementsByTagName( "marker" );
    //map.setCenter( new GLatLng( parseFloat( markers[0].getAttribute( "lat" ) ), parseFloat( markers[0].getAttribute( "lng" ) ) ), 12 );
    for( var i = 0; i < markers.length; i++ )
    {
      var point = new GLatLng( parseFloat( markers[i].getAttribute( "lat" ) ), parseFloat( markers[i].getAttribute( "lng" ) ) );

      var name = markers[i].getElementsByTagName( "name" )[0];

      var marker = new GMarker( point, { icon: icons[2] } );
      var local_pattern = district_pattern.replace( "COUNT", markers[i].getAttribute( "count" ) )
      local_pattern = local_pattern.replace( "NAME", decodeURIComponent( escape( GXml.value( name ) ) ) );
      marker.txt = local_pattern.replace( "ID", markers[i].getAttribute( "id" ) );

      
      //manager.addMarker( marker, 1, 12 );

      //batch.push( marker );
      mm.addMarker( marker, 1, 15 );
    }

    mm.refresh();

    //return batch;
  } );
}

function loadMarkers( district )
{
  //var batch = [];
  GDownloadUrl( url + "?district=" + district, function( data, response )
  {
    mm.clearMarkers();
    var xml = GXml.parse( data );
    var markers = xml.getElementsByTagName( "marker" );
    map.setCenter( new GLatLng( parseFloat( markers[0].getAttribute( "lat" ) ), parseFloat( markers[0].getAttribute( "lng" ) ) ), 8 );
    for( var i = 0; i < markers.length; i++ )
    {
      var point = new GLatLng( parseFloat( markers[i].getAttribute( "lat" ) ), parseFloat( markers[i].getAttribute( "lng" ) ) );
      //var zoom = parseInt( markers[i].getAttribute( "zoom" ) );
      var marker = new GMarker( point, { icon:icons[markers[i].getAttribute( 'promowana' ) ] } );
      //var x = markers[i].getElementsByTagName( "text" )[0];

      var name = decodeURIComponent( escape( GXml.value( markers[i].getElementsByTagName( "name" )[0] ) ) );
      var address = decodeURIComponent( escape( GXml.value( markers[i].getElementsByTagName( "address" )[0] ) ) );
      var text1 = markers[i].getElementsByTagName( "text" )[0];
      text1 = decode( GXml.value( text1 ) );

      var local_pattern = pattern.replace( 'ID', markers[i].getAttribute( 'id') );
      local_pattern = local_pattern.replace( "NAME", name );
      local_pattern = local_pattern.replace( 'PHONE', markers[i].getAttribute( 'telefon' ) );
      local_pattern = local_pattern.replace( 'ADDRESS', address );
      local_pattern = local_pattern.replace( 'ROOMS', markers[i].getAttribute( 'liczba_pokoi' ) );
      local_pattern = local_pattern.replace( 'DESCRIPTION', text1 );
      local_pattern = local_pattern.replace( 'PRICE_FROM', markers[i].getAttribute( 'cena_od' ) );
      local_pattern = local_pattern.replace( 'IMAGE_URL', markers[i].getAttribute( 'foto' ) );
      local_pattern = local_pattern.replace( 'URL', markers[i].getAttribute( 'url' ) );
      //alert( local_pattern );
      marker.txt = local_pattern.replace( 'ADDRESS', markers[i].getAttribute( 'miasto' ) );
     
      mm.addMarker( marker, 1, 15 );
    }

    mm.refresh();
    toggleSearchForm( true );

    //return batch;
  } );

}

function toggleSearchForm( param )
{
  if( param )
    document.getElementById( "search_map" ).style.display = 'block';
  else
    document.getElementById( "search_map" ).style.display = 'none';
}

function spanMap()
{
  var what = document.getElementById( "what" );
  var geocoder = new GClientGeocoder();
  geocoder.getLatLng(
    what.value,
    function(point) {
      if( point )
      {
        //map.panTo(point);
        map.setCenter( point, 12 );
      }
    }
  );

}

function refreshMap()
{
  loadDistrictsMarkers();
  toggleSearchForm( false );
  map.setCenter( new GLatLng( 51.64870258356996, 17.812957763671875 ), 6 );
}
