var steps = 15;
var delay = 25;

var contact;
var gmap;
var hint;
function prepare(){
	
	contact = new popup(
		$('contact'),
		
		355,770,
		25,20,
	
		281,423,
		410,260
	);
	contact.onAfterClose = function(){
		set_opacity_errors(calc(0,1,0));
		$('err_name').update('');
		$('err_email').update('');
		$('err_message').update('');
		$('contact').down('form').reset();
		
	}
	
	
	gmap = new popup(
		$('gmap'),
		
		185,520,
		25,20,
	
		281,423,
		446,346
		
	);
	gmap.onAfterOpen = loadgmap;
	
	hint = new hint(
		$('hint'),
		$('main'),
		310,20
	);
	
	image1 = new Image();
	image1.src = './images/popup_kontakt_sent.png';
	
	
	if (URL.get('openAction')=='Contact'){
		contact.open();
	}
	if (URL.get('openAction')=='Location'){
		gmap.open();
	}
	
	
	
}
var errors_shown = 0;
var sending = null;
var success = 2;
function send(){
	if (sending != null){
		// nur eine instanz
		return ;
	}
	
	if (Math.round(errors_shown*100)/100 >= 1){
		// alte meldung ausblenden
		hide_errors();
		return;
	}else if (Math.round(errors_shown*100)/100 > 0){
		// effekt l�uft schon 
		return ;
	}
	sending = new Ajax.Request(
		'./contact.php',
		{
			method:'post',
			parameters : $('contactform').serialize(),
			onSuccess: function(transport){
				result = transport.responseText.evalJSON();
				
				$('err_name').update( result.err_name?result.err_name:'');
				$('err_email').update( result.err_email?result.err_email:'');
				$('err_message').update( result.err_message?result.err_message:'');
				if(result.errorcount>0){
					show_errors();
				}else{
					// bild tauschen
					$('contact').down('.content').style.display = 'none';
					if (ie6){
						$('contact').down('.background').runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./images/popup_kontakt_sent.png',sizingMethod='scale');";
					}else{
						$('contact').down('.background').src = './images/popup_kontakt_sent.png';
					}
					window.setTimeout(contact.close.bind(contact),5000);
				}
				sending = null;
			},
			onFailure: function(transport, result){
				alert('UNKNOWN');
				sending = null;
			}
		}
	);
}



function set_opacity_errors(stufe){
	set_opacity($('err_name'),stufe);
	set_opacity($('err_email'),stufe);
	set_opacity($('err_message'),stufe);
}



function hide_errors(){
	errors_shown -= 1/steps;
	set_opacity_errors(calc(0,1,errors_shown));
	if (Math.round(errors_shown*100)/100 > 0){
		window.setTimeout(hide_errors,delay);
	}else{
		send();
	}
}

function show_errors(){
	errors_shown += 1/steps;
	set_opacity_errors(calc(0,1,errors_shown));
	if (Math.round(errors_shown*100)/100 < 1){
		window.setTimeout(show_errors,delay);
	}
}

function loadgmap(){
	if (GBrowserIsCompatible()) {
		mapdiv = $('map');
		
		var map = new GMap2(mapdiv);

		// und nun los
		map.enableScrollWheelZoom();
		GEvent.addDomListener(mapdiv, "DOMMouseScroll", wheelevent);
		mapdiv.onmousewheel = wheelevent;

		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		mt = map.getMapTypes();
		for (var i=0; i<mt.length; i++) {
			mt[i].getMinimumResolution = function() {return 0;}
			mt[i].getMaximumResolution = function() {return 20;}
		}
		mycontrol = new GMapTypeControl();
		map.addControl(mycontrol);
		
		// direkt �ber der krumedia
		map.setCenter(new GLatLng(48.994877, 8.464904), 14);

		new GKeyboardHandler(map);
		map.enableDoubleClickZoom();
		map.enableContinuousZoom();
		
		map.setMapType(G_NORMAL_MAP);
		
		var image = new Array("./images/map_krumedia_point.png",79,38);
		var point = new GLatLng("48.994877","8.464904");
		marker = createOtherMarker(point, 'Wir freuen uns auf Ihren Besuch',image);
		map.addOverlay(marker);
	}
}


function calc(start,end,progress){
	var t = (1 -1*(Math.cos(progress*Math.PI)))/2;
	var value = start+(end-start)*t;
	return value;
}

function set_opacity(element,stufe){
	stufe = Math.min(1,Math.max(0,stufe));
	element.style.opacity = stufe;
	stufe = Math.round(stufe*100);
	element.style.filter = 'alpha(opacity='+stufe+')';
}

function URL()
{
}

URL.get = function(name){
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null ){
		return "";
	}else{
		return decodeURIComponent(results[1]);
	}
}