var maxLength = 300;
var alerted = false;

var marker;
var geocoder;
var alreadyMarked = false;
var wwwchecked = false;

function taLimit() {
	if (document.ettan.beskrivning.value.length==maxLength && !alerted) {
		alert('Du kan ej använda fler än 300 tecken!')
		alerted = true;
	}
	return true;
}

function taCount() {
	if (document.ettan.beskrivning.value.length>maxLength) document.ettan.beskrivning.value=document.ettan.beskrivning.value.substring(0,maxLength);
	document.getElementById('teckenKvar').innerHTML = maxLength - document.ettan.beskrivning.value.length
}

function storeLatLong(lat,lng)
{
	document.ettan.lat.value = lat;
	document.ettan.lng.value = lng;
}

function kollaWWWruta(x)
{
	if (!wwwchecked)
	{
		alert("För att kunna ange information i detta fält måste ni klicka i rutan ''Vi vill ha länk till vår hemsida!'' ovan. Mer information om detta finns i rutan till höger");
		document.ettan.foretagsnamn.focus();
		document.ettan.foretagsnamn.blur();
	}
}

function linkCheckCheck(x){
	if (x.checked == false){
		document.ettan.lank.value='';
		document.ettan.epost.value='';
		document.ettan.beskrivning.value='';
		
		document.ettan.lank.style.backgroundColor = "#CCCCCC";
		document.ettan.epost.style.backgroundColor = "#CCCCCC";
		document.ettan.beskrivning.style.backgroundColor = "#CCCCCC";
		
		document.ettan.lank.tabIndex = 1000;
		document.ettan.epost.tabIndex = 1001;
		document.ettan.beskrivning.tabIndex = 1002;
		
		taCount();
		
		GUnload();
		
		storeLatLong('0','0');
		
		alreadyMarked = false;
		wwwchecked = false;
		
		document.getElementById("kartinstruktioner").style.display='none';
		document.getElementById("googlemap").style.display='none';
	}
	else
	{
		document.ettan.lank.style.backgroundColor = "#FFFFFF";
		document.ettan.epost.style.backgroundColor = "#FFFFFF";
		document.ettan.beskrivning.style.backgroundColor = "#FFFFFF";
		
		document.ettan.lank.tabIndex = 12;
		document.ettan.epost.tabIndex = 13;
		document.ettan.beskrivning.tabIndex = 14;
		
		document.getElementById("googlemap").style.display='block';
		document.getElementById("kartinstruktioner").style.display='block';
		
		GUnload();
		loadGMap();
		
		wwwchecked = true;
		
		addressToMap(false);
	
		document.ettan.lank.focus();
	}
}

function merLankInfo(){
	window.open('/medverkan_pop/', 'medverkan', 'width=600,height=250');
}

function loadGMap()
{
	if (GBrowserIsCompatible())
	{
		map = new GMap2(document.getElementById("googlemap"));
		geocoder = new GClientGeocoder();
		
		GEvent.addListener(
							map, "click", function(overlay, point)
							{
								if (!alreadyMarked)
								{
									if (!overlay)
									{
										marker = new GMarker(point, {draggable: true,bouncy:false});
																									
										GEvent.addListener(
											marker, "dragend", function()
											{
												storeLatLong(marker.getPoint().lat(), marker.getPoint().lng());
											}
										);
				
										map.addOverlay(marker);
										alreadyMarked = true;
									}
								}
								else
								{
									marker.setPoint(point);
								}
								storeLatLong(point.lat(), point.lng());
							}
						);
					
					
		var startPunkt = new GLatLng(61.98026726504401, 15.4248046875);
		
		map.setCenter(startPunkt, 5);
		map.addControl(new GSmallMapControl());
	}
}

function addressToMap(showError)
{
	var f = document.ettan;
	
	if (f.adress.value == "" && f.padress.value == "") return;
	
	
	var address = f.adress.value + ', ' + f.padress.value + ', Sweden';
	
	geocoder.getLatLng(
		address,
		function(point)
		{
			if ((!point) && showError)
			{
				alert("Kunde inte hitta kartposition för " + f.adress.value + ', ' + f.padress.value + '\nVänligen kontrollera din adress, eller markera manuellt på kartan.');
			}
			else
			{
				storeLatLong(point.lat(), point.lng());
			
				map.setCenter(point, 13);
				
				if (alreadyMarked == false)
				{
					marker = new GMarker(point, {draggable: true,bouncy:false});
					GEvent.addListener(
						marker, "dragend", function()
						{
							storeLatLong(marker.getPoint().lat(), marker.getPoint().lng());
						}
					);
					map.addOverlay(marker);
					alreadyMarked = true;
				}
				else
				{
					marker.setPoint(point);	
				}
			}
		}
	);
}

function kollaForm(x)
{
	if (x.foretagsnamn.value == "" || x.fabrikatutfor.value == "" || x.tel.value == "")
	{
		alert("Ange information i alla obligatoriska fält.");
		return false;
	}
	return true;
}
