
// validacja formularza reklamacji

function isEmpty(str) {
	if (str == null)
		return true;
	else if (str.length == 0)
		return true;
	return false;
}

function isNumeric(str) {
	if (isEmpty(str))
		return false;
	
	if (isNaN(parseInt(str)))
		return false;
	
	var valid = '0123456789';
	
	for (var i = 0; i < str.length; i++)
	{
		if (valid.indexOf(str.charAt(i)) == -1)
			return false;
	}
	return true;
}

function collapseExpand(id) {
	var div = document.getElementById(id);
	if (div)
	{
		if (div.style.display == 'none')
			div.style.display = 'block';
		else
			div.style.display = 'none';
	}
}

function showError(str) {
	var div = document.getElementById(str + '_err');
	if (div)
	{
		//div.style.color = 'red';
		div.style.display = 'inline';
	}
}

function hideError(str) {
	var div = document.getElementById(str + '_err');
	if (div && div.style.display != 'none')
	{
		div.style.display = 'none';
	}
}

function emailValidation(field) {
	if (!isEmpty(field.value))
	{
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if (reg.test(field.value))
		{
			hideError(field.name);
			return true;
		}
	}
	
	showError(field.name);
	return false;
}

function postalCodeValidation(frm, id) {
	var a = frm[id + 'a'];
	var b = frm[id + 'b'];
	
	if (!isNumeric(a.value) || !isNumeric(b.value))
	{
		showError(id);
		return false;
	}
	
	hideError(id);
	return true;
}

function fieldEmptyCheck(field) {
	if (isEmpty(field.value))
	{
		showError(field.name);
		return false;
	}
	
	hideError(field.name);
	return true;
}

function fieldNumericCheck(field) {
	if (!isNumeric(field.value))
	{
		showError(field.name);
		return false;
	}
	
	hideError(field.name);
	return true;
}

function phoneNumCheck(field) {
	if (!isEmpty(field.value)) {
		var valid = '0123456789()+ ';
		for (var i = 0; i < field.value.length; i++) {
			if (valid.indexOf(field.value.charAt(i)) == -1) {
				showError(field.name);
				return false;
			}
		}
		hideError(field.name);
		return true;
	}
	
	showError(field.name);
	return false;
}

function in_array(needle, haystack) {
	for(var i = 0; i < haystack.length; i++)
	{
		if (needle == haystack[i])
			return true;
	}
	return false;
}

var allowed_ext = new Array('jpg', 'gif', 'pdf');

function inputFileCheck(field) {
	if (!isEmpty(field.value))
	{
		var index = field.value.lastIndexOf('.');
		if (index == -1)
		{
			hideError(field.name);
			return false;
		}
		var ext = field.value.substr(index + 1);
		if (!in_array(ext, allowed_ext))
		{
			showError(field.name);
			return false;
		}
	}
	
	hideError(field.name);
	return true;
}

function erase() {
	var frm = document.forms.frm_reklamacja;
	if (frm)
	{
		for (var i = 0; i < frm.length; i++)
		{
			if (frm[i].getAttribute('type') != 'button' &&
				frm[i].getAttribute('type') != 'submit')
			{
				hideError(frm[i].name);
				frm[i].value = '';
			}
		}
		
		hideError('kod_pocztowy1');
		hideError('kod_pocztowy2');
		
		frm['panstwo1'].value = 'Polska';
		frm['panstwo2'].value = 'Polska';
	}
}

function validate() {
	var frm = document.forms.frm_reklamacja;
	if (frm)
	{
		var err = false;
		
		if (!fieldEmptyCheck(frm['imie1'])) err = true;
		if (!fieldEmptyCheck(frm['nazwisko1'])) err = true;
		if (!fieldEmptyCheck(frm['ulica1'])) err = true;
		if (!fieldEmptyCheck(frm['nr_domu1'])) err = true;
		if (!fieldEmptyCheck(frm['miejscowosc1'])) err = true;
		
		//if (!fieldNumericCheck(frm['telefon1'])) err = true;
		if (!phoneNumCheck(frm['telefon1'])) err = true;
		if (!emailValidation(frm['email1'])) err = true;
		
		if (!postalCodeValidation(frm, 'kod_pocztowy1')) err = true;
		
		if (!inputFileCheck(frm['kopia_karty_gwarancyjnej'])) err = true;
		if (!inputFileCheck(frm['kopia_dowodu_zakupu'])) err = true;
		if (!inputFileCheck(frm['zdjecie_uszkodzonego_produktu'])) err = true;
		
		if (!frm['chb_te_same_dane'].checked)
		{
			if (!fieldEmptyCheck(frm['imie2'])) err = true;
			if (!fieldEmptyCheck(frm['nazwisko2'])) err = true;
			if (!fieldEmptyCheck(frm['ulica2'])) err = true;
			if (!fieldEmptyCheck(frm['nr_domu2'])) err = true;
			if (!fieldEmptyCheck(frm['miejscowosc2'])) err = true;
			
			//if (!fieldNumericCheck(frm['telefon2'])) err = true;
			//if (!emailValidation(frm['email2'])) err = true;
			
			if (!postalCodeValidation(frm, 'kod_pocztowy2')) err = true;
		}
		
		if (!fieldEmptyCheck(frm['kod_produktu'])) err = true;
		if (!fieldEmptyCheck(frm['nazwa_produktu'])) err = true;
		if (!fieldEmptyCheck(frm['data_nabycia_produktu'])) err = true;
		
		if (!err)
		{
			var plec = 'zapoznali się Państwo';
			if (frm['plec1'][0].checked)
				plec = 'zapoznała się Pani';
			else if (frm['plec1'][1].checked)
				plec = 'zapoznał się Pan';
			
			if (!frm['zgoda_na_przetwarzanie'].checked)
			{
				alert('Proszę potwierdzić, że ' + plec + ' z regulaminem\n' +
					'ochrony danych osobowych firmy Zucchetti.');
				return false;
			}
			if (!frm['potw_zlec_serwisowego'].checked)
			{
				alert('Proszę potwierdzić, że ' + plec + ' z warunkami gwarancji.');
				return false;
			}
			//frm.submit();
			return true;
		}
		
		alert('Proszę wypełnić wymagane pola.');
		scroll(0, 0);
	}
	return false
}

