function silentErrorHandler(){
	return true;
}

//window.onerror=silentErrorHandler;

function text_searchText(t){
	var text=t.title;
	if(t.value==text){
		t.value="";
	}
	else if(t.value==""){
		t.value=text;
	}
}

function checkSubmit(t){
	if(t.value!=t.title){
		return true;
	}
}

function debug(){
	$("#editor_sidebar").load(window.uri+"walkEdit.php?action=debugSession");
}

function openInitialInfoWindow(){
	var id=Math.floor(Math.random()*(markerInfo.length+1));
	openInfoWindow(id);
	//osMap.panTo(markerInfo[id].pos)
	osMap.baseLayer.events.unregister('loadend',this,openInitialInfoWindow);
}

function activeMenu(id){
	$('#menu_sub ul li').each(function(i,el){
		if(this.id!=id){
			$(this).removeClass('activeMenu');
		}
	});
}

function geoLocate(limit){
	if (navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(function(position){
			var data={};
			data.lat=position.coords.latitude;
			data.lng=position.coords.longitude;
			data["limit"]=limit;
			getWalksNear(data);
		});
	}
	$('#walksNearMe').addClass("active");
	$('#latestWalks').removeClass("active");
}

function getWalksNear(data){
	$.ajax({
		type: 'GET',
		url: window.uri+"ajax.php?action=walksFindSimple",
		data: 'limit='+data["limit"]+"&lat="+data.lat+"&lng="+data.lng,
		success: function(data){
			window.markerIcon="large";
			window.walkdata=jQuery.parseJSON(data);
			if(!osMap.events){
				init_map(true);
			}
			else{
				clearMarkers();
				addMarkers();
				center_map();
			}
			osMap.baseLayer.events.register('loadend', this, openInitialInfoWindow);
		}
	});
}

function latestWalks(limit){
	$('#walksNearMe').removeClass("active");
	$('#latestWalks').addClass("active");
	$.ajax({
		type: 'GET',
		url: window.uri+"ajax.php?action=walksGetLatest",
		data: 'limit='+limit,
		success: function(data){
			window.markerIcon="large";
			window.walkdata=jQuery.parseJSON(data);
			if(!osMap.events){
				init_map(true);
			}
			else{
				clearMarkers();
				addMarkers();
				center_map();
			}
			osMap.baseLayer.events.register('loadend', this, openInitialInfoWindow);
		}
	});
}

function largeMap(){
	if($('#map').height()==400){
		$('#map').height(800);
		$('#enlarge').text("Shrink [-]");
	}
	else{
		$('#map').height(400);
		$('#enlarge').text("Enlarge [+]");
	}
	osMap.updateSize();
	center_map();
}

function fadeMessage(el,message,noFade,timer){
	if(timer==undefined || timer==0 || !timer){
		timer=6000;
	}
	$(el).html(message);
	$(el).fadeIn(1000);
	if(noFade===false){
		setTimeout(function() { $(el).fadeOut(1000); }, timer);
	}
}

function limitText(limitField, limitCount, limitNum) {
	if (limitField.textLength >= limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		$(limitCount).text((limitNum-limitField.value.length)+" characters left.");
	}
}

function numbersOnly(value){
  var regex = /\d+/;
  return regex.exec(value);
}

function array2string(data,separator){
	var out="";
	for (p in data){
		if (data[p]!== null && data[p].constructor.toString().indexOf("Object") == -1 && data[p].constructor.toString().indexOf("Array") == -1){
			out += ((p!=data[p]) ? p+separator : '')+data[p];
		}
		else{
			for (q in data[p]){
				out+=data[p][q]+separator;
			}
			out=out.substring(0,out.length-separator.length);
		}
		out+='<br />';
	}
	return out;
}

function objectProperties(o){
  var out = '';
  for (p in o) {
    out += p + ': ' + o[p] + '\n';
  }
  alert(out);
  //return out;
}

$.fn.clearForm = function() {
  return this.each(function() {
    var type = this.type, tag = this.tagName.toLowerCase();
    if (tag == 'form'){
      return $(':input',this).clearForm();
    }
    if (type == 'text' || type == 'password' || tag == 'textarea'){
      this.value = '';
    }
    else if (type == 'checkbox' || type == 'radio'){
      this.checked = false;
    }
    else if (tag == 'select'){
      this.selectedIndex = -1;
    }
  });
};

$.fn.removeError = function() {
  return this.each(function() {
    var type = this.type, tag = this.tagName.toLowerCase();
    if (tag == 'form'){
      return $(':input',this).removeError();
    }
    if (type == 'text' || type == 'password' || tag == 'textarea'){
     	$(this).removeClass('error')
		$('#'+this.name+'_error').css('display','none');

    }
    else if (type == 'checkbox' || type == 'radio'){
		$(this).removeClass('error')
		$('#'+this.name+'_error').css('display','none');

    }
    else if (tag == 'select'){
		$(this).removeClass('error')
		$('#'+this.name+'_error').css('display','none');
    }
  });
};

$(document).ready(function() {
   $(".signin").click(function(e) {
		e.preventDefault();
		if($(".signin").hasClass("menu-open")){
			$(".signin").removeClass("menu-open");
			$("fieldset#signin_menu").hide();
		}
		else{
		  $("fieldset#signin_menu").toggle();
			$(".signin").toggleClass("menu-open");
		}
	}
   );
	$("fieldset#signin_menu").mouseup(function() {
		return false;
	});
	$(document).mouseup(function(e) {
		if($(e.target).parent("a.signin").length==0) {
			$(".signin").removeClass("menu-open");
			$("fieldset#signin_menu").hide();
		}
	});
});

function login(){
	$.post(window.uri+'ajax.php?action=login',
	  $("#signin").serialize(),
		function(data){
		  if(data){
			data=jQuery.parseJSON(data);
			if (data.constructor.toString().indexOf("Object")>=0){
				  displayFormError("field",data);
				  return false;
			}
			document.signin.submit();
		  }
		}
	);
}

function showPageInline(url){
	var height=$(window).height();
	height=510;//(500>$(window).height()-height/5) ? 500 : height-height/5; //min 500px;
	$('#lightbox').html('<div id="pubtransInfo" style="position:fixed;top:150px;left:25%;z-index:100000;opacity:1;width:600px;overflow:visible;background-color:#FFFFFF;border:1px solid #666666;padding:3px;"><span class="close_floater" style="float:right;padding:2px;"><a href="javascript:void(0)" onclick="closeLightbox();" style="color:#000000;font-size:0.8em;font-weight:bold;">close&nbsp;<img src="'+window.uri+'images/icons/icon_close_window.gif"></a></span><iframe height="'+height+'px" width="100%" src="'+url+'" id="pubTransLink" style="border:0; display:block;position:relative;right:2px;top:2px;left:auto;" frameborder="0"></iframe></div><div class="lightbox" style="display:block;position:none;float;left;z-index:1;"></div></div>');
	$('#lightbox').height($(document).height());
	$('#lightbox').css('display','block');
}

function closeLightbox(){
	$('#lightbox').fadeOut('slow');
}
	
function logout(){
	$("#signout").submit();
}

function showEmailPassword(){
	if ($("#emailPassword").length <= 0){
		$('<div id="emailPassword" style="position: absolute;top: 100px;left: -500px;width: 300px; height: 100px; z-index:999999; padding: 5px; background-color:  #FAFAF1; -moz-border-radius:4px; -webkit-border-radius:4px; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border: 1px solid #003300; border-top-left-radius: 4px; border-top-right-radius: 4px;"></div>').appendTo('div#login');
		$('#emailPassword').load(window.uri+'views/_emailPassword.php');
		$("#emailPassword").css({ opacity: 1 });
		$("#fade").toggle();
	}
	else{
		$("#emailPassword").toggle();
		$("#fade").toggle();
	}
}

function emailPassword(){
	$('#loading').css('display','block');
	$.post('ajax.php?action=passwordMail',
		   $("#emailPW").serialize(),
		   function(data){
				data=jQuery.parseJSON(data);
				if (data.constructor.toString().indexOf("Array") != -1 || data.constructor.toString().indexOf("Object") != -1){
					fadeMessage('#pw_email_error',data.pw_email,false);
				}
				else{
					$('#emailPassword').toggle();
					fadeMessage("#emailPassword",data,false);
					fadeMessage("#fade",'',false);
				}
				$('#loading').css('display','none');
				if(data.success){
					$("#emailPassword").delay(3000).fadeOut(500);
					$("#fade").delay(3000).fadeOut(500);
				}
		});
}

function displayFormError(key_type,data){
	for (key in data){
		fadeMessage('#'+key+'_error',data[key], true);
		if(data[key].length>0 && data[key]!==false){
			$('#'+key_type+'_'+key).removeClass(function(){
				  return $(this).prev().attr('class');
			});
			$('#'+key_type+'_'+key).addClass("error");
		}
		else{
			$('#'+key_type+'_'+key).removeClass(function(){
				$('#'+key+'_error').css({'display':'none'});
				return $(this).prev().attr('class');
			});
		}
	}
}

function openWindow(url,width,height,name){
	if(!width){
		width=950;
	}
	if(!height){
		height=800;
	}
	if(!name){
		name='windowname';
	}
	window.open(url, name, "width="+width+",height="+height+",left=50,top=50,scrollbars=yes,toolbar=no");
}

/*
if (top.location != location) {
	top.location.href = document.location.href ;
}
*/
