var mnAJAX = null;
var timeout;
var timeoutImg;
var loading = "<img src='/img/loading.gif' height='32' width='32' alt=''> Laddar...";
var panoramio = "<img src='/img/panoramio.gif' height='15' width='80' alt=''>";
var theQ = "";
var itemsLoaded2 = 0;

function ajaxInit()
{
	if (mnAJAX == null)
	{
		try
		{    
			// Firefox, Opera 8.0+, Safari    
			mnAJAX = new XMLHttpRequest();    
		}
		catch (e)
		{    
			// Internet Explorer    
			try
			{      
				mnAJAX = new ActiveXObject("Msxml2.XMLHTTP");      
			}
			catch (e)
			{      
				try
				{        
					mnAJAX = new ActiveXObject("Microsoft.XMLHTTP");        
				}
				catch (e)
				{        
					return null;        
				}	      
			}    
		}
	}
	else if (mnAJAX.readyState != 0)
	{
		mnAJAX.abort();
	}
	return mnAJAX;
}
function ajaxObject(url, obj, cb) 
{
	var that=this;      
	this.updating = false;
	this.update = function(passData,postMethod) 
	{ 
		if (that.updating==true) 
		{ 
			return false; 
		}
		that.updating=true;                       
		var AJAX = ajaxInit();                    
		if (AJAX == null) 
		{                             
			return false;                               
		} 
		else 
		{
			AJAX.onreadystatechange = function() 
			{  
				if (AJAX.readyState==4) 
				{             
					that.updating=false;
					if (that.object != null)
					{
						that.object.innerHTML = AJAX.responseText;
					}                
					else
					{
						that.callback(AJAX.responseText,AJAX.status,AJAX.responseXML);
					}        
					delete AJAX;                                         
				}                                                      
			}  
			
			var timestamp = new Date();                              
			if (postMethod=='POST') 
			{
				var uri=urlCall;
				AJAX.open("POST", uri, true);
				AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
				AJAX.setRequestHeader("Content-length", passData.length);
				AJAX.setRequestHeader("Connection", "close");
				AJAX.send(passData);
			} 
			else 
			{
				var uri=urlCall+'?'+passData;
				AJAX.open("GET", uri, true);                             
				AJAX.send(null);                                         
			}              
			return true;                                             
		}                                                                           
	}
	var urlCall = url;
	this.object = obj; 
	this.callback = cb || function () { };
} 


function ajaxPostMe(url,form,target,cb)
{
	var params = ajaxGetParams(form);
	var f = new ajaxObject(url,target,cb);
	f.update(params,'POST');
}
function ajaxGetMe(url,params,target,cb)
{
	var f = new ajaxObject(url,target,cb);
	f.update(params,'GET');
}

function toggleMapSize()
{
  e = $("map");
  c = $("mapc");
  t = $("mapt");
  if (e.style.height.split('px')[0]<500) 
  {
    e.style.width = '100%';
    e.style.height = 500 + 'px';
    c.style.textAlign = 'center';
    t.innerHTML = "V&auml;xla till liten karta";
    reloadMap(1);
  } 
  else 
  {
    e.style.width = '50%';
    e.style.height = 250 + 'px';
    c.style.textAlign = 'left';
    t.innerHTML = "V&auml;xla till stor karta";
    reloadMap(0);
  }
}

function setMode(x,s)
{
  if (!s) s=0;
  var nav = $("navdiv");
	var link1 = $("anav1");
	var link2 = $("anav2");
	var link3 = $("anav3");
	var mlink1 = $("menulink1");
	var mlink2 = $("menulink2");
	var mlink3 = $("menulink3");
	var item1 = $("item1");
	var item2 = $("item2");
	var item3 = $("item3");
	if (x == 2)
	{
	  nav.className = 'navbar3';
	  link1.className = 'navunsel';
	  link2.className = 'navsel'
	  link3.className = 'navunsel';
	  mlink1.className = 'menubarUnsel';
	  mlink2.className = 'menubar3';
	  mlink3.className = 'menubarUnsel';
	  item1.style.display = 'none';
	  item2.style.display = 'block';
	  item3.style.display = 'none';
	  if (!itemsLoaded2)
	  {
      loadItems2();
      itemsLoaded2 = 1;
	  }
	}
  else if (x == 3)
	{
	  nav.className = 'navbar2';
	  link1.className = 'navunsel';
	  link2.className = 'navunsel'
	  link3.className = 'navsel';
	  mlink1.className = 'menubarUnsel';
	  mlink2.className = 'menubarUnsel';
	  mlink3.className = 'menubar2';
	  item1.style.display = 'none';
	  item2.style.display = 'none';
	  item3.style.display = 'block';
	}
	else
	{
	  nav.className = 'navbar';
	  link1.className = 'navsel';
	  link2.className = 'navunsel'
	  link3.className = 'navunsel';
	  mlink1.className = 'menubar';
	  mlink2.className = 'menubarUnsel';
	  mlink3.className = 'menubarUnsel';
	  item1.style.display = 'block';
	  item2.style.display = 'none';
	  item3.style.display = 'none';
	}
}

var gotoPicMode = 0;

function zoomPic(radius)
{
  gotoPicMode = 0;
  lng = $("allimg").lng.value;
  lat = $("allimg").lat.value;
  $("imgList").innerHTML = loading;
	var param = 'lng='+lng+'&lat='+lat+'&radius='+radius+'&start=0';
	ajaxGetMe('http://www.geografi.nu/panoramio.php',param,null,gotoPicDone); 
}

function resetPic(lng,lat,radius,start)
{
  gotoPicMode = 0;
  $("imgList").innerHTML = loading;
	var param = 'lng='+lng+'&lat='+lat+'&radius='+radius+'&start=0';
	ajaxGetMe('http://www.geografi.nu/panoramio.php',param,null,gotoPicDone); 
}

function gotoPic(start,mode)
{ 
  if (mode != 0)
  {
    gotoPicMode = mode;
    $("imgList").style.display = 'block';
    $("imgWrap").style.display = 'none';
  }
  else
  {
    gotoPicMode = 0;
  }
  lng = $("allimg").lng.value;
  lat = $("allimg").lat.value;
  radius = $("allimg").radius.value;
  $("imgList").innerHTML = loading;
	var param = 'lng='+lng+'&lat='+lat+'&radius='+radius+'&start='+start;
	ajaxGetMe('http://www.geografi.nu/panoramio.php',param,null,gotoPicDone); 
}

function gotoPicDone(text,status,xml)
{
  if (gotoPicMode != 0)
  {
    $("imgList").style.display = 'none';
  }
  $("imgList").innerHTML = text;
  if (gotoPicMode == 1)
  {
    setPic($("allimg").first.value);
  }
  else if (gotoPicMode == 2)
  {
    setPic($("allimg").last.value);
  }
}

function setPic(i)
{
  form = $("allimg");
  src = eval("form.src_" + i + ".value");
  id = eval("form.id_" + i + ".value");
  ownerid = eval("form.owner_id_" + i + ".value");
  width = eval("form.width_" + i + ".value");
  height = eval("form.height_" + i + ".value");
  ownername = eval("form.owner_name_" + i + ".value");
  phototitle = eval("form.photo_title_" + i + ".value");
  showPic(i,src,id,ownerid,width,height,ownername,phototitle);
}

function stripslashes(str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\\\/g,'\\');
str=str.replace(/\\0/g,'\0');
return str;
}

function showPic(i,src,id,owner_id,width,height,owner_name,photo_title)
{
  i = parseInt(i);
  first = parseInt($("allimg").first.value);
  last = parseInt($("allimg").last.value);
  total = parseInt($("allimg").total.value);
  thisimage = i + 1;
  nextstring = "";
  prevstring = "";
  if ((i-1) >= first)
  {
    prev = i - 1;
    prevstring = "<a href='javascript:setPic("+prev+")'>&laquo; F&ouml;rra</a> "
  }
  else if ((first-10) >= 0)
  {
    start = first - 10;
    prevstring = "<a href='javascript:gotoPic("+start+",2)'>&laquo; F&ouml;rra</a> "
  }
  if ((i+1) <= last) 
  {
    next = i + 1;
    nextstring = " <a href='javascript:setPic("+next+")'>N&auml;sta &raquo;</a>"
  }
  else if ((first+10) < total)
  {
    start = first+10;
    nextstring = " <a href='javascript:gotoPic("+start+",1)'>N&auml;sta &raquo;</a>"
  }
  
  if (photo_title == "")
  {
    photo_title = "Titel saknas";
  }
  else
  {
    photo_title = stripslashes(photo_title);
  }
  $("imgTitle").innerHTML = prevstring + "<span>#" + thisimage + "</span> " + photo_title + " " + nextstring;
  $("imgOther").innerHTML = "Foto fr&aring;n <a target='_blank' href='http://www.panoramio.com'>"+panoramio+"</a>. Fotograf: <a target='_blank' href='http://www.panoramio.com/user/" + owner_id + "'>" + owner_name + "</a><br>Alla foton fr&aring;n Panoramio &auml;r under copyright av fotografen.<br>Orginalbilden hittar du <a target='_blank' href='http://www.panoramio.com/photo/"+id+"'>h&auml;r</a>.";
  image = $("imgPic");
  image.src = src;
  image.width = width;
  image.height = height; 
  $("imgWrap").style.display = 'block';
  $("imgList").style.display = 'none';
}

function closePic()
{
  $("imgList").style.display = 'block';
  $("imgWrap").style.display = 'none';
}

function $(s)
{
	return document.getElementById(s);
} 

/* Google stuff */
function loadItems2() 
{          
  var sc2 = new google.search.SearchControl();
  sc2.setResultSetSize(google.search.Search.LARGE_RESULTSET);
  sc2.setNoResultsString("Hittade inga relaterade videos");
  sc2v = new google.search.VideoSearch();
  sc2v.setResultOrder(google.search.Search.ORDER_BY_RELEVANCE);
  sc2.addSearcher(sc2v);
  
  sc2i = new google.search.ImageSearch(); 
  //sc2i.setResultOrder(google.search.Search.ORDER_BY_DATE);
  sc2.addSearcher(sc2i);
  
  sc2n = new google.search.NewsSearch();
  sc2n.setResultOrder(google.search.Search.ORDER_BY_DATE); 
  sc2.addSearcher(sc2n);
  
  sc2b = new google.search.BlogSearch();
  sc2b.setResultOrder(google.search.Search.ORDER_BY_DATE); 
  sc2.addSearcher(sc2b);  

  var do2 = new GdrawOptions();
  do2.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);                  
  sc2.draw($("item2"),do2);           
  sc2.execute(theQ);     
} 


var map = null;
var mlat;
var mlng;
var mz;
function init(lat,lng,z,q) 
{
  theQ = q;
  mlat = lat;
  mlng = lng;
  mz = z;
  reloadMap(1);
}
 
function reloadMap(large)
{
  if (GBrowserIsCompatible())
  {
    if (map != null)
    {
      GUnload();
    }
    map = new GMap2($("map"));
    map.setCenter(new GLatLng(mlat, mlng), mz);
    map.setMapType(G_HYBRID_MAP);
    //map.enableDoubleClickZoom();
    //map.enableScrollWheelZoom();
    map.addControl(new GMapTypeControl());
    if (large==1)
    {
      map.addControl(new GLargeMapControl());
    }
    else
    {
      map.addControl(new GSmallMapControl());
    }
  }
} 
       

