var focusedElem = null;
var submitClicked = false;

function validateMin(input,min) {
		if (input.value.length < min) {
			validateOnError(input);
		}
		else {
			validateOnCorrect(input);
		}
	}
function validateNoEmpty(input) {
	if (!input.value.length > 0) {
		validateOnError(input);
	}
	else {
		validateOnCorrect(input);
	}
}

function validateNoEmptyNumbers(input) {
	if (!input.value.match(/^[0-9 ]+$/)) {
		validateOnError(input);
	}
	else {
		validateOnCorrect(input);
	}
}
function validatePeselNoEmpty(input) {
		if (!input.value.match(/^[0-9]{11}$/)) {
			validateOnError(input);
		}
		else {
			validateOnCorrect(input);
		}
	}
function validateNumbers(input) {
	if (!input.value.match(/^[0-9 ]*$/)) {
		validateOnError(input);
	}
	else {
		validateOnCorrect(input);
	}
}

function validateEmtyOrEmail(input) {
	if (input.value == '' || input.value.match(/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/)) {
		validateOnCorrect(input);
	} else {
		validateOnError(input);
	}
}

function validateRepetition(input) {
	var pass1=$(input).parents('div.fields:first').find('input[type=password]:first');
	var pass2=$(input).parents('div.fields:first').find('input[type=password]:last');
	if (pass1.val() != pass2.val()) {
		validateOnError(pass2.get(0));
	}
	else {
		validateOnCorrect(pass2.get(0));
	}
}
function validateNoEmptyRepetition(input) {
	var pass1=$(input).parents('div.fields:first').find('input[type=password]:first');
	var pass2=$(input).parents('div.fields:first').find('input[type=password]:last');
	if (pass2.val() == '' || pass1.val() != pass2.val()) {
		validateOnError(pass2.get(0));
	}
	else {
		validateOnCorrect(pass2.get(0));
	}
}
function validateCheck(input) {
	if (!$(input).is(':checked')) {
		validateOnError(input);
	}
	else {
		validateOnCorrect(input);
	}
}

function validateEmail(input) {
if (!input.value.match(/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/)) {
		validateOnError(input);
	}
	else {
		validateOnCorrect(input);
	}
}


function validateOnError(input) {
	$(input.parentNode).removeClass('correct');
	$(input.parentNode).addClass('error');
}

function validateOnCorrect(input) {
	$(input.parentNode).removeClass('error');
	if($(input).val() == '')
		$(input.parentNode).removeClass('correct');
	else if(submitClicked == false)
		$(input.parentNode).addClass('correct');
}

function submitAjaxForm(form) {
	var form = $('#' + form),
		data = $(form).serialize();
	if(!$(form).data('sended')) {
		$.sfWindow.overlay();
		$('#formContainer').data('sended', true).load($(form).attr('action') + '&' + data, function() { initButton(); });
	}
}
function initButton() {
	$.sfWindow.overlayDestroy();
	$('a.actionSubmitAjax').click(function(event) {
		event.preventDefault();
		submitAjaxForm("$(this).parents('form:first')");
	});
}

function markRadio() {
	$('.radio label').children('input[type=radio]').each(function(){
		if($(this).get(0).checked==false)
			$(this).parents('label:first').addClass('inactive');
		else
			$(this).parents('label:first').removeClass('inactive');
	});
}

function initValidation(){
	$('input, select, textarea').not('.novalidate').each(function() {
		var attributes = $(this).prop('title').split(';')
		$(this).focusout(new Function('focusedElem = null;if($(this).hasClass("novalidate")) return;' + attributes[0] + '($(this).get(0)'+ (attributes[1] != undefined ? (','+(attributes[1])) : '') +');'));
		$(this).removeAttr('title');
	});
}

function submitForm(button) {
	$.sfWindow.overlay();
	button.parents('form:first').submit();
}

function showRadioChoose() {
	chosen = $('input.radio:checked').first();
	$('.radioChoose').hide();
	chosen.parents('form:first').find('#' + chosen.attr('id') + 'Choose').show();
}

$(function() {

	$('a.submit').click(function(event) {
		event.preventDefault();
		$(this).parents('form:first').submit();
	});
	$('.actionSaveChanges, .actionRegisterIn, .actionSubmitAjax, .loginSubmit, .actionCartSubmitOnce, .checkAndSubmit').click(function(event) {
		event.preventDefault();
		var clickedButton = $(this);


		var errors='';
		$('input:visible, select:visible, textarea:visible').each(function(){
			submitClicked=true;
			$(this).focusout();
			submitClicked=false;
			if($(this).parents('label:first').hasClass('error'))
				errors += '<li>' + simpleFormatTitle($(this).siblings('span.icon:first').html()) + '</li>';
		});
		if(errors){
			$.sfWindow.alert(i18n.account.register.errorAlertTitle, '<ul>'+errors+'</ul>', { zIndex: 2000 });
			$('.ui-dialog button').click (function(){
				$('label.error:first input:visible').mouseover().focus();
			});
		}
		else {
			if (!$(this).parents('form:first').data('submitted')) {
				$('#nextStep').val('true');
				$(this).parents('form:first').data('submitted', true);
			}

			if($(this).hasClass('actionSubmitAjax'))
				submitAjaxForm($(this).parents('form:first').attr('id'));
			else {
				if($(this).attr('id') == 'step2submit' && $(this).parents('form:first').find('input#phone').val() == '' ){
					var buttons = {};
					buttons[i18n.iface.button.yes] = function() {$(this).dialog('close'); $('input#phone').mouseover().focus(); return false;};
					buttons[i18n.iface.button.no] = function() {
						$(this).dialog('close');
						submitForm(clickedButton);
					};
					$.sfWindow.alert(i18n.iface.alert, i18n.account.form.warningNoPhone, {
						zIndex: 2000,
						buttons: buttons
					});
				}
				else if($(this).hasClass('actionRegisterIn') && $(this).parents('form:first').find('input#zgoda_mailing:checked').size() == 0){
					var buttons = {};
					buttons[i18n.iface.button.no] = function() {$(this).dialog('close'); $('input#zgoda_mailing').mouseover(); return false;};
					buttons[i18n.iface.button.yes] = function() {
						$(this).dialog('close');
						submitForm(clickedButton);
					};
					$.sfWindow.alert(i18n.iface.alert, i18n.account.form.warningNoMailingAgreement, {
						zIndex: 2000,
						buttons: buttons
					});
				}
				else{
					$('<input type="hidden" name="createorder" value="true" />').appendTo('#order');
					submitForm($(this));
				}
			}
			if($(this).hasClass('actionRegisterIn'))
				$.cookie('SFstate', 'register');
		};
	});

	markRadio();
	$('.radio label').click(function(){
		$(this).children('input[type=radio]:first, select').get(0).checked=true;
		markRadio();
	});




	$('input, select, textarea').focus(function(e){focusedElem = e.target});

	initValidation();

	$('label[title]').each(function() {
		var qtipSettings = {
			show: {
				delay: 100,
				effect: function(api) { $(this).slideDown(undefined, function () {$(this).dequeue();}); },
				event: 'mouseover focus'
			},
			hide: {
				effect: function(api) { $(this).slideUp(undefined, function () {$(this).dequeue();}); },
				event: 'mouseout focusout'
			},
			style: {
				classes: 'ui-tooltip-rounded ui-tooltip-blue',
				tip: true
			},
			position: {
				at: 'right top',
				my: 'left center',
				adjust: {
					x: -2,
					y: 26
				}
			},
			events: {
				show: function (e, api) {
					var labelElement = api.elements.target;
					if($(labelElement).children('span.icon:first').size() > 0){
						var errorText = simpleFormatTitle($(labelElement).children('span.icon:first').html());
						if (errorText != '' && $(labelElement).hasClass('error') && api.get('style.classes') != 'ui-tooltip-rounded ui-tooltip-red') {
							api.set({
								'content.text' : errorText,
								'style.classes': 'ui-tooltip-rounded ui-tooltip-red'
							});
						} else if(api.get('style.classes') == 'ui-tooltip-rounded ui-tooltip-red' && !$(labelElement).hasClass('error')) {
							api.set({
								'content.text' : simpleFormatTitle($(labelElement).attr('oldtitle')),
								'style.classes': 'ui-tooltip-rounded ui-tooltip-blue'
							});
						}
					}
				},
				hide: function (e, api) {
					if(typeof(e) !== 'undefined'){
						var inputElement = $(api.elements.target).find('select, textarea, input[type!=radio]:first');
						if(focusedElem && inputElement.get(0) == focusedElem && e.type=='tooltiphide')
							e.preventDefault();
					}
				}
			}
		}, title = $(this).attr('title');

		if($(this).hasClass('leftTip')){
			qtipSettings.position = {
				at: 'left top',
				my: 'right middle'
			};
		}
		if($(this).hasClass('checkbox')){
			qtipSettings.position.adjust = {
				x: 0,
				y: 5
			};
		}
		if (title) {
			title = simpleFormatTitle(title);
			qtipSettings = $.extend(true, {}, qtipSettings, { content: { text: title } } );
			$(this).qtip(qtipSettings);
			$(this).removeAttr('title');

		};
	});
	$('#dataType'+$('#partnerDataType').val()).show().removeClass('hidden');
	$('#partnerDataType').change(function(){
		$('.dataType').hide();
		$('#dataType'+$(this).val()).show().removeClass('hidden');
	});

	showRadioChoose();
	$('input.radio').change(function(){
		showRadioChoose();
	});



});

