/**
 * Status der Felder (ausgefüllt?) -> anfangs nicht/false
*/
widgetStep = 1;
widgetFields = new Array();
widgetFields['title'] = false;
widgetFields['surename'] = false;
widgetFields['street'] = false;
widgetFields['house_number'] = false;
widgetFields['zipcode'] = false;
widgetFields['city'] = false;
widgetFields['email'] = false;
widgetFields['phone'] = false;
widgetFields['privacy_policy'] = false;
validationFailed = false;

$(document).ready(function()
{
	/**
	 * Klick des Weiter Buttons
	 */
	$('div#widget a.forward').click(function()
	{
		if($(this).hasClass('disabled'))
			return;
		
		forward();
		
		return false;
	});
	
	/**
	 * Klick des Absende-Button
	 */
	$('div#widget form button').click(function()
	{
		return validate();
	});
	
	/**
	 * Klick des Zurück Button
	 */
	$('div#widget a.backward').click(function()
	{
		
		if($(this).hasClass('disabled'))
			return;
		
		if(widgetStep > 1)
		{
			widgetStep--;
			$('div#widget div#widget-step-' + (widgetStep + 1)).hide();
			$('div#widget div#widget-step-' + widgetStep).show();
			$('div#widget a.forward').removeClass('disabled');
			$('div#widget ol.steps li').removeClass('active');
			$('div#widget ol.steps li.step' + widgetStep).addClass('active');
		}
		
		if(widgetStep < lastStep)
		{
			$('div#widget div.control button').hide();
			$('div#widget a.forward').show();
		}
		
		if(widgetStep <= 1)
			$('div#widget a.backward').addClass('disabled');
		
		return false;
	});
	
	
	$('div#widget form input[name="heating_type"]').click(function(){
		showMoreFields();
	});
	
	$('div#widget form input:radio, div#widget form input:checkbox').click(function(){
		formEvent($(this));
	});
	$('div#widget form select').change(function(){
		formEvent($(this));
	});
	$('div#widget form input').blur(function(){
		formEvent($(this));
	});
});

/**
 * Weiter zum nächsten Schritt
 */
function forward()
{
	if(!validate(widgetStep))
		return false;
	
	if(widgetStep < lastStep)
	{
		if(typeof(window.showMoreFields) == "function") {
			showMoreFields();
		}
		
		widgetStep++;
		$('div#widget div#widget-step-' + (widgetStep - 1)).hide();
		$('div#widget div#widget-step-' + widgetStep).show();
		$('div#widget a.backward').removeClass('disabled');
		$('div#widget ol.steps li').removeClass('active');
		$('div#widget ol.steps li.step' + widgetStep).addClass('active');
	}
	
	if(widgetStep >= lastStep)
	{
		$('div#widget a.forward').hide();
		$('div#widget div.control button').show();
		$('div#widget a.forward').addClass('disabled');
	}
}

/**
 * Fortschrittsbalken erhöhen
 * @param percent
 */
function increaseStatus(percent)
{
	current = parseInt($('div#widget div.control div.status-active').css('width'));
	
	if(current + percent < 100)
	{
		newPercent = current + percent;
	}
	else
	{
		newPercent = 100;
	}
	
	$('div#widget div.control div.status-active').animate({
		width: newPercent + '%'
	}, 250, function()
	{
		$('div#widget div.control div.current-status').html(newPercent + '%');
	});
}

function validatePersonalData()
{
	title = $('div#widget form select#widget-title option:selected').val();
	if(title == '')
	{
		$('div#widget form label[for="widget-title"]').addClass('error');
		$('div#widget form select#widget-title').addClass('error');
		error = true;
	}
	
	surename = $('div#widget form input#widget-surename').val();
	if(surename == '')
	{
		$('div#widget form label[for="widget-surename"]').addClass('error');
		$('div#widget form input#widget-surename').addClass('error');
		error = true;
	}
	
	street = $('div#widget form input#widget-street').val();
	if(street == '')
	{
		$('div#widget form label[for="widget-street"]').addClass('error');
		$('div#widget form input#widget-street').addClass('error');
		error = true;
	}
	
	houseNumber = $('div#widget form input#widget-house-number').val();
	if(houseNumber == '')
	{
		$('div#widget form label[for="widget-house-number"]').addClass('error');
		$('div#widget form input#widget-house-number').addClass('error');
		error = true;
	}
	
	zipcode = $('div#widget form input#widget-zipcode').val();
	if(zipcode == '' || zipcode.length < 5)
	{
		$('div#widget form label[for="widget-zipcode"]').addClass('error');
		$('div#widget form input#widget-zipcode').addClass('error');
		error = true;
	}
	
	city = $('div#widget form input#widget-city').val();
	if(city == '')
	{
		$('div#widget form label[for="widget-city"]').addClass('error');
		$('div#widget form input#widget-city').addClass('error');
		error = true;
	}
	
	email = $('div#widget form input#widget-email').val();
	emailRegEx = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	if(email == '' || !emailRegEx.test(email))
	{
		$('div#widget form label[for="widget-email"]').addClass('error');
		$('div#widget form input#widget-email').addClass('error');
		error = true;
	}
	
	phone = $('div#widget form input#widget-phone').val();
	//phoneRegEx = /^[+0-9/\s()]+$/;
	
	queersumme = 0;
	phone2 = phone.split('');
	for(i = 0; i < phone.length; i++)
		queersumme += phone2[i]-0;
	
	//if(phone == '' || !phoneRegEx.test(phone) || queersumme <= 0 || phone.substr(0, 6) == '123456')
	if(phone == '' || (queersumme != "NaN" && queersumme <= 0) || phone.length < 8 || (phone.substr(0,1) != '0' && phone.substr(0,1) != '+') || phone.substr(0, 6) == '123456' || phone.substr(0, 7) == '0123456')
	{
		$('div#widget form label[for="widget-phone"]').addClass('error');
		$('div#widget form input#widget-phone').addClass('error');
		error = true;
	}
	
	privacyPolicy = $('div#widget form input#widget-privacy-policy:checked').val();
	if(typeof privacyPolicy == 'undefined')
	{
		$('div#widget p.privacy_policy').addClass('error');
		error = true;
	}
	
	return error;
}

function resetPersonalDataErrors()
{
	$('div#widget form label[for="widget-title"]').removeClass('error');
	$('div#widget form select#widget-title').removeClass('error');
	$('div#widget form label[for="widget-surename"]').removeClass('error');
	$('div#widget form input#widget-surename').removeClass('error');
	$('div#widget form label[for="widget-street"]').removeClass('error');
	$('div#widget form input#widget-street').removeClass('error');
	$('div#widget form label[for="widget-house-number"]').removeClass('error');
	$('div#widget form input#widget-house-number').removeClass('error');
	$('div#widget form label[for="widget-zipcode"]').removeClass('error');
	$('div#widget form input#widget-zipcode').removeClass('error');
	$('div#widget form label[for="widget-city"]').removeClass('error');
	$('div#widget form input#widget-city').removeClass('error');
	$('div#widget form label[for="widget-email"]').removeClass('error');
	$('div#widget form input#widget-email').removeClass('error');
	$('div#widget form label[for="widget-phone"]').removeClass('error');
	$('div#widget form input#widget-phone').removeClass('error');
	$('div#widget p.privacy_policy').removeClass('error');
}