var fullentry_description = "";
var fullentry_active = false;

// Hier werden alles FlashVideoPlayer gespeichert die später gestoppt werden sollen
var player_arr = new Array();


/* Global Variables defined in Fullentry_Template: 
	var fe_active_media_index;
	var mycarousel_itemList = [];
	
	var fe_active_media_index={$media_meta.medialist_startindex};
	
	var lat;
	var lng;
	var fullentry_mode={$fullentry_mode};
	
	var media_count = {"$media_meta.medialist_count"};
*/

$(document).ready(function(){	

	$('#lvl_cv_entries_wrapper').jScrollHorizontalPane({showArrows:false});
	
	$('#lvl_cv_calender_entries_wrapper').css("width", (parseInt($("body").width())-80-86)+"px");
	$('#lvl_cv_calender_entries_wrapper').jScrollHorizontalPane({showArrows:false});
	
	classicview_init_calenderlinks();
	
	jQuery("#lvl_cv_calender_selectyear").select_skin();
	
	if(highlighted_entry!=-1)
		$("#lvl_cv_entries_wrapper")[0].scrollTo("#lvl_cv_entry_"+highlighted_entry, true); //true als Parameter dahinter und das ganze ist unanimiert 	

	open_Fullentry();

});


$(window).resize(function(){	

	//Reseting Entries and Calender Area and re-initialize scrollbar
	var entriesdiv=$("#lvl_cv_entries_wrapper").clone().removeAttr("style");
	$("#lvl_cv_entries_container .jHScrollPaneContainer").replaceWith(entriesdiv);
	$('#lvl_cv_entries_wrapper').jScrollHorizontalPane({reset:true});
	
	var entriesdiv=$("#lvl_cv_calender_entries_wrapper").clone().removeAttr("style").css("width", (parseInt($("body").width())-80-86)+"px");;
	$("#lvl_cv_calender_container .jHScrollPaneContainer").replaceWith(entriesdiv);
	$('#lvl_cv_calender_entries_wrapper').jScrollHorizontalPane({reset:true});
	
	$('#lvl_cv_calender_entries_wrapper').jScrollHorizontalPane({showArrows:false});
	$('#lvl_cv_entries_wrapper').jScrollHorizontalPane({showArrows:false});
	
	tb_init('#lvl_cv_entries a.thickbox');//pass where to apply thickbox
	
	classicview_init_calenderlinks();
	
});
		
		
		

/** 
 * Initialisiserung der Kalender-Funktion (Springe zu Eintrag bei Klick auf Datum oder lade neue Einträge)
 * date: 26.10.2009
 * @param none
 * @author Sandra Siegel
 */
function classicview_init_calenderlinks()
{			
	$(".lvl_cv_calender_entry").click(
	function() 
	{
		var id = this.id.replace("lvl_cv_calender_entry_", "");
		
		if($("#lvl_cv_entry_"+id).length>0)
		{			
			$(".lvl_cv_entry").removeClass("highlighted");
			$("#lvl_cv_entry_"+id).addClass("highlighted");
			
			var viewport_width=parseInt($("body").width());
			var offset = $("#lvl_cv_entry_"+id).offset();
			var offset = parseInt(offset.left);
					
			//Wenn Eintrag nicht schon in Anzeigebereich
			if(offset<0 || offset>viewport_width-200)
			{
				$("#lvl_cv_entries_wrapper")[0].scrollTo("#lvl_cv_entry_"+id, true); //true als Parameter dahinter und das ganze ist unanimiert
			}
		}
		else
		{			
			//Ajax Reload Entries
			classicview_reload_entries(id, true);
		}		
	});	
}


/** 
 * Funktion zum Neuladen des Kalenders mit der uebergebenen Value/ Neuladen des Kalenders via Ajax
 * date: 18.08.08
 * @param none
 * @author Timo Jacobs
 */
function classicview_reload_calender(id_lifelog)
{	

	var selected_index = $('#lvl_cv_calender_selectyear')[0].value;
		
	var param_list = '{'+
					'"module"				:	"lvl",'+
					'"file"					:	"ajax_lvl_action_reload_calender.php",'+
					'"debug"				:	"false",'+
					'"value"	: {"selected_index" : "'+selected_index+'",'+
								  '"id_lifelog"		: "'+id_lifelog+'"'+  
					'}}';		   	
			
										   
	$.post(DIR_PROJECT_ROOT_WEB+'ajax.php', {param: param_list }, function(data){
				
			//Template setzen			 
			$('div#lvl_cv_calender_entries_wrapper')[0].innerHTML = data;
						
			// Kalenderscroller + Klick-Events neu initialisieren
			$('#lvl_cv_calender_entries_wrapper').jScrollHorizontalPane({showArrows:false});
			classicview_init_calenderlinks();
	});	
}




/** 
 * Zum Nachladen der Fullview Eintraege die sich nicht im Sichtfeld befinden
 * date: 18.03.08
 * @param Lifelog-ID
 * @param highlight Entry or something
 * @author Timo Jacobs
 */ 
 function classicview_reload_entries(entry_id, highlight_switch)
 { 	
 	// Falls es Videos gab muessen diese hier aus dem Array geloescht werden weil es sonst zu einem Stop fehler kommt
 	player_arr = new Array();
 	
 	// Grundsaetzlich in String konvertieren, da es auch ein Zahl sein kann, die nicht als String erkannt wird.
 	entry_id = entry_id.toString();
 	entry_id = entry_id.replace("JS_lvl_CE_", "");
 	
 	var param_list = '{'+
                    '"module"               :   "lvl",'+
                    '"file"                 :   "ajax_lvl_action_reload_entries.php",'+
                    '"debug"                :   "false",'+
                    '"value"    : {' +
                    	'"id_lifelog_entry" : "'+entry_id+'",'+
                    	'"highlight_switch" : "'+highlight_switch+'"'+
    				'}}';	
    				
     $.ajax({url: DIR_PROJECT_ROOT_WEB+'ajax.php', 
    		type: "POST",
    		async: false,
    		data: {param: param_list}, 
    		success: function(data)
    		{		       
				$("div#lvl_cv_entries_wrapper")[0].innerHTML=data;		
						
				//Scroller re-initialisieren
				$('#lvl_cv_entries_wrapper').jScrollHorizontalPane({showArrows:false});
			
				//Angesprungenen Eintrag anzeigen	
				$("#lvl_cv_entries_wrapper")[0].scrollTo("#lvl_cv_entry_"+entry_id, true); //true als Parameter dahinter und das ganze ist unanimiert
		   
		   		tb_init('#lvl_cv_entries a.thickbox');//pass where to apply thickbox
		    }
	});			
	
 }
 

/** 
 * Voten für einen Lifelog
 * date: 17.03.08
 * @param Lifelog-ID
 * @author Sandra
 */
function lifelogVote(id_lifelog)
{
	var param_list = '{'+
					'"module"				:	"lvl",'+
					'"file"					:	"ajax_lvl_action_saveLifelogVote.php",'+
					'"debug"				:	"false",'+
					'"value"	: {"id_lifelog" : "'+id_lifelog+'"'+
	'}}';
	
	$.post(DIR_PROJECT_ROOT_WEB+'ajax.php', {param: param_list }, function(data){
	
		if(data!="x")
		{		
			$d_array = data.split("@@");
			// Fullview
			$("a#lvl_cv_header_functions_vote").replaceWith('<a id="lvl_cv_header_functions_vote" href="javascript:withdrawLifelogVote('+id_lifelog+')" onfocus="blur()">'+$d_array[1]+'</a>');				
			$("div#lvl_cv_header_votecount")[0].innerHTML=$d_array[0];

		}
		else
	    {
	         create_warning('error', 'warn_lifelog_send_not_loggedin', 200, 60);
	    }
	});
}

function not_logged_in()
{
	 my_tb_remove();
     create_warning('error', 'warn_lifelog_send_not_loggedin', 200, 60);
}

/** 
 * Zurückziehen eines Votes
 * date: 17.03.08
 * @param Lifelog-ID
 * @author Sandra
 */
function withdrawLifelogVote(id_lifelog)
{
	var param_list = '{'+
					'"module"				:	"lvl",'+
					'"file"					:	"ajax_lvl_action_withdrawLifelogVote.php",'+
					'"debug"				:	"false",'+
					'"value"				: {"id_lifelog" : "'+id_lifelog+'"'+
	'}}';
	
	$.post(DIR_PROJECT_ROOT_WEB+'ajax.php', {param: param_list }, function(data){
		if(data!="x")
		{
			$d_array = data.split("@@");
			// Fullview
			$("a#lvl_cv_header_functions_vote").replaceWith('<a id="lvl_cv_header_functions_vote" href="javascript:lifelogVote('+id_lifelog+')" onfocus="blur()">'+$d_array[1]+'</a>');				
			$("div#lvl_cv_header_votecount")[0].innerHTML=$d_array[0];
		}
	});
}

/** 
 * Erstellen einer Beobachtung
 * date: 17.03.08
 * @param Lifelog-ID
 * @author Sandra
 */
function lifelogObserve(id_lifelog)
{
	var param_list = '{'+
					'"module"				:	"lvl",'+
					'"file"					:	"ajax_lvl_action_saveLifelogObservation.php",'+
					'"debug"				:	"false",'+
					'"value"	: {"id_lifelog" : "'+id_lifelog+'"'+
	'}}';
	
	$.post(DIR_PROJECT_ROOT_WEB+'ajax.php', {param: param_list }, function(data)
	{		
		if(data!="x")
        {       
			// Fullview
			$("a#lvl_cv_header_functions_observe").replaceWith('<a id="lvl_cv_header_functions_observe" href="javascript:withdrawLifelogObserve('+id_lifelog+')" onfocus="blur()">'+data+'</a>');
        }
        else
        {
             create_warning('error', 'warn_lifelog_send_not_loggedin', 200, 60);
        }
	});
}


/** 
 * Zurückziehen einer Beobachtung
 * date: 17.03.08
 * @param Lifelog-ID
 * @author Sandra
 */
function withdrawLifelogObserve(id_lifelog)
{
	if(id_lifelog > 0)
    {
		var param_list = '{'+
						'"module"				:	"lvl",'+
						'"file"					:	"ajax_lvl_action_withdrawLifelogObservation.php",'+
						'"debug"				:	"false",'+
						'"value"	: {"id_lifelog" : "'+id_lifelog+'"'+
		'}}';
		
		$.post(DIR_PROJECT_ROOT_WEB+'ajax.php', {param: param_list }, function(data){
			// Fullview
			$("a#lvl_cv_header_functions_observe").replaceWith('<a id="lvl_cv_header_functions_observe" href="javascript:lifelogObserve('+id_lifelog+')" onfocus="blur()">'+data+'</a>');
		});
	}  
    else
    {
         create_warning('error', 'warn_lifelog_send_not_loggedin', 200, 60);
    }
}

/**
 * Oeffnet einen FullEntry Eintrag automatisch. Fullentry wird gestartet, so wie der angegebene Modus es hergibt.
 * date: 26.11.2008
 * @author Timo Jacobs
 * @return nix
 */ 
function open_Fullentry()
{	

	if(fullentry_id != -1)
	{	
		fullentry_active=true;
	
		fullentry_start_mode = fullentry_start_mode.toString();
		
		if(fullentry_start_mode != "")
		{
			if(fullentry_start_mode == "0")
			{	// Starte Fullview im Normal Modus		
				trigger_fullentry_mode_normal();
			}
		}
		else
		{	// Kein Fullentry_Start_Modus angegeben, also normal starten			
			trigger_fullentry_mode_normal();
		}
		// Wieder zuruecksetzen, fuer den naechsten Aufruf
		fullentry_id = "";	
		fullentry_start_mode = "";	
	}
	else if(fullentry_start_mode == "1")
	{
		trigger_description_mode_normal();
	}
	
}

/**
 * Triggert einen Komplettansicht Link zum oeffnen der FullEntry
 * date: 26.11.2008
 * @author Timo Jacobs
 * @return nix
 */ 
function trigger_fullentry_mode_normal()
{
	trigger_prefix = "#lvl_cv_entry_";
	trigger_suffix = " > .lvl_cv_fullentrylink";
	trigger_link = trigger_prefix+fullentry_id+trigger_suffix; 
	
	$(trigger_link).trigger("click");
}


/**
 * Triggert die Fullview Description
 * date: 26.11.2008
 * @author Timo Jacobs
 * @return nix
 */ 
function trigger_description_mode_normal()
{	
	activate_fullentry('description')	
	trigger_link = "a#lvl_cv_header_image";
	$(trigger_link).trigger("click");
}


/** 
 * Diese Funktion wird automatisch vom FlashVideoPlayer aufgerufen
 * date: 05.12.08
 * @param obj
 * @author Timo Jacobs
 */ 
 
function playerReady(obj)
{	// Player dem Player_arr zum spaeteren stoppen hinzufügen	
	addPlayer(obj);
}

/** 
 * Fuegt dem FlashVideoPlayer Array Player  hinzu
 * date: 05.12.08
 * @param thePlayer Object
 * @author Timo Jacobs
 */ 
function addPlayer(thePlayer)
{	
	player_arr.push(window.document[thePlayer.id]);
}

/** 
 * Diese Funktion stoppt alle im PlayerArray registrierten FlashVideoPlayer
 * date: 05.12.08
 * @param obj
 * @author Timo Jacobs
 */
function stop_all_players()
{	
	max_index = 0;
	for (var player_index in player_arr)
	{
		max_index ++;
	}
	
	for (var i = 0; i < max_index; i++)
	{	
		try
		{
			player_arr[i].sendEvent('STOP');
		}
		catch(e)
		{
			// Hier nichts machen, Der Fullentry Player ist nicht zu jederzeit verfuegbar und kann deshalb nicht gestoppt werden
		}
	}
}

/*
Removeplayer benötigt die ID des Players damit er aus der Liste der zu stoppenden Player ausgetragen werden kann.
*/

/** 
 * Diese Funktion entfernt einen Player aus dem Player Array
 * date: 05.12.08
 * @param thePlayer EntryId
 * @author Timo Jacobs
 */
function removePlayer(mediaId)
{	
	// Anzahl der Medien fuer diese mediaId ermitteln
	media_length = fv_media_array[mediaId].length;
	
	// Anzahl der angezeigten Player ermitteln
	sz_player = player_arr.length;
	
	if(sz_player != 0)
	{	
		for (var i = 0; i < sz_player; i++)
		{	
			delete_marker = false;
			for(m = 0; m < media_length; m++)
			{	// Media Id zusammenbauen
				player_id = "media_"+mediaId+"_"+m;
				
				try{
					if(player_arr[i].name == player_id)
					{
						delete(player_arr[i]);
						delete_marker = true;
						break;					
					}
				}
				catch(e)
				{
					// Nichts machen, wenns nicht geht, gehts nicht
				}
			}			
			if(delete_marker == true)
			{
				break;
			}
		}// for i END
	}//if(sz_player != 0) END
	
	temp_arr = new Array();
	
	/* Player Array aufrauemen, weil nach einem delete der Index nicht aufgeraeumt wird */
	for (var t_player in player_arr)
	{
		try
		{
			temp_arr.push(window.document[player_arr[t_player].id])
		}
		catch(e)
		{
			//Nichts machen, IE ist schuld
		}
	}
	
	player_arr = new Array();
	// Aufgeraeumtes Array neu zuweisen
	player_arr = temp_arr;
}

/** 
 * Mit dieser Funktion kann von einem einzelnen Player die Lautstärke eingestellt
 * date: 05.12.08
 * @param Player Obj
 * @param Volume (between 0 and 100)
 * @author Timo Jacobs
 */
function set_volume(thePlayer, vol)
{
	thePlayer.sendEvent('VOLUME', vol);
}

/** 
 * Toggelt Volume to MUTE or NOT MUTE
 * date: 05.12.08
 * @param Player Obj
 * @author Timo Jacobs
 */
function set_mute(thePlayer)
{
	thePlayer.sendEvent('MUTE');
}

/*
 * Ajax Session Keep-Alive
 */
 
setInterval("session_alive()", 1200000);

function session_alive()
{
	
	 var param_list = '{'+
    '"module"               :   "lvl",'+
    '"file"                 :   "session_alive.php",'+
    '"debug"                :   "false",'+
    '"value"    : {}}';

    $.post(DIR_PROJECT_ROOT_WEB+'ajax.php', {param: param_list }, function(data)
    {
    });
}

function closeFullEntry()
{
	fullentry_active = false;
	fullentry_description =false;	
}
 
function activate_fullentry(id_entry)
{
	fullentry_active = true;
	
	if(id_entry!=undefined && id_entry!=false)
	{	
		if(id_entry=="description")
		{
			fullentry_description = true;
		}
		else
		{
			$(".lvl_cv_entry").removeClass("highlighted");
			$("#lvl_cv_entry_"+id_entry).addClass("highlighted");
		}
	}
	
}


function mediabtn_fadeIn()
{
	$("#lvl_fe_media_nextbtn").fadeIn("def");
	$("#lvl_fe_media_prevbtn").fadeIn("def");
}

function mediabtn_fadeOut()
{
	$("#lvl_fe_media_nextbtn").fadeOut("def");
	$("#lvl_fe_media_prevbtn").fadeOut("def");

}


/*
 * Inititializing Javascript Eventhandler + Javascript Plugins
 * Is called by thickbox.js, one Fullentry-Contents are loaded and displayed
 */
function fullentry_init()
{
	
	//Initialize Javascript Text-Scroller
	fullentry_scroller_init()
	
	
	var config = {    
	     sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)    
	     interval: 200, // number = milliseconds for onMouseOver polling interval    
	     over: mediabtn_fadeIn, // function = onMouseOver callback (REQUIRED)    
	     timeout: 0, // number = milliseconds delay before onMouseOut    
	     out: mediabtn_fadeOut // function = onMouseOut callback (REQUIRED)    
	};

	
	
	$("div#lvl_fe_media_wrapper").hoverIntent(config);
	

	//Initialize Medianavigation (Klickfunktionalität)
	$("#lvl_fe_media_nextbtn").click(function()
	{
		lvl_fe_switch_media(fe_active_media_index+1);
	});
	
	//Initialize Medianavigation (Klickfunktionalität)
	$("#lvl_fe_media_prevbtn").click(function()
	{
		lvl_fe_switch_media(fe_active_media_index-1);
	});
	
	
}


/*
 * Initializes Text-Scroller
 * Has to be called every time, content of text/comment-div changes
 */ 
function fullentry_scroller_init()
{		
	$("#lvl_fe_right_container").jScrollPane();
}



function lvl_fe_switch_media(index)
{
	if(index==media_count)
		index=0;
	else if(index==-1)
		index=media_count-1;
		
	fe_active_media_index=index;

    $(".lvl_fe_media_item.lvl_fe_media_visible").removeClass("lvl_fe_media_visible");
    $(".media_item_"+index).addClass("lvl_fe_media_visible");
    			
	$("#lvl_fe_media_index")[0].innerHTML = index+1;
	
	$(".jcarousel-item").removeClass("item_active");
	$("#lvl_fe_carousel_media_"+index).parent().addClass("item_active");
}



function lvl_reinit_thickbox()
{	
	$("#TB_ajaxContent.TB_modal").css("padding", 15);
}



/** 
 * Eintragen eines Kommentars zu einem bestimmten Eintrag
 * date: 09.09.08
 * @param EntryId, LifelogId
 * @author Timo Jacobs
 */
function ajax_lvl_actionsubmitComment(id_entry, id_lifelog)
{	
	var param_list = '{'+
					'"module"				:	"lvl",'+
					'"file"					:	"ajax_lvl_action_saveComment.php",'+
					'"debug"				:	"false",'+
					'"value"	: {"id_entry" : "'+id_entry+'",'+								   
								   '"message"   : "'+json_escape($("#lvl_fe_comment_textbox")[0].value) +'"'+
								   '}}';
								   
	$.post(DIR_PROJECT_ROOT_WEB+'ajax.php', {param: param_list }, function(data)
	{	
		if(data=="0")
			return;
		else if (data=="notloggedin")
		{
			$("div#lvl_fe_comment_form").css("display", "none");
			$("div#lvl_fe_comment_notloggedin").css("display", "block");
			fullentry_scroller_init();
		}
		else
		{			
			refresh_comment_counter(id_entry);
			$("ul#lvl_fe_commentlist")[0].innerHTML = data;
			$("#lvl_fe_comment_textbox")[0].value="";
			$("div#lvl_fe_comment_wrapper").css("display", "none");
			
			if($('li.lvl_fe_comment').length>0)
				$('#lvl_fe_nocomments').css("display","none");
			
			fullentry_scroller_init();
		}
	});
}

/** 
 * Löschen eines Kommentars aus Datenbank und Kommentarbox mittels Ajax
 * date: 20.05.08
 * @param 
 * @author Sandra
 */
function deleteComment(id_comment, id_entry)
{	
	var param_list = '{'+
					'"module"				:	"lvl",'+
					'"file"					:	"ajax_lvl_action_deleteComment.php",'+
					'"debug"				:	"false",'+
					'"value"	: {"id_comment" : "'+id_comment+'"'+ 
								   '}}';

	$.post(DIR_PROJECT_ROOT_WEB+'ajax.php', {param: param_list }, function(data)
	{
		if(data!=0){
			$('#lvl_fe_comment_'+id_comment).remove();
			if($('li.lvl_fe_comment').length==0)
				$('#lvl_fe_nocomments').css("display","block");
			refresh_comment_counter(id_entry);	
			
			
		}
	});	
	
	fullentry_scroller_init();	
}

/** 
 * Funktion zum aktualisieren der Kommentar Counter unter den Einträgen in der Fullview
 * date: 10.09.2008
 * @param none
 * @author Timo Jacobs
 */
function refresh_comment_counter(id_entry)
{

	var param_list = '{'+
				'"module"				:	"lvl",'+
				'"file"					:	"ajax_lvl_action_get_entry_comment_count.php",'+
				'"debug"				:	"false",'+
				'"value"	: {"id_entry" : "'+id_entry+'"'+ 
							   '}}';
								   
	$.post(DIR_PROJECT_ROOT_WEB+'ajax.php', {param: param_list }, function(data){		
		//Refresh des Fullview Comment Counters
		$("div#lvl_cv_commentcounter_"+id_entry)[0].innerHTML = data;		
	});
}

/** 
 * Funktion zum oeffnen der Textbox fuer den Kommentar
 * date: 10.09.2008
 * @param id_entry (ID des Lifelogeintrags)
 * @author Timo Jacobs
 */ 
function toggle_comment_textbox(id_entry)
{
	//Sichtbar machen
	if($("div#lvl_fe_comment_wrapper").css("display") == "none")
	{				
		$("div#lvl_fe_comment_wrapper").css("display","block");
		
		if($("#lvl_fe_comment_form").css("display") == "block")
			$("#lvl_fe_comment_textbox").focus();	// Focus auf Textarea, zum sofort losschreiben, setzen.	
	}
	//Unsichtbar machen
	else
	{
		$("div#lvl_fe_comment_wrapper").css("display","none");	
	}
	fullentry_scroller_init();
}



function lvl_fe_toggle_map(element, id_entry)
{	

	if(element.id=="lvl_fe_mapbtn")
	{
		//Wenn Map nicht sichtbar
		if($("div#lvl_fe_map_wrapper").css("display") == "none")
		{	
			$("div#lvl_fe_media_wrapper").css("display", "none");			
			$("div#lvl_fe_map_wrapper").css("display", "block");
	
			$("a#lvl_fe_mapbtn").addClass("toggled");
			$("#lvl_fe_caption_container").css("visibility", "hidden");
			// Google Map an DIV binden.
			bind_googlemap_on_tag("div#lvl_fe_map_wrapper");
		}
		else
		{	// Ausblenden
			$("div#lvl_fe_map_wrapper").css("display", "none");
			$("div#lvl_fe_media_wrapper").css("display", "block");		
			$("#lvl_fe_caption_container").css("visibility", "visible");
			$("a#lvl_fe_mapbtn").removeClass("toggled");	
		}	
	}
	else
	{
		//Wenn Map nicht sichtbar
		if($("div#lvl_des_map_wrapper").css("display") == "none")
		{	
			$("div#lvl_des_media_wrapper").css("display", "none");			
			$("div#lvl_des_map_wrapper").css("display", "block");
	
			$("a#lvl_des_mapbtn").addClass("toggled");
			$("#lvl_des_caption_container").css("visibility", "hidden");
			// Google Map an DIV binden.
			bind_description_googlemap_on_tag("div#lvl_des_map_wrapper", id_entry)
		}
		else
		{	// Ausblenden
			$("div#lvl_des_map_wrapper").css("display", "none");
			$("div#lvl_des_media_wrapper").css("display", "block");		
			$("a#lvl_des_mapbtn").removeClass("toggled");	
		}	
	
	}
	
}



/*
 * Inititializing Javascript Eventhandler + Javascript Plugins
 * Is called by thickbox.js, one Fullentry-Contents are loaded and displayed
 */
function description_init()
{
	
	//Initialize Javascript Text-Scroller
	$("#lvl_des_right_container").jScrollPane();
	
}


var map_target = 0;
var lifelog_id_description = 0;


/* Funktion zum erstellen eines Markers auf der GoogleMap
 * 
 * point: Koordinaten des Markers
 * mapobject: Google Map
 */		
 
function createMarker(point, mapobject) 
{	
	newIcon = new GIcon();
	newIcon.image = DIR_PROJECT_ROOT_WEB+"modules/lvl/img/loggel_maps_marker.png";
	newIcon.iconSize = new GSize(20, 34);
	newIcon.shadowSize = new GSize(0, 0);	
	newIcon.iconAnchor = new GPoint(10, 34);	
	newIcon.infoWindowAnchor = new GPoint(9, 2);
	newIcon.infoShadowAnchor = new GPoint(18, 25);
	newIcon.transparent = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png";
	newIcon.printImage = "loggel_maps_marker.png";
	newIcon.mozPrintImage = "loggel_maps_marker.png";
	
	var marker = new GMarker(point, {draggable: false, bouncy:false, icon:newIcon, clickable: false });
	
	return marker;
}




/* Google Map init,
 *
 * target: Div-Id, in der das  Map-Div liegt
 */ 
function GoogleMap(target) {
	
  //DOM-Referenz speichern	
  this.target = $(target);
  
  //Map erstellen
  this.map = new GMap2(this.target[0]);
  
  //Startposition: Mitteleuropa
  this.map.setCenter(new GLatLng(50.4419, 9.1419), 4);
    
  //Controls initialisieren
  //Vergroeßerungs-Control mit Zoom Regler
  this.map.addControl(new GLargeMapControl());
  //Ansicht Control fuer Map, Satellit und Hybrid
  this.map.addControl(new GMapTypeControl()); 
  
  this.map.disableDoubleClickZoom();
    
 //Wenn Koordinaten bekannt sind, Marker setzen 
 if(lat!="")
 {
	  this.marker="";  
	  this.marker=createMarker(new GLatLng(lat, lng), this);
	  this.map.addOverlay(this.marker);
	  this.map.setCenter(new GLatLng(lat, lng), 13);
 } 
  
  var x_map = this.map;
  
  if(lifelog_id_description != 0)
  { 
  	// Dann hole dir die restlichen Marker falls vorhanden und setze sie in der Karte
  	//alert("Descrition: "+lifelog_id_description);
  	var param_list = '{'+
				'"module"				:	"lvl",'+
				'"file"					:	"ajax_lvl_action_get_description_coordinates.php",'+
				'"debug"				:	"false",'+
				'"value"	: {"id_lifelog" : "'+lifelog_id_description+'"'+ 
							   '}}';
		
	$.ajax({url: DIR_PROJECT_ROOT_WEB+'ajax.php', 
    		type: "POST",
    		async: false,
    		data: {param: param_list}, 
    		success: function(data)
    		{
		        coordinates = data.split("@@");
		
				// Wenn es mehr als ein Koordinatenpaar gibt, dann die folgenden Koordinaten in der GoogleMap einfuegen
				if(coordinates[0] > 1)
				{	
					// Leeres Grenzen Object erzeugen
					var bounds = new GLatLngBounds();	
					var bCoords = new GLatLng(coordinates[1], coordinates[2]);
					//map.setCenter(bCoords)
					bounds.extend(bCoords);
					//WriteConsoleObject(bounds);	
					
					for($a=3; $a<coordinates.length - 1; $a = $a+2)
					{	
						x_map.addOverlay(createMarker(new GLatLng(coordinates[$a], coordinates[$a+1]), this));
						bounds.extend(new GLatLng(coordinates[$a], coordinates[$a+1]));
						
						var polyline = new GPolyline([new GLatLng(coordinates[$a-2], coordinates[$a-1]), new GLatLng(coordinates[$a], coordinates[$a+1])], "#000", 1, 0.9);
							
						x_map.addOverlay(polyline); 				
					}
					// Hier noch Zoom einstellen
					x_map.setZoom(x_map.getBoundsZoomLevel(bounds));
					x_map.setCenter(bounds.getCenter());			
				}
				// Wieder auf Null setzen damit sich die naechste GoogleMap wieder neu initialisieren muss
				lifelog_id_description = 0;
		    }
	});			  	  	
  }
}


/* 
 * Erstellt Google Map in Div map_target (globale Variable)
 */
function mapLoaded()
{
	var map = new GoogleMap(map_target);
}

function bind_googlemap_on_tag(tag)
{
	//Wenn Tab Bearbeiten oder Neu geöffnet, Google Map setzen
    map_target = tag;
    google.load("maps", "2", {"callback" : mapLoaded});
}

function bind_description_googlemap_on_tag(tag, lifelog_id)
{
	//Wenn Tab Bearbeiten oder Neu geöffnet, Google Map setzen
	lifelog_id_description = parseInt(lifelog_id);	
    map_target = tag;
    google.load("maps", "2", {"callback" : mapLoaded});
}
