﻿var emailRegExp	= /[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
	
function replace(tekst, w1, w2) {

	var tekst = tekst + "";
	
	while(tekst.indexOf(w1)>-1) {
		tekst=tekst.substring(0,tekst.indexOf(w1))+w2+tekst.substring(tekst.indexOf(w1)+w1.length);
	}
	return tekst;
	
}

function fixNip() {

	var nip = document.form1.nip,
		num = nip.value,
        re  = /[^\d]+/;
	
	nip.value = num.replace(/[-,\.\s]+/, '');
	
	if (re.test(num) && nip.getAttribute('placeholder') !== num) {
        alert ('Numer NIP może zawierać tylko cyfry.');
		nip.value = num.replace(/[^\d]+/, '');
        return false;
	}

    return true;
	
}

function chkdane() {

	var firma 		= document.form1.firma,
		osoba		= document.form1.osoba,
        nip   		= document.form1.nip,
		ulica		= document.form1.ulica,
		kod			= document.form1.kod,
		miasto		= document.form1.miasto,
		tel			= document.form1.tel,
		email		= document.form1.email,
		wojewodztwo	= document.form1.wojewodztwo,
		re			= new RegExp('\\d+', 'i');
	
	fixNip();
	// emailCheck();
	
	if (firma.value.length < 3 || firma.getAttribute('placeholder') === firma.value) {
	
		alert('Proszę podać pełną nazwę firmy');
		firma.focus();
		return false;
	
	} else if (osoba.value.length < 5 || osoba.getAttribute('placeholder') === osoba.value) {
	
		alert('Podaj osobę korzystającą z publikacji');
		osoba.focus();
		return false;
		
	} else if (nip.value.length !== 10 || nip.getAttribute('placeholder') === nip.value) {
	
		alert('Proszę podać poprawny NIP');
		nip.focus();
		return false;
		
	} else if (document.form1.ilosc.value == 0) {
	
		alert('Wybierz ilość publikacji');
		document.form1.ilosc.focus();
		return false;
		
	} else if (ulica.value.length < 3 || !re.test(ulica.value)) {
	
		alert('Proszę podać ulicę wraz z numerem domu/lokalu');
		ulica.focus();
		return false;
		
	} else if (document.form1.lokal.value.length < 1) {
	
		alert('Podaj numer lokalu!');
		document.form1.lokal.focus();
		return false;
		
	} else if (kod.value.length < 5 || kod.getAttribute('placeholder') === kod.value) {
	
		alert('Proszę podać poprawny kod pocztowy');
		kod.focus();
		return false;
		
	} else if (miasto.value.length < 3 || miasto.getAttribute('placeholder') ===  miasto.value) {
	
		alert('Proszę podać miejscowość');
		miasto.focus();
		return false;
		
	} else if (wojewodztwo.value == 0) {
	
		alert('Proszę wybrać wojewodztwo z listy.');
		wojewodztwo.focus();
		return false;
		
	} else if (tel.value.length < 7 || tel.getAttribute('placeholder') === tel.value) {
	
		alert('Proszę podać poprawny numer telefonu');
		tel.focus();
		return false;
		
	} else if (!emailRegExp.test(email.value) || email.getAttribute('placeholder') === email.value) {
	
		emailCheck();
		// !emailre.test(email.value) || email.getAttribute('placeholder') === email.value
		alert('Proszę podać poprawny adres email');
		email.focus();
		return false;
		
	} else if (!document.form1.zgoda2.checked) {
	
		alert('Proszę wyrazić zgodę na wystawienie faktury bez podpisu odbiorcy');
		document.form1.zgoda2.focus();
		return false;
		
	} else if (!document.form1.zgoda3.checked) {
	
		alert('Wydawnictwo realizuje zamówienia tylko dla przedsiębiorców');
		document.form1.zgoda3.focus();
		return false;	
		
	} else {
	
		this.disabled = true;
		
	}
	
	return true;
	
}

function emailCheck() {

	var email = document.form1.email;
		// regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	
	// if (emailRegExp.test(email.value) || email.value === email.getAttribute('placeholder')) {
		
		// console.log('Sprawdź czy adres email jest poprawny.');
		// return false;
	// }
	
	return (emailRegExp.test(email.value) || email.value === email.getAttribute('placeholder')) ? false: true;
	
}

//ajaxowe sprawdzanie loginu w bazie
var ObiektXMLHttp = false;

if (window.XMLHttpRequest){
    ObiektXMLHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
}

//Sprawdzanie Loginu (1 - zajety) (0 - wolny)
function sprawdz(wartosc){

	if (ObiektXMLHttp){
		//pobieranie danych
		ObiektXMLHttp.open("GET", 'sprlogin.php?wartosc=' + wartosc);

		ObiektXMLHttp.onreadystatechange = function() {
			if (ObiektXMLHttp.readyState == 4) {
				var i = ObiektXMLHttp.responseText;
				//gdy dane pobrane
				if (parseFloat(i) != 0) {
					document.getElementById('loginjest').innerHTML = '&nbsp;Login '+wartosc+' już istnieje';
                    document.form1.login.value='';
                    document.form1.login.focus();

                } else if (parseFloat(i) == 0) {
					document.getElementById('loginjest').innerHTML = '';
                }
			}
		}
		
		ObiektXMLHttp.send(null);
	
    }
	
}

function checkEmail(email) {

    var check 		= document.getElementById('check'),
		check_info	= document.getElementById('check_info'),
		zly_mail	= document.getElementById('zly_mail');
		
	check.innerHTML = '';
	check_info.innerHTML = '';
	zly_mail.value = '0';

	if (ObiektXMLHttp) {

        //pobieranie danych
        ObiektXMLHttp.open("GET", "zamowienie/check/is_host.php?email=" + email);

        ObiektXMLHttp.onreadystatechange = function () {

			if (ObiektXMLHttp.readyState == 4) {
		   
                 var info = ObiektXMLHttp.responseText;
				 
                 if (info == 'brak' || info == 'zle' || info == 'quota' || info == 'no_user') {
				 
					check.innerHTML = "Prosimy sprawdzić poprawność podanego adresu*";
					
					var komunikat = "*Prawdopodobny problem z adresem e-mail:<br>";
					
                    if (info == 'brak' || info == 'zle'){
						komunikat += " - domena nie istnieje lub nastąpił błąd składniowy.";
                    }
					
                    if (info == 'no_user') {
						komunikat += " - błędnie podana nazwa użytkownika.";
                    }
					
                    if (info == 'quota') {
						komunikat += " - przepełniona skrzynka - proszę usunąc zbędne wiadomości.";
                    }
					
					komunikat += "<br>Jeżeli są Państwo pewni poprawności podanego adresu, prosimy o wysłanie formularza pomimo wystąpienia tego komunikatu.";
					
					check_info.innerHTML = komunikat;
					zly_mail.value = '1';
					
                } else {
				
					check.innerHTML = '';
					
                }
            }

        }
        ObiektXMLHttp.send(null);
	}
}

function clearPlaceholders($obj) {

	$obj.each(function () {
	
		var placeholder = this.getAttribute('placeholder');
		
		if (this.value === placeholder) {
			// console.log(placeholder);
			this.value = '';
		}
	
	});
}

// jQuery
$(function () {

	var $form			= $('#orderForm'),
		$email			= $('#email'),
		$placeholders,
		$taFirma		= $('#firma');
    
	if ($form.length) {
	
		if (!Modernizr.input.placeholder) {
			$taFirma.val($taFirma.attr('placeholder'));
			GCP.FORMS.mimic_placeholder($taFirma);
		}
		
		$placeholders = $form.find('input.placeholder').each(function () {
			
			if (!Modernizr.input.placeholder) {
				// no placeholder support :(
				var $thiz = $(this);
				
				// fall back to a scripted solution
				$thiz.val($thiz.attr('placeholder'));
				GCP.FORMS.mimic_placeholder($thiz);
				

			} else {
			
				GCP.FORMS.pimp_input(this);
				
			}
		});
		
		/*
		// email test
		$email.bind('blur', function (e) {
		
			// console.log('email blur');
			if (emailRegExp.test(this.value)) {
				console.log('good email');
			} else {
				console.log('wrong email');
			}
			
		});
		*/
		
		$form.submit(function () {
		
			// console.log('submitting');
			if (chkdane()) {			
				clearPlaceholders($placeholders);
				return true;
			}
			
			return false;
			
		});
		
	}
	
});
