$(document).ready(function(){

	/* ie <= 6 fixes
	if($.browser.msie && $.browser.version <= 6) 
	{*/
		$(document).on('mouseenter focus', 'li', function(){
			$(this).addClass('helper-hover');
		});
		$(document).on('mouseleave blur', 'li', function(){
			$(this).removeClass('helper-hover');	
		});
	/*}
	 fix bugs for ie <= 7 */
	//console.log('version: ' + $.browser.version);
	if($.browser.msie)
	{
		$('blockquote p.quote-p, q').each(function(index){
			/* add "" to quotes */
			var tmpHtml = $(this).html();
			tmpHtml = '&bdquo;' + tmpHtml + '&ldquo;';
			$(this).html(tmpHtml);
		});
	}
	
	/* append specific stylesheet for webkit browser
	var userAgent = navigator.userAgent.toLowerCase();
	$.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
	var webkitVersion = parseInt($.browser.version.replace(/\./g, '').substr(0,4));
	
	if($.browser.webkit && webkitVersion <= 5352){
		$('body').prepend('<link href="assets/css/webkit.css" rel="stylesheet" type="text/css" media="projection,screen" />');
	} else if($.browser.chrome) {
		// chrome webkit version 535.7 displays the menu incorrectly
		$('body').prepend('<link href="assets/css/chrome5357.css" rel="stylesheet" type="text/css" media="projection,screen" />');
	}*/
	
	/*make shop columns to the same height */
	var className = 'shop-column';
	if($('#content .'+className).length > 0)
	{
		var th = 0; // init max height for the columns
		var i = 0;
		var numColumns = 3;
		$('#content .'+className).each(function()
		{
			th = (th < parseInt($(this).height()) ? parseInt($(this).height()) : th);
			if(++i === numColumns){
				$(this).addClass('helper-last');
				i = 0;
			}
		});
		//unknown bug in firefox 9+ for windows
		if(window.navigator.userAgent.indexOf('Linux') === -1 && $.browser.mozilla && parseInt($.browser.version) >= 9)
		{
			th += 30;
		}
		$('.'+className).css('height', th); // set height
		$('.'+className).css('position', 'relative'); // set position to relative, for button absolute position
		$('.'+className+' .shop-order-button').css('position', 'absolute');
		$('.'+className+' .shop-order-button').css('bottom', 0);
		$('.'+className+' .shop-order-button').css('right', '31px');
		
	}
	/* add last-attribute for browsers that don't support last-child */
	$('#mainmenu ul li:last').addClass("helper-last");
	
	/* shop form effect */
	$('#addressesdifferent').on('click', function(){
		$('#delivery-adress-form').slideToggle();
	});
	
	/* check window size, if less than 1024pixels hide white backgrounds right and left */
	checkContentWidth();
	$(window).resize(function() {
		checkContentWidth();
	});
	
	/*shop form validate*/
	if($('#shop-submit').length > 0)
	$('#shop-submit').on('click', function(){
		var ret = false;
		var requiredFields = {
			'firstname' : 'Vorname',
			'lastname' : 'Nachname',
			'street' : 'Straße, Hausnummer',
			'plz' : 'PLZ',
			'location' : 'Ort',
			'email' : 'Email'
		}
		if(!$('#addressesdifferent').is(':checked')){
			var additionalRequirements = {
				'delivery_firstname' : 'Lieferadressen Vorname',
				'delivery_lastname' : 'Lieferadressen Nachname',
				'delivery_street' : 'Lieferadressen Straße, Hausnummer',
				'delivery_plz' : 'Lieferadressen PLZ',
				'delivery_location' : 'Lieferadressen Ort'
			};
		}
		
		// caches the failed requirements to display the errors to the user
		var requiredFail = [];
		var additionalRequirementsFailed = false;
		var requirementsFailed = false;
		
		for(i in requiredFields){
			if($('#'+i).val() == ''){
				requiredFail.push(i);
				requirementsFailed = true;
			} else if(i.indexOf('email') !== -1){
				var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
				
				if(reg.test($('#'+i).val()) === false){
					requiredFail.push(i);
					requirementsFailed = true;
				}
			} else if(i.indexOf('plz') !== -1){
				var reg = /^([0-9\- ]{4,5})$/;
				
				if(reg.test($('#'+i).val()) === false){
					requiredFail.push(i);
					requirementsFailed = true;
				}
			}
		}
		if(additionalRequirements !== undefined){
			for(i in additionalRequirements){
				if($('#'+i).val() == ''){
					requiredFail.push(i);
					additionalRequirementsFailed = true;
				} else if(i.indexOf('email') !== -1){
					var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
					
					if(reg.test($('#'+i).val()) === false){
						requiredFail.push(i);
						additionalRequirementsFailed = true;
					}
				} else if(i.indexOf('plz') !== -1){
					var reg = /^([0-9\- ]{4,5})$/;
					
					if(reg.test($('#'+i).val()) === false){
						requiredFail.push(i);
						additionalRequirementsFailed = true;
					}
				}
			}
		}
		
		if(requiredFail.length > 0){
			var errorMsgClass = 'shop-error-text';
			var errorMsg = '<p class="'+errorMsgClass+'">Bitte füllen Sie alle nötigen Felder korrekt aus!</p>';
			
			$('.shop-error').removeClass('shop-error');
			for(i in requiredFail)
			{
				$('input#'+requiredFail[i]).addClass('shop-error');
				$('label[for='+requiredFail[i]+']').addClass('shop-error');
			}
			
			if(requirementsFailed===true)
			{
				if($('#bill-adress-form p.'+errorMsgClass).length === 0)
				{
					$('div#bill-adress-form table.shop-form').before(errorMsg);
				}
			}
			
			if(additionalRequirementsFailed===true)
			{
				if($('#delivery-adress-form p.'+errorMsgClass).length === 0)
				{
					$('div#delivery-adress-form table.shop-form').before(errorMsg);
				}
			}
			
		} else {
			ret = true;
		}
		
		if(ret === true)
		{
			$('#shop-form').submit();
			//console.log('ERFOLG!');
		}
		
		return ret;
	});
	
	/*add eventlistener for shop-form buttons (because they are hyperlinks and no input-submits) */
	$('#submit-edit').click(function(){$('#form-edit').submit();});
	$('#submit-sent').click(function(){$('#form-sent').submit();});
});
function checkContentWidth()
{
	if($.browser.msie && $.browser.version <= 6)
	{
		return;
	}
	if($('#outer-wrapper').width() <= 1080)
	{
		/* hide white backgrounds */
		$('#white-slice-bg-left, #white-slice-bg-right, #bg-top-left-white-image, #bg-top-right-white-image')
		 .css('display','none');
		$('#footer-shadow-edge, #footer-shadow-edge-right')
		 .css('visibility', 'hidden');
	} else {
		$('#white-slice-bg-left, #white-slice-bg-right, #bg-top-left-white-image, #bg-top-right-white-image')
		 .css('display','block');
		$('#footer-shadow-edge, #footer-shadow-edge-right')
		 .css('visibility', 'visible');
	}
}

