// logbook front - 2009 - gingebaker - klubarbeit.net
var gmap = false;
var newcomment_slide = false;
window.addEvent("domready", initLogbook);


function initLogbook() {
	initgmap();
	if($('logmonthlist'))
		$('logmonthlist').setStyle('opacity',0.6);
	initnewcomment();
	initnewmessage();
	initScroller();
	initTeamAcc();
}


function initScroller() {
	if($('control_left') && $('control_right') && $('thumbcontainer')) {
		var tc = $('thumbcontainer');
		var cl = $('control_left');
		var cr = $('control_right');
		var scroll_width = 720;
		if(tc.getElements('a').length < 5) {
			cr.setStyle('opacity',0.20);
			cl.setStyle('opacity',0.20);
			//$('thumbcontainer').getElement('a').fireEvent('click');
			return false;	
		}
		
		var myScroll = new Fx.Scroll(tc, {
			duration: 'long',
			transition: Fx.Transitions.Cubic.easeInOut
		});
		cl.setStyle('cursor','pointer');
		cr.setStyle('cursor','pointer');
		cl.setStyle('opacity',0.50);
		cr.addEvent('click',function() {
			new_x = tc.getScroll().x + scroll_width;
			myScroll.start(new_x,0);
			cl.setStyle('opacity',1);
			(new_x + scroll_width) > tc.getScrollSize().x ? cr.setStyle('opacity',0.50) : cr.setStyle('opacity',1);
		});
		cl.addEvent('click',function() {
			new_x = tc.getScroll().x - scroll_width;
			myScroll.start(new_x,0);
			cr.setStyle('visibility','visible');
			cr.setStyle('opacity',1);
			(new_x - scroll_width) <= -scroll_width ? cl.setStyle('opacity',0.50) : cl.setStyle('opacity',1);
		});
		//$('picslide').getElement('a').fireEvent('click');
	}
}

function initTeamAcc() {
	if(!$('team_acc'))
		return false;
	var accordion = new Accordion($$('div.toggler'), $$('div.element'), {
		opacity: false,
		display: -1,
		onActive: function(toggler, element){
			toggler.setStyle('background-color', '#329998');
		},
	 
		onBackground: function(toggler, element){
			toggler.setStyle('background-color', '#000000');
		}
	}, $('team_acc'));
	if($('pic_patrice'))
		$('pic_patrice').addEvent('click',function() { accordion.display(0); } );
	if($('pic_flo'))
		$('pic_flo').addEvent('click',function() { accordion.display(1); } );
	if($('pic_anton'))
		$('pic_anton').addEvent('click',function() { accordion.display(2); } );

}

function initgmap() {
	if(!$('gmapcontainer'))
		return false;
	//breite $('gmapcontainer').getStyle('width')) > 260 ? 
	gmap = new ka_GoogleMap($('gmapcontainer'),{map_type: 'G_HYBRID_MAP'});
	data = $$('#main .logdata');
	gmapdata = new Array();
	if(data.length > 0) {
		data.each(function(point,index) {
			pointtext = point.get('text');
			cut = pointtext.indexOf("|");
			if(cut != -1) {
				lat = pointtext.substr(0,cut-1);
				long = pointtext.substr(cut+1);
				if(index == 0)
					showDistanceFromHome(lat,long);
				xparent = point.getParent();
				date = xparent.getElement('.logdate').get('text');
				headline = xparent.getElement('.logheadline').get('text');
				city = xparent.getElement('.logcity').get('text');
				if(xparent.getElement('.logmore'))
					link_href = '/index.php'+xparent.getElement('.logmore').getElement('a').get('href');
				else
					link_href = false;
				gmapdata.push({lat: lat, long: long, title: date+" "+city,text: "<strong>Eintrag vom: "+date+"</strong><br/><small>"+city+"</small><br/>"+headline, link_href: link_href});
			}
		});
		gmap.showPoints(gmapdata);
	}
}

function showDistanceFromHome(lat,long) {
	if(!$('distance_info'))
		return false;
	km = calculateDistance(lat.parseDeg(),long.parseDeg(),47.449174,12.3857681).round(0);
	$('distance_info').set('html','Entfernung von daheim:<br/>ca. '+km+'km');
}


function initnewcomment() {
	if(!$('newcommentbutton') || !$('newcomment'))
		return false;
	/*newcomment_slide = new Fx.Slide($('newcomment'),{'onComplete':function() { var myFx = new Fx.Scroll(window).toElement($('commentcontainer')); }});
	newcomment_slide.hide();
	$('newcommentbutton').addEvent('click',function() { 
		if($('commentcontainer')) {
			newcomment_slide.toggle();
			return false;
		}
	});*/
	$('submit_comment').addEvent('click',sendcomment);
	
}

function initnewmessage() {
	if(!$('newcomment_contact'))
		return false;
	$('submit_comment').addEvent('click',sendcomment_contact);
	//$('newcomment_contact').setStyle('opacity',0.6);
}

function sendcomment() {
	if(!$('name') || !$('email') || !$('comment'))
		return false;
	name = $('name').get('value').stripScripts();
	email_val = $('email').get('value').stripScripts();
	comment_val = $('comment').get('value').stripScripts();
	front_visible = $('front_visible').get('checked') ? 1 : 0;
	if(name.length < 1) { window.alert("Name muss ausgefellt werden!"); return false; }
	if(comment_val.length < 3) { window.alert("Kommentar muss ausgefellt werden!"); return false; }
	if(email_val.length > 0 && !email_val.test(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)) { window.alert("bitte korrekte Email Adresse angeben!"); return false; }
	blog_id_val = $('blog_id').get('value').stripScripts();
	$('submit_comment').set('disabled','disabled');
	$commentsend = new Request.JSON({
		url: 'index.php',
		data: {'action': 'insertcomment','name': name, 'email': email_val,'comment': comment_val,'blog_id': blog_id_val,'front_visible': front_visible},
		onSuccess: function(insert) {
			if(insert && insert.error) {
				em_string = "";
				insert.msg.each(function(mes) { em_string = em_string+"\n"+mes; });
				window.alert("Fehlerhafte-Daten:"+em_string);
				$('newcomment').highlight('#990000');
				$('submit_comment').set('disabled','');
			} else {
				$('submit_comment').set('disabled','');
				wrap = new Element('div',{'class': 'logcomments'});
				wrap.set('text',insert.comment);
				header = new Element('div',{'class': 'comment_header'});
				header.set('text','von '+insert.name+' am '+insert.entrydate+' Uhr');
				wrap.grab(header,'top');
				$('commentcontainer').grab(wrap,'top');
				$('name').set('value','');
				$('email').set('value','');
				$('comment').set('value','');
				newcomment_slide.slideOut();
			}
		},
		onFailure: function(errorData)  {
			window.alert("Error on Ajax Request...(insertcomment)");	
		}
	}).send();
}

function sendcomment_contact() {
	if(!$('name') || !$('email') || !$('comment'))
		return false;
	name = $('name').get('value').stripScripts();
	email = $('email').get('value').stripScripts();
	comment = $('comment').get('value').stripScripts();
	if(name.length < 1) { window.alert("Name muss ausgefellt werden!"); return false; }
	if(comment.length < 3) { window.alert("Kommentar muss ausgefellt werden!"); return false; }
	if(email.length > 0 && !email.test(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)) { window.alert("bitte korrekte Email Adresse angeben!"); return false; }
	blog_id = '';
	$('submit_comment').set('disabled','disabled');
	$commentsend = new Request.JSON({
		url: 'index.php',
		data: {'action': 'insertcomment','name': name, 'email': email,'comment': comment,'blog_id': blog_id},
		onSuccess: function(insert) {
			if(insert && insert.error) {
				em_string = "";
				insert.msg.each(function(mes) { em_string = em_string+"\n"+mes; });
				window.alert("Fehlerhafte-Daten:"+em_string);
				$('newcomment_contact').highlight('#990000');
				$('submit_comment').set('disabled','');
			} else {
				$('submit_comment').set('disabled','');
				$('name').set('value','');
				$('email').set('value','');
				$('comment').set('value','');
				$('newcomment_contact').highlight('#009900');
			}
		},
		onFailure: function(errorData)  {
			window.alert("Error on Ajax Request...(insertcomment)");	
		}
	}).send();
}


function toggleMapView() {
	if(Browser.Engine.name == 'trident' && Browser.Engine.version == 4) {
		window.alert("IE6 kann diese Funktion nicht ausfuehren...");
		return false;
	}
	if($('topcontainer').getStyle('height') == '500px') {
		height1 = '300px';
		height2 = '310px';
	}
	else {
		height1 = '500px';
		height2 = '510px';
	}
	$('gmapcontainer').setStyle('height',height1);	
	$('topcontainer').setStyle('height',height1);	
	$('maincontainer').setStyle('padding-top',height2);
}
