var mapsheight = 400;
var mapswidth = 290;

init();

function init(){
	noSpam();
	MBP.scaleFix();
	yepnope({
		test : Modernizr.mq('(min-width)'),
		nope : ['js/libs/respond.min.js']
	});
	
	$(window).bind('resize', handleResize);
}

function handleResize(){
	var newwidth = parseInt($('#main > article').width(), 10);
	
	$(".googlemaps-address").createMap({'readObject': '.geocode-address','geocodeObject':'.geocode-address','width': newwidth, 'height': mapsheight, 'zoom':14, 'color': 'red'});

}

function noSpam(){if(document.getElementById){var at="@";var links=document.getElementsByTagName('a');for(var i=0;i<links.length;i++){var linkElem=links[i];if(linkElem.className=='escape'){var mail=linkElem.firstChild;var domain=linkElem.lastChild;mail.nextSibling.firstChild.innerHTML=at;linkElem.href="mailto:"+mail.data+at+domain.data;}}}}
window.addEventListener?window.addEventListener('load',noSpam,false):window.attachEvent('onload',noSpam); 

// createMap-Plugin
(function( $ ){
	var methods = {
		init : function(options) {
			var settings = {
				'readObject':		'.address',
				'geocodeObject':	'.geocode',
				'width':			mapswidth,
				'height':			mapsheight,
				'zoom':				14, // between 0 and 21
				'color':				'red'
			}
			$.extend(settings, options);
			
			// fix address and convert it to a single line
			var address = $.trim($(settings.readObject).text());
			address = address.replace(/[\s]+$/, '');
			address = address.replace(/\n/, ',');
			address = address.replace(/,,/, ',');
			address = address.replace(/,/, ', ');
			var uri = encodeURI(address);
			uri = uri.replace(/\%0a/i, ' ');
			
			// getting geocode
			var geocode = '';
			if ($(settings.geocodeObject).length > 0) {
				geocode = encodeURI($.trim($(settings.geocodeObject).text()));
			}
			
			var mapLink = 'http://maps.google.de/maps?f=q&source=s_q&hl=de&geocode=&q='+uri;
			var color	= encodeURI(settings.color);
			
			this.each(function() {
				$(this).html("");
				$(this).append('<a href="'+mapLink+'"><img src="http://maps.google.com/maps/api/staticmap?center='+uri+'&amp;zoom='+settings.zoom+'&amp;size='+settings.width+'x'+settings.height+'&amp;markers=icon:http://dr-med-sandermann.mobi/images/m/maps-icon.png%7C'+geocode+'&amp;mobile=true&sensor=true" width="'+settings.width+'" height="'+settings.height+'" /></a>');
			});
		}
	};

	$.fn.createMap = function( method ) {
		// Method calling logic
		if ( methods[method] ) {
			return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
		} else if ( typeof method === 'object' || !method ) {
			return methods.init.apply( this, arguments );
		} else {
			$.error( 'Method ' +  method + ' does not exist on jQuery.createMap' );
		}
	};
})( jQuery );

jQuery(function() {
	jQuery(".googlemaps-address").createMap({'readObject': '.geocode-address','geocodeObject':'.geocode-address','width':mapswidth, 'height': mapsheight, 'zoom':14, 'color': 'red'});
});

// form_validation version 3.0
//  ----------------------------
// | Euroweb Internet GmbH     |
//  ----------------------------
// $creator s.krassnig
// $modifier d.kressler
// $date 2010-11-26

var errorMsgNum = "Bitte nur Zahlen eingeben!";
var errorMsgEmpty = "Das Eingabefeld ist leer!";
var errorMsgMail = "Gültige E-Mail eingeben!";
var errorMsgSelect = "Bitte eine Option wählen!";
var errorMsgDefault = "Feldeingabe fehlerhaft!";

var error=0;var currentLabel='';var currentField='';var klasse='';var newClass='';function validateForm(formular)
{error=0;for(var i=0;i<document.getElementsByTagName("label").length;i++)
{currentLabel=document.getElementsByTagName("label")[i];if(currentLabel.htmlFor)
{currentField=document.getElementById(currentLabel.htmlFor);}
checkField(currentLabel,currentField);}
if(error===0)
return true;else
return false;}
var checkField=function(currentLabel,currentField)
{klasse=currentLabel.className;newClass=currentLabel.className.replace(/ error/,'');if(currentField)
{if(currentField.name=='Rueckruf')
{if(currentField.checked==true)
{document.getElementById('label-telefon').className+=' required rueckruf';}else
{var newTelClass=document.getElementById('label-telefon').className.replace(/ required rueckruf/,'');document.getElementById('label-telefon').className=newTelClass;}}
if(klasse.match(/required/)!=null)
{if(currentField.tagName=='SELECT')
{if(currentField.childNodes[1].selected)
{currentLabel.className=newClass;currentLabel.className+=' error';currentField.className+=' error';triggerErrorSpan(currentLabel,"select");error=1;}else
{currentLabel.className=newClass;currentField.className='';removeErrorSpan(currentLabel,null);}}
else if(currentField.type=='checkbox')
{if(currentField.checked==false)
{currentLabel.className=newClass;currentLabel.className+=' error';currentField.className+=' error';triggerErrorSpan(currentLabel,"select");error=1;}else
{currentLabel.className=newClass;currentField.className='';removeErrorSpan(currentLabel);}}
else
{if(currentField.value=='')
{currentLabel.className=newClass;currentLabel.className+=' error';currentField.className+=' error';triggerErrorSpan(currentLabel,"empty");error=1;}else
{currentLabel.className=newClass;currentField.className='';removeErrorSpan(currentLabel);}}}
if(klasse.match(/number/)!=null)
{var numeric=isNumber(currentField);if(!numeric&&!klasse.match(/required/) && currentField.value!='')
{currentLabel.className=newClass;currentLabel.className+=' error';currentField.className+=' error';triggerErrorSpan(currentLabel,"num");error=1;}else
{currentLabel.className=newClass;currentField.className='';removeErrorSpan(currentLabel);}
if(!numeric&&klasse.match(/required/))
{currentLabel.className=newClass;currentLabel.className+=' error';currentField.className+=' error';triggerErrorSpan(currentLabel,"num");error=1;}else
{if(error==0)
{currentLabel.className=newClass;currentField.className='';removeErrorSpan(currentLabel);}}
return error;}
if(klasse.match(/mail/)!=null)
{var valid=isMailValid(currentField);if(!valid&&currentField.value!='')
{currentLabel.className=newClass;currentLabel.className+=' error';currentField.className+=' error';triggerErrorSpan(currentLabel,"mail");error=1;}else{currentLabel.className=newClass;currentField.className='';removeErrorSpan(currentLabel);}
if(!valid&&klasse.match(/required/))
{currentLabel.className=newClass;currentLabel.className+=' error';currentField.className+=' error';triggerErrorSpan(currentLabel,"mail");error=1;}else
{if(error==0)
{currentLabel.className=newClass;currentField.className='';removeErrorSpan(currentLabel);}}}
return error;}}
function isNumber(field){var returnvar=(isNaN(parseInt(field.value))==true)?false:true;return returnvar;}
function isMailValid(field){var returnvar=(field.value.match(/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/))?true:false;return returnvar;}
function triggerErrorSpan(currentLabel,type)
{switch(type)
{case"num":var errorSpanText=errorMsgNum;break;case"text":var errorSpanText=errorMsgText;break;case"empty":var errorSpanText=errorMsgEmpty;break;case"mail":var errorSpanText=errorMsgMail;break;case"select":var errorSpanText=errorMsgSelect;break;default:var errorSpanText=errorMsgDefault;}
var labelId=currentLabel.getAttribute('id');if(document.getElementById("error-"+labelId)==null)
{var errorSpan=document.createElement('span');var innerSpan=document.createElement('span');var triangle=document.createElement('span');currentLabel.appendChild(errorSpan);currentLabel.setAttribute("style","position:relative");errorSpan.appendChild(triangle);errorSpan.appendChild(innerSpan);errorSpan.setAttribute("id","error-"+labelId);errorSpan.className="errorSpan";triangle.className="triangle";innerSpan.className="errorMessage";innerSpan.innerHTML=errorSpanText;}}
function removeErrorSpan(currentLabel)
{var labelId=currentLabel.getAttribute('id');if(document.getElementById("error-"+labelId)!=null)
{var Knoten=document.getElementById("error-"+labelId);document.getElementById(labelId).removeChild(Knoten);}}
function addEvent(obj,evType,fn,useCapture)
{if(obj.addEventListener)
{obj.addEventListener(evType,fn,useCapture);return true;}
else if(obj.attachEvent)
{var r=obj.attachEvent("on"+evType,fn);return r;}}
function getElementsByClassName(classname,node)
{if(!node)node=document.getElementsByTagName("body")[0];var a=[];var re=new RegExp('\\b'+classname+'\\b');var els=node.getElementsByTagName("*");for(var i=0,j=els.length;i<j;i++)
if(re.test(els[i].className))a.push(els[i]);return a;}
var liveValidation=function()

{var form=getElementsByClassName('required',document);var form=form.concat(getElementsByClassName('number',document));var form=form.concat(getElementsByClassName('mail',document));for(i=0;i<form.length;i++)
{var field=form[i].nextSibling.nextSibling;var label=form[i];addEvent(form[i].nextSibling.nextSibling,"blur",function(e)
{e=e||window.event;var field=(e.originalTarget)?e.originalTarget:e.srcElement;var label=field.previousSibling.previousSibling;checkField(label,field);})}}
addEvent(window,"load",liveValidation);
