var marker;
var map;
var geocoder = null;
var def_sizes = new Array();
var red_pin_active = false;
var red_pin_marker;
var	spec_mekl_open = false;
var my_infow_window = null;
var coord = new Array();
var bounds = new google.maps.LatLngBounds();
var markerCluster;

function closeInfoWindow () {
  my_infow_window.close();
};

function openInfoWindow (pid) {
	var urlis = '&p='+pid;
	var req = new Request({
		url: PATH_ROOT + "/map_info.php?l=" + valoda,
		data: urlis,
		method: 'get',
		evalScripts  : true,
		onSuccess: function(html) {
			my_infow_window.content = html;			
			my_infow_window.open(map,coord[pid]);

		},
		onFailure: function() {
			$('rezultatu_saraksts').innerHTML = 'conection fail';
		}
	});
	req.send();  
}


function load_map() {
	var myLatlng = new google.maps.LatLng(56.8, 24.7686767578125);
	var myOptions = {
		zoom: 8,
		center: myLatlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	map = new google.maps.Map(document.getElementById("map"), myOptions);
	my_infow_window = new google.maps.InfoWindow();
	markerCluster = new MarkerClusterer(map);
	google.maps.event.addListener(map, 'click', closeInfoWindow);
}
  
function resize_blocks() {

	var i=2;
	while(i>0){	
		var izmeri = window.getSize();
		var y = izmeri.y;
		
		$('left_panel').setStyle('height', y+'px');
		$('labais_bloks').setStyle('height', y+'px');
		var x = izmeri.x - $('left_panel').getSize().x;
		$('labais_bloks').setStyle('width', x+'px');
		$('map').setStyle('width', x+'px');
		$('izvelne2').setStyle('width', x+'px');
		
		y = $('labais_bloks').getSize().y - $('izvelne').getSize().y;
		$('kartes_pamats').setStyle('height', y+'px');
		y = $('labais_bloks').getSize().y - $('izvelne').getSize().y - $('rikjosla').getSize().y;
		$('map').setStyle('height', y+'px');
		
		y = izmeri.y - $('ievades_forma').getSize().y;
		$('rezultatu_saraksts').setStyle('height', y+'px');
		i--;
	}

	/*
	y =  izmeri.y - $('ievades_forma').getSize().y - $('izvelne').getSize().y -70;
	$('rezultatu_saraksts').setStyle('height', y+'px');	
	y = izmeri.y - $('izvelne').getSize().y - $('rikjosla').getSize().y - 1 -70; //opera
	$('map').setStyle('height', y+'px');
	
	var x = izmeri.x -50;
	x = izmeri.x - $('left_panel').getSize().x -50;
	$('kartes_pamats').setStyle('width', x+'px');
	$('map').setStyle('width', x+'px');
	
	$('body').setStyle('width', window.getSize().x+'px');
	$('body').setStyle('height', window.getSize().y+'px');	
		
	izmeri = window.getSize();
	y = izmeri.y - $('izvelne').getSize().y;
	$('left_panel').setStyle('height', y+'px');

	$('kartes_pamats').setStyle('height', y+'px');
	//y =  izmeri.y - $('ievades_forma').getSize().y - $('izvelne').getSize().y;
	y =  $('left_panel').getSize().y - $('ievades_forma').getSize().y-7;
	$('rezultatu_saraksts').setStyle('height', y+'px');	


	
	izmeri = window.getSize();
	x = izmeri.x;
	x = izmeri.x - $('left_panel').getSize().x;
	$('kartes_pamats').setStyle('width', x+'px');
	$('map').setStyle('width', x+'px');
*/
	if($('spec_mekl_box') && $('map').getSize().x<=732) {
		$('spec_mekl_box').setStyles({ width : ($('map').getSize().x - 20) + 'px'});
	} else {
		if($('spec_mekl_box') && $('map').getSize().x>732) {
			$('spec_mekl_box').setStyles({ width : '752px'});
		}
	}
	
}

function aiziet(papildus_url) {
	
	closeInfoWindow();
	
	var urlis ='';
	if ($('company_id').value!='') {
		urlis = urlis + '&company=' + encodeURIComponent($('company_id').value);
	}
	if ($('address_id').value!='') {
		urlis = urlis + '&address=' + encodeURIComponent($('address_id').value);
	}
	if ($('keywords_id').value!='') {
		urlis = urlis + '&keywords=' + encodeURIComponent($('keywords_id').value);
	}
	/*
	if ($('radiuss_id').value!='') {
		urlis = urlis + '&radiuss=' + $('radiuss_id').value;
	}
	*/
	if(papildus_url!='') {
		urlis = urlis + papildus_url;
	} else {
		if(spec_mekl_open) {
			urlis = urlis + get_spec_mekl_params();
		}
	}
	
	/*
	if(red_pin_marker) {
		urlis = urlis + '&pinx=' + red_pin_marker.getLatLng().lat() + '&piny=' + red_pin_marker.getLatLng().lng();
	}
	*/
	
	bounds = map.getBounds();

	var lbx = bounds.getSouthWest().lat();
	var lby = bounds.getSouthWest().lng();
	var rtx = bounds.getNorthEast().lat();
	var rty = bounds.getNorthEast().lng();
	var urlis = urlis + '&lbx=' + lbx + '&lby=' + lby + '&rtx=' + rtx + '&rty=' + rty;

	var sx = bounds.toSpan().lat();
	var sy = bounds.toSpan().lng();
	var cx = bounds.getCenter().lat();
	var cy = bounds.getCenter().lng();
	var urlis = urlis + '&sx=' + sx + '&sy=' + sy + '&cx=' + cx + '&cy=' + cy;
	
	urlis = urlis.substr(1,urlis.length-1);
	$('progress').innerHTML = '<img id="ajax_img" src="http://www.viss.lv/img/ajax_load.gif" />'; //style="position:relative;float:right;"
	
	if(urlis!='') {
		var req = new Request({
			url: PATH_ROOT + "/search_map2.php?l=" + valoda,
			data: urlis,
			method: 'get',
			evalScripts  : true,
			onSuccess: function(html) {
				$('rezultatu_saraksts').innerHTML =  html;
				$('progress').innerHTML = '';				
			},
			onFailure: function() {
				$('rezultatu_saraksts').innerHTML = 'Kļūda savienojumā!';
				$('progress').innerHTML = '';
			}
		});
		req.send();
	}
}

function encode_url(url){
	
	url = url.replace(/\r\n/g,"\n");
	var utftext = "";

	for (var n = 0; n < url.length; n++) {

		var c = url.charCodeAt(n);

		if (c < 128) {
			utftext += String.fromCharCode(c);
		}
		else if((c > 127) && (c < 2048)) {
			utftext += String.fromCharCode((c >> 6) | 192);
			utftext += String.fromCharCode((c & 63) | 128);
		}
		else {
			utftext += String.fromCharCode((c >> 12) | 224);
			utftext += String.fromCharCode(((c >> 6) & 63) | 128);
			utftext += String.fromCharCode((c & 63) | 128);
		}

	}

	return utftext;		
}

function move_to(p) {
	var urlis = '&p='+p;
	var req = new Request({
		url: PATH_ROOT + "/map_info.php?l=" + valoda,
		data: urlis,
		method: 'get',
		evalScripts  : true,
		onSuccess: function(html) {
			markers[p].openInfoWindow(html);
			//coord[p]
		},
		onFailure: function() {
			$('rezultatu_saraksts').innerHTML = 'Kļūda savienojuma!';
			//$('loadgif').setStyle('visibility', 'hidden');
		}
	});
	req.send();
}

function init() {
	resize_blocks();
	load_map();

	var lauki = ['company_id','address_id','keywords_id']; //,'radiuss_id'
	lauki.each(function(item, index){
		$(item).addEvent('keypress', function(event) {
			if(event.key=='enter'){
				aiziet("");
			}
		})
	});
	$('mekl_poga').addEvent('click', function(event) {
		aiziet("");
	})	
	
	/*
	$('radiuss_id').disabled = true;
	$('red_pin_poga').addEvent('click', function(){
		if(red_pin_active) {
			$('red_pin_poga').src = PATH_ROOT + "/img/red_pin.jpg";
			$('radiuss_id').disabled = true;
			$('radiuss_id').value = '';
			$('address_id').disabled = false;		
			red_pin_active = false;
			if(red_pin_marker) {
				map.removeOverlay(red_pin_marker);
				red_pin_marker = '';
			}
		} else {
			$('red_pin_poga').src = PATH_ROOT + "/img/red_pin_back.jpg";
			$('radiuss_id').disabled = false;
			$('address_id').disabled = true;
			$('address_id').value = '';				
			red_pin_active = true;			
		}
	});
	*/
	ras();
}

var markers;

function addMarker(latitude, longitude, pid) {
	/*
	var key = 'p'+pid;
	
	markers[pid] = new GMarker(new GLatLng(latitude, longitude));
	 bounds.extend(new GLatLng(latitude, longitude));
	GEvent.addListener(markers[pid], 'click',function() {
		$(key).setStyle('background-color', '#99B3CC');
		move_to(pid);
		return false;
	});
	map.addOverlay(markers[pid]);
	*/
	
	myLatlng = new google.maps.LatLng(latitude,longitude);
	bounds.extend(myLatlng);
	//markers[pid] = new google.maps.Marker({
	marker = new google.maps.Marker({
    	//map: map,
    	position: myLatlng
	});
	//coord[pid] = myLatlng;
	var fn = markerClickFunction(pid);
    google.maps.event.addListener(marker, 'click', fn);
	
	coord[pid] = marker;
	markers.push(marker);
}

function markerClickFunction(pid) { //pic, latlng
  return function(e) {
	openInfoWindow(pid);
	/*
	e.preventDefault();
    var title = pic.photo_title;
    var url = pic.photo_url;
    var fileurl = pic.photo_file_url;

    var infoHtml = '<div class="info"><h3>' + title +
      '</h3><div class="info-body">' +
      '<a href="' + url + '" target="_blank"><img src="' +
      fileurl + '" class="info-img"/></a></div>' +
      '<a href="http://www.panoramio.com/" target="_blank">' +
      '<img src="http://maps.google.com/intl/en_ALL/mapfiles/' +
      'iw_panoramio.png"/></a><br/>' +
      '<a href="' + pic.owner_url + '" target="_blank">' + pic.owner_name +
      '</a></div></div>';

    speedTest.infoWindow.setContent(infoHtml);
    speedTest.infoWindow.setPosition(latlng);
    speedTest.infoWindow.open(speedTest.map);
	*/
  };
};



function open_adres_marker(id){
	var key = 'g_adr' + id;
	map.panTo(ga_markers[id].getLatLng());
	ga_markers[id].openInfoWindow($(key).innerHTML);
}
	
function add_ga_marker(latitude, longitude, id) {
	var key = 'g_adr' + id;
	
	var blueIcon = new GIcon(G_DEFAULT_ICON);
	blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
	blueIcon.iconSize = new GSize(32, 32);
	markerOptions = { icon:blueIcon };

	ga_markers[id] = new GMarker(new GLatLng(latitude, longitude),markerOptions);
	bounds.extend(new GLatLng(latitude, longitude));
	GEvent.addListener(ga_markers[id], 'click', function() {
		ga_markers[id].openInfoWindow($(key).innerHTML);
		return false;
	});
	map.addOverlay(ga_markers[id]);
}

function open_sepc_mekl(mekl_kods) {
	return false;
}

function show_spec_mekl_menu() {
	$('spec_mekl_izlecosais').innerHTML = 'pirtis<br />telpas svinībām<br />naktsmītnes';
	$('spec_mekl_izlecosais').setStyles({ visibility : 'visible', height : '100px', position : 'absolute', width : '200px', top : '100px',left : '100px'});
	$('spec_mekl_izlecosais').setStyle('z-index', '1000');
}

function show_red_pin(lat,lng) {
	var myIcon = new GIcon(G_DEFAULT_ICON);
	myIcon.image = "http://www.viss.lv/img/red_pin.png";
	myIcon.iconSize = new GSize(32, 32);
	markerOptions = { icon:myIcon, draggable:true };
	marker = new GMarker(new GLatLng(lat,lng),markerOptions);
	GEvent.addListener(marker, "click", function() {
		var html = "Ievadiet radiusu kilometros ap šo punktu un spiediet meklēt.";
		marker.openInfoWindow(html);
	});
	red_pin_marker = marker;
	map.addOverlay(marker);		
}
