var points = new Array();
var s_Lovsprickning;
var s_Blommar;
var s_MognaFrukter;
var s_Frospridning;
var s_Hostlov;
var s_Lovfallning;

var numObs; 
var s_phase;

function get(id){
	return document.getElementById(id);
}

// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};

function commonSetup(){
	fadeImg();
		
	if(get('s_phase') != null){//means we are in simplesearch mode
		s_phase = new Checkbox(get('s_phase'));
	}else if(get('s_Lovsprickning')){
		s_Lovsprickning = new Checkbox(get('s_Lovsprickning'));
		s_Blommar = new Checkbox(get('s_Blommar'));
		s_MognaFrukter = new Checkbox(get('s_Mogna frukter'));
		s_Frospridning = new Checkbox(get('s_Frospridning'));
		s_Hostlov = new Checkbox(get('s_Hostlov'));
		s_Lovfallning = new Checkbox(get('s_Lovfallning'));
		
		var myMenu = get('my_menu');
	}
	
	$(".date").each(function(){
		new calDateObj(this);
	});
}
var myObservations;
function setup(){
	loadmap();
	commonSetup();
	myObservations = new Observations();
	myPhenology = new Phenology(get('phenology'));	
	//get('speciesCnameBlock').onmouseout = closeSearch;
	if(get('blad')){
	  var blad = new Checkbox(get('blad'));
	  var frospridning = new Checkbox(get('frospridning'));
	  var fruit = new Checkbox(get('fruit'));
	  var flower = new Checkbox(get('flower'));
	}
}

 function searchSetup(){
	 	commonSetup();
		genPoints();
		
		numObs = markers.length;
		slider[1]=new Object();
		slider[1].min=0;
		slider[1].max=numObs-1;
		slider[1].val=numObs-1;
		slider[1].onchange=function(val, box){setBoxValue(val, box)};
		
		attachSliderEvents();
		addAnEvent(document, 'mousemove', sliderMouseMove);
		
		currentPoint = numObs-1;
		if(get('startDate')){
			get('startDate').innerHTML = observations[0].date;
			get('endDate').innerHTML =  observations[observations.length -1].date;
		}
	 }

var params;

function DropList(list, initialViewed){
	var _self= this;
	_self.list = $("#"+list);
	_self.items = $(" > li", _self.list);
	_self.button = document.createElement("div");
	_self.button.className = "menudown";

	if(_self.items.length > initialViewed){
	_self.wrapper = $(_self.items[initialViewed-1]).nextAll("li").wrapAll(document.createElement("div"));
	$(_self.wrapper).hide();
	$(_self.list).append(_self.button);

	$(_self.button).click(function(){
		$(_self.wrapper).slideToggle("fast");
		if(_self.button.className == "menudown"){
			_self.button.className = "menuup";
		}else
			_self.button.className = "menudown";
	});
	
	$(_self.list).hover(function(){return;}, function(){
			if($(_self.wrapper).is(":visible")){
				$(_self.wrapper).slideUp("fast");
				_self.button.className = "menudown";
			}
		});
	}
}
function setOpacity(value) {
	var elem = document.getElementById(params[0]);
	//alert(value);
	if(elem){
		elem.style.opacity = value / 10;
		elem.style.filter = 'alpha(opacity=' + value * 10 + ')';
	}
}

function fadeInMyPopup(elem) {
	//alert('fadeIn');
	params = new Array();
 	params[0] = elem;
	
	for( var i = 0 ; i <= 100 ; i++ ){
   		setTimeout('setOpacity('+ (i / 15) + ')', 2 * i );
 	}
}

function fadeOutMyPopup(elem) {
	params = new Array();
 	params[0] = elem;
 for( var i = 0 ; i <= 100 ; i++ ) {
   setTimeout( 'setOpacity(' + (( 100 - i ) / 11) + ')' , 2 * i );
 }

	//setTimeout(function() {document.getElementsByTagName('body')[0].removeChild(document.getElementById(elem))}, 808);
 setTimeout(function() {closePopup(elem)}, 202);
}

function fadeOutAndRemove(elem) {
	params = new Array();
 	params[0] = elem;
 for( var i = 0 ; i <= 100 ; i++ ) {
   setTimeout( 'setOpacity(' + (( 100 - i ) / 11) + ')' , 2 * i );
 }

	setTimeout(function() {document.getElementsByTagName('body')[0].removeChild(document.getElementById(elem))}, 202);
 //closePopup(elem);
}

function closePopup(ele){
	elem = document.getElementById(ele);
	if(elem)
		elem.style.display = "none";
}

function createSel(elem, from, to){
	var months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
	var e = document.getElementById(elem); 
	var d = new Date();
	
	for(var i=from; i < to; i++){
		var opt = document.createElement("option");
		opt.value = i;
		opt.appendChild(document.createTextNode(i));
		e.appendChild(opt);
	}
	
	//alert(d.getDate());
	if(elem == "day"){
		e.value = d.getDate();
	}else
	if(elem == "month")
		e.selectedIndex = d.getMonth() + 1;	
}



//creates new rows in the table 
//takes a select element specifying how many rows to add or delete from the table and the table to add the rows to 
function createRow(selElem, tableElem){
	var selValue = selElem.value;
	var table = document.getElementById(tableElem);
	var rows = table.rows.length;
	
	//alert(selValue + ' ' + rows);
	if(selValue > rows){
		//alert('in if');
		for(var index = rows; index < selValue; index++){
			//alert(index);
			createObservationBlock(tableElem);
		}
	}else{
		for(var index = (rows-1); index >= selValue; index--){
			table.deleteRow(index);
		}
	}
}

function windowSize(dimension) {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  
  if(dimension == "width")
  	return myWidth;
  else if (dimension == "height")
  	return myHeight;
  else
  	return 0;
}

function dim(){
	if(document.getElementById('dim')) return;
	var height = document.getElementsByTagName('body')[0].scrollHeight;
	var width = document.getElementsByTagName('body')[0].scrollWidth;
	var dim = document.createElement('div');
	dim.id = 'dim';
	dim.className = 'dim';
	dim.style.width = width + 'px';
	dim.appendChild(document.createTextNode(''));
	dim.style.opacity = 0;
	dim.style.filter = 'alpha(opacity=0)';
	
	document.getElementsByTagName('body')[0].appendChild(dim);
	dim.style.display = 'block'
	fadeInMyPopup('dim');
	hideSelect();
}


//phenology object constructor
function Phenology(container){
	
	var _self = this;
	_self.container = container;
	_self.lists = container.getElementsByTagName('ul');
	_self.boxedList = new Array();
	
	for(var index = 0; index < _self.lists.length; index++){
		_self.boxedList.push(new Checkbox(_self.lists[index]));
	}
	
	_self.values = function(){
		var rtn = new Array();
		
		for(var index = 0; index < _self.lists.length; index++){
			var temp = _self.boxedList[index].value();
			
			for(var i = 0; i < temp.length; i++){
				rtn.push(temp[i]);
			}
		}
		
		return rtn;
	}
	
	_self.tostring = function(){
		var rtn = "";
		var values = _self.values();
		for(var index = 0; index < values.length; index++){
			
			rtn += values[index] + ";";
		}
		
		return rtn;
		
	}
	
	_self.clear = function(){
		for(var index = 0; index < _self.lists.length; index++){
			_self.boxedList[index].clear();
		}
	}
	
	_self.setValues =  function(values){
		//alert('called in main obj');
		for(var index = 0; index < _self.boxedList.length; index++){
			_self.boxedList[index].setValue(values);
		}
	}
}

/************************************************** Checkbox constructor ************************************************************/
//takes a container element with 2 checkbox input elements
function Checkbox(container){
	
	var _self = this;
	_self.container = container;
	
	_self.boxes = _self.container.getElementsByTagName('input');

	_self.id = _self.container.id;
	
	_self.className = _self.container.className;
	
	//set onclick functionality for checkboxes so only one box at a time can be checked
	
	
	if(_self.id != 's_Lovsprickning' && _self.id != 's_Mogna frukter' && _self.id != 's_Blommar' && _self.id != 's_Frospridning' && _self.id != 's_Hostlov&&' && _self.id != 's_Lovfallning' && _self.id != 's_phase')
	for(var index = 0; index < _self.boxes.length; index++){
		
		_self.boxes[index].onclick = function(){ 
											
											for(var i = 0; i < _self.boxes.length; i++){
												if(_self.boxes[i] != this)
													_self.boxes[i].checked = false;
											}
									};
								
	}

	if(_self.id == 'blad'){
		for(var index = 1; index < _self.boxes.length; index++){
			_self.boxes[index].onclick = function(){
										if(_self.boxes[0].checked)
											_self.boxes[0].checked = false;
									  }
		}
	}
	/*
	if(_self.id == 'leaf'){
		for(var index = 1; index < _self.boxes.length; index++){
			_self.boxes[index].onclick = function(){
										if(_self.boxes[0].checked)
											_self.boxes[0].checked = false;
									  }
		}
	}
	
	if(_self.id == 'fruit'){
		for(var index = 0; index < _self.boxes.length; index++){
			if(index != 1)
				_self.boxes[index].onclick = function(){
										  	if(_self.boxes[1].checked)
												_self.boxes[1].checked = false;
										  };
		}
	}
	*/
	
	

	_self.value = function(){
					var rtn = new Array();
					
					for(var index = 0; index < _self.boxes.length; index++){
						if(_self.boxes[index].checked)
							rtn.push(_self.boxes[index].value);
					}
					
					return rtn;
				  }
				  
	_self.clear = function(){
		for(var index = 0; index < _self.boxes.length; index++){
			_self.boxes[index].checked = false;
		}
	}			  
			  
				  
	_self.setValue = function(values){
						for(var index = 0; index < values.length; index++){
							for(var i = 0; i < _self.boxes.length; i++){
								if(values[index] == _self.boxes[i].value){
									_self.boxes[i].checked = true;
									break;
								}
							}
						}
					   
					 }		
					 
	_self.checkAll = function(){
					 	for(var index = 0; index < _self.boxes.length; index++){
							_self.boxes[index].checked = true;
						}
					 }				 
				 
}

function searchCheck(list){
	
	var myList = get(list);
	
	if(get('s_phase') == null){//means we have a logged in user with advanced search options
		if((get('searchObs').value == '') && (get('searchPID').value == '')){
			return false;
		}
	}
	
	if((!myList.hasChildNodes()) ){
		return false;
	}
	else{
		return true;
	}
}

function doSearch(list){
	if(searchCheck(list)){
		
	var phases = '';
	var species = '';
	var dateRange = '';
	var observer = '';
	var projId = '';
	
	var myList = get(list);
	var lis = myList.getElementsByTagName('li');
	
	var url = "searchresults.php?species=";
	
	if(myList.hasChildNodes()){
			var url = "searchresults.php?species=";
			
			for(var index = 0; index < lis.length; index++){
				var txt = lis[index].firstChild.nodeValue.split(' - ');
				if(txt.length == 1)
					species += '"' + txt[0] + '",';
				else		
					species += '"' + txt[1] + '",'; 
			}
	}
	
	//if we are only doing a simple search we just search one checkbox set
	if(s_phase == null && get('s_phase') != null)
		s_phase = new Checkbox(get('s_phase'));
	
	if(s_phase != null){
		if(s_phase.value().length > 0){
			temp = s_phase.value();	
			for(i=0;i<temp.length;i++)
				phases += "'" + temp[i] + "',"; 
		}
	}else{

		//put together the string of phases that the user wants to search
		if(s_Lovsprickning.value().length > 0){
			temp = s_Lovsprickning.value();	
			for(i=0;i<temp.length;i++)
				phases += "'" + temp[i] + "',"; 
		}
		if(s_Blommar.value().length > 0){
		  temp = s_Blommar.value();
		  for(i=0;i<temp.length;i++)
				phases += "'" + temp[i] + "',"; 
		}
		if(s_MognaFrukter.value().length > 0){
		  temp = s_MognaFrukter.value();
		  for(i=0;i<temp.length;i++)
				phases += "'" + temp[i] + "',"; 
		}
		if(s_Frospridning.value().length > 0){
		  temp = s_Frospridning.value();
		  for(i=0;i<temp.length;i++)
				phases += "'" + temp[i] + "',"; 
		}
		if(s_Lovfallning.value().length > 0){
		  temp = s_Lovfallning.value();
		  for(i=0;i<temp.length;i++)
				phases += "'" + temp[i] + "',"; 
		}
		if(s_Hostlov.value().length > 0){
		  temp = s_Hostlov.value();
		  for(i=0;i<temp.length;i++)
				phases += "'" + temp[i] + "',"; 
		}

		observer = get('searchObs').value;
		projId = get('searchPID').value;	
	}
	
	 if(phases != '')
		phases = phases.substr(0, phases.length - 1);
	
	dateRange = get('fromYear').value+'-'+(get('fromMonth').selectedIndex+1)+'-'+get('fromDay').value+','+get('toYear').value+'-'+(get('toMonth').selectedIndex+1)+'-'+get('toDay').value; 
	
		
		species = species.substr(0, species.length - 1);
		url += species+'&phases=' + phases +'&dateRange='+dateRange+'&observer='+observer+'&projId='+projId+"&source=msrch";	
		window.location = url;
	}
}

function oneclick(species, phases){
	var url = "searchresults.php?species=";
	url += species+'&phases=' + phases +'&dateRange=';
	window.location = url;
}


//Global vars; can we get rid of these and make it safer!!!!
var target;
var tbox;
var spec = new Array();

function getSuggestion(textBox, display, url, key){
	var text = textBox.value;
	var URL = url+".php";
	target = get(display);
	//global var, I need to do it better!!!!!
	tBox = textBox;
	
	//if there is no text in the box, i.e. the user has deleted the text he/she input, then we need to get rid of the list that we are left showing...
	if(text == "" || text.length < 2){
		target.style.display = 'none';
		if(get('my_menu')){
			get('my_menu').style.opacity = 1;
			get('my_menu').style.filter = 'alpha(opacity=' +  100 + ')';
		}
		showSelect();
		return;
	}
	
	$.post(URL, "species="+text+"&key="+key, showResults);
	
}

//showresults takes a string of species delimited by a ';' that has been returned by a call to the server
//and formats it into a list
function showResults(string){
	
	if(string == ''){	
		showSelect();
		return;
	}
	
	var myArray = string.split(";");
	var list = document.createElement('ul');
	list.style.overflow = 'auto';
		
	count = myArray.length;	
	$(list).css({'font-size':'8pt', 'height':((count*12)+15), 'background': ''});
	while (target.childNodes.length > 0) {
               target.removeChild(target.firstChild);
	}
	
	for(var index = 0; index < count; index++){
		if(myArray[index] !=''){
		  var lItem = document.createElement('li');
		  var a = document.createElement('a');
		  var text = document.createTextNode(myArray[index]);
		  spec.push(text);
			a.appendChild(text);
		  if(tBox.id == 'searchSpecies')
			a.onclick = function(){selectName(this)};
		  else{
			a.onclick = function(){selectCommonLatin(this)};
		  }
		  a.setAttribute("href","#");
			
		  lItem.appendChild(a);
			list.appendChild(lItem);
		}
	}

	target.appendChild(list);
	target.style.display = 'block';
	target.style.position = 'absolute';
	
	if(tBox.id == 'searchSpecies'){
		get('my_menu').style.opacity = 2 / 10;
		get('my_menu').style.filter = 'alpha(opacity=' +  20 + ')';
		hideSelect();
	}
}

function selectName(name){
	tBox.value = name.firstChild.nodeValue;
	addSpecies(tBox);
	target.style.display = 'none';

	get('my_menu').style.opacity = 1;
	get('my_menu').style.filter = 'alpha(opacity=' +  100 + ')';
	showSelect();
	tBox.value = "Välj art";
	
}

function selectCommonLatin(text){
	var names = text.firstChild.nodeValue.split(' - ');
	if(names.length == 1){
		get('species').value = text.firstChild.nodeValue;
		get('latinName').value = text.firstChild.nodeValue;
	}else{
		get('species').value = names[0];
		get('latinName').value = names[1];
	}
	
	get('dbResultsLatin').style.display = 'none';
	get('dbResultsCommon').style.display = 'none';
		
}

function addSpecies(id){
	if(id.value != ''){
		var list = get('speciesList');
		
		var lItem = document.createElement('li');
		var txt  = document.createTextNode(id.value);
	
		lItem.appendChild(txt);
		list.appendChild(lItem);
		list.parentNode.style.display = 'block';
		
		//t = getStyleById('leftcolmain', 'height');
		//alert('height: '+ t);
		//alert(get('leftcolmain').style.height);
		//alert(get('maincontent').style.height);
		//if(get('leftcolmain').style.height > get('maincontent').style.height){
			//get('maincontent').style.height = (get('leftcolmain').style.height + 20);
			//}
		//grow('leftcolmain', 'rightcolmain', 'height');
		
		id.value = '';
	}
}

function showMe(id){
		get(id).style.display = 'block';
	}
function hideMe(id){
		get(id).style.display = "none";
	}
	
	
function fadeImg(){
	var imgs = document.getElementsByTagName('img');
	
	for(var i = 0; i < imgs.length; i++){
		if(imgs[i].className == 'fade'){
			
			imgs[i].style.opacity = 3 / 10;
			imgs[i].style.filter = 'alpha(opacity=' +  30 + ')';
		}
	}
}

function fade(elem, val){
	elem.style.opacity = val / 10;
	elem.style.filter = 'alpha(opacity=' +  (val*10) + ')';
}	

function coords(e){
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	// posx and posy contain the mouse position relative to the document
	// Do something with this information
	
	//alert(posx + ', ' + posy);
	return [posx, posy];
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function closeSearch(e){
	//alert('hi');
	var elem = get('dbResultsCommon');
	var xy = coords(e);
	var x = xy[0];
	var y = xy[1];
	
	var divPos = findPos(elem);
	
	var left = divPos[0];
	var top = divPos[1];
	var right = left + elem.offsetWidth;
	var bottom = top + elem.offsetHeight;
		
	if(x >= left-10 && x <= right+10 && y <= bottom+10 && y >= top-10)
		return;
	else	
		setTimeout(function(){elem.style.display = 'none'}, 800);
	
}

function wipe(elem, defvalue){
	if(elem.value == defvalue)
	  elem.value = "";
}

function riset(elem, value){
	if(elem.value == '')
		elem.value = value;
}

function oexplain(){
	dim();
	new Popup(get("obsInfo"), function(){fadeOutAndRemove('dim'); showSelect()});
	get("obsInfo").style.display = "block";
}

function pexplain(){
	dim();
	new Popup(new pInfo(), function(){fadeOutAndRemove('dim'); showSelect()});
}

function oapexplain(){
	dim();
	new Popup(get("opaccessPinfo"), function(){fadeOutAndRemove('dim'); showSelect()});
	get("opaccessPinfo").style.display = "block";
}

function llexplain(){
	dim();
	new Popup(get("latlonInfo"), function(){fadeOutAndRemove('dim'); showSelect()});
	get("latlonInfo").style.display = "block";
}

function sexplain(){
	dim();
	new Popup(get("searchInfo"), function(){fadeOutAndRemove('dim'); showSelect()});
	get("searchInfo").style.display= "block";
	
}

function multiexplain(){
	dim();
	new Popup(get("multiulInfo"), function(){fadeOutAndRemove('dim'); showSelect()});
	get("multiulInfo").style.display= "block";
	
}

function searchexplain(){
	dim();
	new Popup(get("search_info"), function(){fadeOutAndRemove('dim'); showSelect()});
	get("search_info").style.display= "block";
}

function hideSelect(){
	var sels = document.getElementsByTagName('body')[0].getElementsByTagName('select');
	for(index = 0; index < sels.length; index++){
		sels[index].style.visibility = 'hidden';
	}
}

function showSelect(){
	var sels = document.getElementsByTagName('body')[0].getElementsByTagName('select');
	for(index = 0; index < sels.length; index++){
		sels[index].style.visibility = 'visible';
	}
}

function loginWindow(){
	new Popup(loginContent(), function(){fadeOutAndRemove('dim'); showSelect()}, 'logPop');
	dim();
}

function logout(){
	var URL = "backend/logout.php";
	var request = new Request();
	request.setCallback(function(response){
								 if(response == 1){ 
								 	window.location = "index.php";
								 } 
						});
	request.doRequest('GET', URL, true);
}


function insertName(cname, lname){
	if(get("species") && get("latinName")){
		get("species").value = cname;
		get("latinName").value= lname;
	}
}

function futureDate(){
	var months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec');
	var date = new Date();
	var today = new Date();
	var count = 0;
	for(var i = 0; i < months.length; i++, count++){
		if(months[i] == get('month').value){
			break;
		}
	}
		
	date.setFullYear(get('year').value, count, get('day').value);
	if(date > today)
		return true;
	else
		return false;
}

function checkDate(){
	if(futureDate()){
		alert("Felaktigt datum. Kontrollera din rapport.");
	}	
}


/********* Favorite Locations functions ********/
function showLatLon(sel){
	var value = sel.value.split(" : ");
	get('lat').value = value[0];
	get('long').value = value[1];
	$('#location_name').val(value[2]);
}

function showNewLocations(response){
	if(response == ""){
		new Popup(new TYmap(), function(){fadeOutAndRemove('dim'); showSelect();}); 
		myObservations.observations = new Array();
		return;
	}
	//alert(response);
	var str = response.split(";");
	var div = document.createElement("div");
	var tbl = document.createElement("table");
	var tbdy = document.createElement("tbody");
//	tbody.style.textAlign = "center";
	var thd = document.createElement("thead");
	thd.style.textAlign = "center";
	//var tr = document.createElement("tr");
	var th = document.createElement("th");
	thd.appendChild(th);
	th = document.createElement("th");
	var txt = document.createTextNode("Namn");
	th.appendChild(txt);
	thd.appendChild(th);
	th = document.createElement("th");
	txt = document.createTextNode("Latitud");
	th.appendChild(txt);
	thd.appendChild(th);
	th = document.createElement("th");
	txt = document.createTextNode("Longitud");
	th.appendChild(txt);
	thd.appendChild(th);	
	tbl.appendChild(thd);
	
	for(var i = 0; i < str.length; i++){//alert(str[i]);
		var tr = document.createElement("tr");
		var td = document.createElement("td");
		var cbox = document.createElement("input");
		var coords = str[i].split(":");
		cbox.type = "checkbox";
		cbox.checked = true;
		td.appendChild(cbox);
		tr.appendChild(td);
		td = document.createElement("td");
		var tbox = document.createElement("input");
		tbox.type = "text";
		tbox.value = coords[2];
		td.appendChild(tbox);
		tr.appendChild(td);
		td = document.createElement("td");
		var span = document.createElement("span");
		span.innerHTML = coords[0];
		td.appendChild(span);
		tr.appendChild(td);
		td = document.createElement("td");
		span = document.createElement("span");
		span.innerHTML = coords[1];
		td.appendChild(span);
		tr.appendChild(td);
		tbdy.appendChild(tr);
	}
	var tr = document.createElement("tr");
	var td = document.createElement("td");
	var cancel = document.createElement("input");
	cancel.type = "button";
	cancel.value = "Avbrvt";
	
	td.appendChild(cancel);
	tr.appendChild(td);
	
	td = document.createElement("td");
	var save = document.createElement("input");
	save.type = "button";
	save.value = "Spara";
	save.onclick = function(){
															var rows = tbl.getElementsByTagName("tr"); 	
															var str = "";
															for(var k = 0; k < rows.length; k++){
																cells = rows[k].getElementsByTagName("td");
																cbx = cells[0].getElementsByTagName("input")[0];
																if(cbx)
																	if(cbx.type == "checkbox"){
																		if(cbx.checked){
																			name = cells[1].getElementsByTagName("input")[0].value;
																			if(name != "")
																				str += name + ":" + cells[2].getElementsByTagName("span")[0].innerHTML + ":" + cells[3].getElementsByTagName("span")[0].innerHTML + ";";
																				else{
																					alert("you must provide a name for your locations.");
																					return;
																				}
																			}	
																		}
																
															}
															//send string to php script, close this window and open submited window
															var request = new Request();
															request.setResponseType('text');
															request.setCallback(function(response){
																						 		//alert(response);
																								 });
															//alert('observations=' +_self.tostring().slice(0, -1) + '&stages=' + pheno.slice(0, -1));
															request.setQuerystring('favorites=' +str);
															request.doRequest('post', 'backend/insertFavLocations.php', true);
															closeAction();
															
														};
	td.appendChild(save);
	tr.appendChild(td);
	tbdy.appendChild(tr);
	tbl.appendChild(tbdy);
	txt = document.createTextNode("Vill du spara denna lokalangivelse för att du tror att du kommer att använda den igen vid framtida rapporteringar? Ge då lokalen ett namn och klicka på Spara, så dyker den upp under \"Mina lokaler\" på rapporteringssidan.");
	div.appendChild(txt);
	div.appendChild(tbl);
	if(myObservations.observations.length == 1){
		var pop = new Popup(div, function(){setTimeout(function(){new Popup(new TYmap(), function(){fadeOutAndRemove('dim'); showSelect(); goTo("submitobservation.php");}); myObservations.observations = new Array();}, 400)}, "favorites");
		var closeAction = function(){setTimeout(function(){new Popup(new TYmap(), function(){fadeOutAndRemove('dim'); showSelect(); goTo("submitobservation.php");}); myObservations.observations = new Array();}, 400)};
	}else{
		var pop = new Popup(div, function(){setTimeout(function(){new Popup(new TY(), function(){fadeOutAndRemove('dim'); showSelect(); goTo("submitobservation.php");}); myObservations.observations = new Array();}, 400)}, "favorites");
		var closeAction = function(){setTimeout(function(){new Popup(new TY(), function(){fadeOutAndRemove('dim'); showSelect(); goTo("submitobservation.php");}); myObservations.observations = new Array();}, 400)};
	}
	cancel.onclick = function(){closeAction()}
}

function goTo(url){
  	window.location = url;
 }
 