var notWriteScriptTag = false;
var debug = false;
var DD = false;

var isMoz;
var browser;
var so;
var browser_selector = function() {
	var 
		ua=navigator.userAgent.toLowerCase(),
		is=function(t){ return ua.indexOf(t) != -1; }, 
		b=(!(/opera|webtv/i.test(ua))&&/msie (\d)/.test(ua))?('ie ie'+RegExp.$1):is('gecko/')? 'gecko':is('opera/9')?'opera opera9':/opera (\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'',
		os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win'+(is('nt 6')?' winVista':is('nt 5.2')?' win2003':is('nt 5.1')?' winXP':is('nt 5.0')?' win2000':''):''; 
	var c=b+os+' js';  
	isMoz = is('gecko/');
	browser = b;
	so=os; 
}();

function toLatDM(val) {
	if (DD) return val;
	var v = parseFloat(val);
	var D = (parseInt(v));
	var d = (v - D);
	var v2 = d * 60; 
	d = (parseInt(v2));
	var d2 = (v2 - d);
	d2 = d2 * 60; 
	d2 = d2.toFixed(2);
	
	D = Math.abs(D);
	d = Math.abs(d);
	d2 = Math.abs(d2);
	return D + "\u00B0 " + d + "' " +  d2 + "'' " + ((val>0)?"N":"S");   
}

function toLngDM(val) {
	if (DD) return val;
	var v = parseFloat(val);
	var D = (parseInt(v));
	var d = (v - D);
	var v2 = d * 60; 
	d = (parseInt(v2));
	var d2 = (v2 - d);
	d2 = d2 * 60; 
	d2 = d2.toFixed(2); 
	D = Math.abs(D);
	d = Math.abs(d);
	d2 = Math.abs(d2); 
	return D + "\u00B0 " + d + "' "  +  d2 + "'' "+ ((val>0)?"E":"W");  
 
} 

function toLatDD(val) {
	var pos = val.indexOf('°',0); 
	var D = val.substring(0,pos); 
	pos2 = val.indexOf("'",pos+1); 
	var d = val.substring(pos+1,pos2); 
	d = parseInt( 10000*d / 60);
	return  D + '.' + d; 
}

function toLngDD(val) {
	var pos = val.indexOf('°',0); 
	var D = val.substring(0,pos); 
	pos2 = val.indexOf("'",pos+1); 
	var d = val.substring(pos+1,pos2); 
	d = parseInt( 10000*d / 60);
	return  D + '.' + d; 
}

function content_type_change(val)
{ 
	switch(val)
	{
		case 'jpg': 
			document.getElementById('viewImageInput').style.display = 'block'; 
			document.getElementById('viewVideoInput').style.display = 'none';
			break;
		case 'youtube': 
			document.getElementById('viewImageInput').style.display = 'none'; 
			document.getElementById('viewVideoInput').style.display = 'block';
			break;	
	} 
}


function content_type_change_map(val)
{ 
	switch(val)
	{
		case 'jpg': 
			document.getElementById('viewImageInputMap').style.display = 'block'; 
			document.getElementById('viewVideoInputMap').style.display = 'none';
			break;
		case 'youtube': 
			document.getElementById('viewImageInputMap').style.display = 'none'; 
			document.getElementById('viewVideoInputMap').style.display = 'block';
			break;	
	} 
}

function dateFormat(jsDatetime)
{ 
	try
	{
	year = jsDatetime.getFullYear()
	day = jsDatetime.getDate()
	hour = jsDatetime.getHours()
	minute = jsDatetime.getMinutes()  
	
	switch (jsDatetime.getMonth())
	{
		case 0 : month = "Jan"; break;
		case 1 : month = "Feb"; break;
		case 2 : month = "Mar"; break;
		case 3 : month = "Apr"; break;
		case 4 : month = "May"; break;
		case 5 : month = "Jun"; break;
		case 6 : month = "Jul"; break;
		case 7 : month = "Aug"; break;
		case 8 : month = "Sep"; break;
		case 9 : month = "Oct"; break;
		case 10 : month = "Nov"; break;
		case 11 : month = "Dec"; break;
	} 
	return day + " " + month + " " + year + ", " + (hour<10?'0'+hour:hour) + ":" + (minute<10?'0'+minute:minute) ; 
	}
	catch(e) 
	{}
}

function pgDate2JsDate(datetime)
{
	datetimeSplit = datetime.split(" ");
	if (datetimeSplit.length < 2) return "";
	dateSplit = datetimeSplit[0].split("-");
	timeSplit = datetimeSplit[1].split(":"); 
	if (dateSplit.length < 3 || timeSplit.length < 2) return "";
		
	year = dateSplit[0];
	month = dateSplit[1];
	day = dateSplit[2];
	hour = timeSplit[0];
	minute = timeSplit[1];
		
	return new Date(year, month-1, day, hour, minute) //Month is 0-11 in JavaScript
}

function pgLocalDate2JsDate(datetime)
{
	datetimeSplit = datetime.split(" ");
	if (datetimeSplit.length < 2) return "";
	dateSplit = datetimeSplit[0].split("-");
	timeSplit = datetimeSplit[1].split(":"); 
	if (dateSplit.length < 3 || timeSplit.length < 2) return "";
		
	month = dateSplit[0];
	day = dateSplit[1];
	year = dateSplit[2];
	hour = timeSplit[0];
	minute = timeSplit[1];
		
	return new Date(year, month-1, day, hour, minute) //Month is 0-11 in JavaScript
}
function switchWP(obj, WPtype)
{ 
	document.getElementById('h2TabPlace'+obj).className = "placemarks off";
	document.getElementById('tabPlace'+obj).style.display = 'none';
	
	document.getElementById('h2TabWiki'+obj).className = "wikipoi off";
	document.getElementById('tabWiki'+obj).style.display = 'none';
	
	if(document.getElementById('h2TabTrip'+obj))
	{
		document.getElementById('h2TabTrip'+obj).className = "trips off";
		document.getElementById('tabTrip'+obj).style.display = 'none';
	}
		
	if(WPtype == 'W')
	{
		document.getElementById('h2TabWiki'+obj).className = "wikipoi on"; 
		document.getElementById('tabWiki'+obj).style.display = 'block';
	}
	else if(WPtype == 'P')
	{ 
		document.getElementById('h2TabPlace'+obj).className = "placemarks on";
		document.getElementById('tabPlace'+obj).style.display = 'block'; 
	}	
	else if(WPtype == 'T')
	{ 
		document.getElementById('h2TabTrip'+obj).className = "trips on";
		document.getElementById('tabTrip'+obj).style.display = 'block'; 
	}	
} 

function switchTab(obj, type)
{ 
	switch(obj)
	{
		case "Inbox":
					
			document.getElementById("tabH"+obj+"_inbox").className = "inbox off";
			document.getElementById("tab"+obj+"_inbox").style.display = "none";
			
			document.getElementById("tabH"+obj+"_sent").className = "sent off";
			document.getElementById("tab"+obj+"_sent").style.display = "none";
			 
			 
		break;
		
		case "User":
					
			document.getElementById("tabH"+obj+"_profile").className = "profile off";
			document.getElementById("tab"+obj+"_profile").style.display = "none";
			
			document.getElementById("tabH"+obj+"_placemarks").className = "placemarks off";
			document.getElementById("tab"+obj+"_placemarks").style.display = "none";
			
			document.getElementById("tabH"+obj+"_trips").className = "trips off";
			document.getElementById("tab"+obj+"_trips").style.display = "none";
			
			document.getElementById("tabH"+obj+"_buddies").className = "buddies off";
			document.getElementById("tab"+obj+"_buddies").style.display = "none";
			 
		break;
		
		case "Trip":
			
			document.getElementById("tabH"+obj+"_trips").className = "trips off";
			document.getElementById("tab"+obj+"_trips").style.display = "none";
			
			document.getElementById("tabH"+obj+"_placemarks").className = "placemarks off";
			document.getElementById("tab"+obj+"_placemarks").style.display = "none"; 
			
			document.getElementById("tabH"+obj+"_tracks").className = "tracks off";
			document.getElementById("tab"+obj+"_tracks").style.display = "none";
		break;
	
	}  

	document.getElementById("tabH"+obj+"_"+type).className = type + " on"; 
	document.getElementById("tab"+obj+"_"+type).style.display = "block";
		 
} 


function DoDateNew(){

	document.formInputPlacemark.datetime.value = document.formInputPlacemark.month.value + "-" 	+	document.formInputPlacemark.day.value + "-" +
									
								document.formInputPlacemark.year.value + " "  	+
		 						document.formInputPlacemark.hour.value + ":" 		+ 
								document.formInputPlacemark.minute.value  + ":00";
 //alert( document.formInputPlacemark.datetime.value);
} 


function DoDateMyPos(){

	document.formMyPosition.datetime.value = document.formMyPosition.month.value + "-" 	+	document.formMyPosition.day.value + "-" +
									
								document.formMyPosition.year.value + " "  	+
		 						document.formMyPosition.hour.value + ":" 		+ 
								document.formMyPosition.minute.value  + ":00";
 //alert( document.formMyPosition.datetime.value);
} 


function DoDate(){

	document.formEditPlacemarkPopup.datetime.value = document.formEditPlacemarkPopup.month.value + "-" 	+	document.formEditPlacemarkPopup.day.value + "-" +
									
								document.formEditPlacemarkPopup.year.value + " "  	+
		 						document.formEditPlacemarkPopup.hour.value + ":" 		+ 
								document.formEditPlacemarkPopup.minute.value  + ":00";
 //alert( document.formEditPlacemarkPopup.datetime.value);
} 

function DoDateTrack(nr,type){ 
	 eval( 'document.formTrack'+nr+'.datetime_'+type+'.value = document.formTrack'+nr+'.month_'+type+'.value + "-" + document.formTrack'+nr+'.day_'+type+'.value + "-" + document.formTrack'+nr+'.year_'+type+'.value + " " + document.formTrack'+nr+'.hour_'+type+'.value + ":" + document.formTrack'+nr+'.minute_'+type+'.value  + ":00"'); 
 	// eval( 'alert(document.formTrack'+nr+'.datetime_'+type+'.value)');
} 


function DoDateEditMyPos()
{

	document.formEditMyPosition.datetime.value = document.formEditMyPosition.month.value + "-" 	+	document.formEditMyPosition.day.value + "-" +
									
								document.formEditMyPosition.year.value + " "  	+
		 						document.formEditMyPosition.hour.value + ":" 		+ 
								document.formEditMyPosition.minute.value  + ":00";
 //alert( document.formEditMyPosition.datetime.value);
} 




function setNewCoordinates(id,lat,lng) 
{ 
  req=new XMLHttpRequest(); 
  if(debug) req.onreadystatechange=stateChangedAlert ; 
  req.open('GET','ajaxRequest.php?act=setNewPlaceCoord&id='+id+'&lat='+lat+'&lng='+lng,true);
  req.send(null); 
}

function setNewMyPos(id,lat,lng,datetime) 
{ 
  req=new XMLHttpRequest(); 
  if(debug) req.onreadystatechange=stateChangedAlert ; 
  req.open('GET','ajaxRequest.php?act=setNewMyPos&datetime='+datetime+'&id='+id+'&lat='+lat+'&lng='+lng,true);
  req.send(null); 
}  
 
function stateChangedAlert() 
{ 
	if (req.readyState==4 || req.readyState=="complete")
 	{  
		alert(req.responseText) ;
 	} 
}

function setEmbedDimensions()
{ 
	var format = document.formEmbed.format.value ;
	var newWidth = 200 * format;
	var newHeight = 150 * format; 
	document.formEmbed.embedCode.value = document.formEmbed.embedCode.value.replace(/ width=[\d]+/g, ' width='+newWidth);
	document.formEmbed.embedCode.value = document.formEmbed.embedCode.value.replace(/ height=[\d]+/g, ' height='+newHeight);
	document.formEmbed.embedCode.value = document.formEmbed.embedCode.value.replace(/&width=[\d]+/g, '&width='+newWidth);
	document.formEmbed.embedCode.value = document.formEmbed.embedCode.value.replace(/&height=[\d]+/g, '&height='+newHeight);
} 

function setEmbedMapTypeDisplay()
{ 
	var newMapTypeDisplay = document.formEmbed.mapTypeDisplay.value ;
	document.formEmbed.embedCode.value = document.formEmbed.embedCode.value.replace(/&mapTypeDisplay=[\d]+/g, '&mapTypeDisplay='+newMapTypeDisplay); 
} 

//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEvent(func)
{	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	} 
}

viewAddButton = false;


var __isFireFox = navigator.userAgent.match(/gecko/i);   
  
  
//returns the absolute position of some element within document   
function GetElementAbsolutePos(element) {   
    var res = new Object();   
    res.x = 0; res.y = 0;   
    if (element !== null) {   
        res.x = element.offsetLeft;    
        res.y = element.offsetTop;    
           
        var offsetParent = element.offsetParent;   
        var parentNode = element.parentNode;   
  
        while (offsetParent !== null) {   
            res.x += offsetParent.offsetLeft;   
            res.y += offsetParent.offsetTop;   
  
            if (offsetParent != document.body && offsetParent != document.documentElement) {   
                res.x -= offsetParent.scrollLeft;   
                res.y -= offsetParent.scrollTop;   
            }   
            //next lines are necessary to support FireFox problem with offsetParent   
            if (__isFireFox) {   
                while (offsetParent != parentNode && parentNode !== null) {   
                    res.x -= parentNode.scrollLeft;   
                    res.y -= parentNode.scrollTop;   
                       
                    parentNode = parentNode.parentNode;   
                }       
            }   
            parentNode = offsetParent.parentNode;   
            offsetParent = offsetParent.offsetParent;   
        }   
    }   
    return res;   
}  
 
function scrollByPro(px)
{ 
	setTimeout("scrollByProAction(0,"+px+","+ px/10 +")",0);
}

function scrollByProAction(from,to,step)
{  
	var next = Math.floor(from + step );
	 
	if(next <= to) 
	{ 
		window.scrollBy(0,step)
		setTimeout("scrollByProAction("+next+","+to+","+step+")",30);
	}   
	else
	{
		window.scrollBy(0, to - from)
	}
}



function viewAdd()
{   
	 if(viewAddButton)
	 {
	 	document.getElementById('addDiv').style.display = 'none';
		viewAddButton = false;
	 }
	 else
	 { 
		document.getElementById('addDiv').style.display = 'block';  
		var pos = GetElementAbsolutePos(document.getElementById('addImg'));
	 	document.getElementById('addDiv').style.top = (pos.y < 0) ? "0px" : (pos.y+20) + "px";
	 	document.getElementById('addDiv').style.left = (pos.x < 0) ? "0px" : pos.x + "px"; 
	 	viewAddButton = true;
	 }
	 return false;
}

function wikiAdd()
{  
	document.location.replace("wikipoiEdit.php?s="+sw_lat+"&w="+sw_lng+"&n="+ne_lat+"&e="+ne_lng);
}

function ajaxRequest(){
 var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
 if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
  for (var i=0; i<activexmodes.length; i++){
   try{
    return new ActiveXObject(activexmodes[i])
   }
   catch(e){
    //suppress error
   }
  }
 }
 else if (window.XMLHttpRequest) // if Mozilla, Safari etc
  return new XMLHttpRequest()
 else
  return false
} 

function execBuddy(command, returnPage, id_value, buddy_id, buddy_username)
{   
	var array_data = []; 									 
	array_data[0]= returnPage;
	array_data[1]= id_value;
	array_data[2]= buddy_id;
	array_data[3]= buddy_username;
	showPopup('popup', 'buddy', command, array_data); 
}

 
 
