function randomString() {
	var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
	var string_length = 10;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,'');
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,'');
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,'');
}

function isNumeric(input){
   return (input - 0) == input && input.length > 0;
}

function roundNumber(num, dec) {
	var result = (Math.round(num*Math.pow(10,dec))/Math.pow(10,dec)).toFixed(dec);
	return result;
}

function StringBuffer() { 
    this.buffer = []; 
} 
StringBuffer.prototype.append = function append(string) { 
    this.buffer.push(string);
}; 
StringBuffer.prototype.toString = function toString() { 
    return this.buffer.join(""); 
};

function email(el){  
    //el.val(trim(el.val()));
    //Żeby nie przeskakiwało na początek pola, gdy więcej znaków niż długość input'a
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(!/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/i.test(el.val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawny adres e-mail</span>'); 
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function haslo(el){
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(el.val().length<5){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Hasło jest za krótkie</span>'); 
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function imie(el){
    //el.val(trim(el.val()));
    //Żeby nie przeskakiwało na początek pola, gdy więcej znaków niż długość input'a
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(el.val().length<2){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Imię jest za krótkie</span>');
    }
    else if(!/^[a-ząćęłńóśźż]{2,30}$/i.test(el.val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawne znaki w imieniu</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }               
}

function nazwisko(el){
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(el.val().length<2){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Nazwisko jest za krótkie</span>');
    }
    else if(!/^[a-ząćęłńóśźż\- ]{2,50}$/i.test(el.val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawne znaki w nazwisku</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function haslo(el){
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(el.val().length<5){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Hasło jest za krótkie</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function porownaj(el){//porownuje pole z polem poprzednim
    if(el.val()!=el.parent().parent().prev().find('input:first').val()){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Dane nie zgadzają się</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }                
}

function niepuste(el){
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function nip(el){
    el.val(trim(el.val()));
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if((!/^[0-9]{10}$/.test(el.val())) || ((el.val().substr(0,1)*6+el.val().substr(1,1)*5+el.val().substr(2,1)*7+el.val().substr(3,1)*2+el.val().substr(4,1)*3+el.val().substr(5,1)*4+el.val().substr(6,1)*5+el.val().substr(7,1)*6+el.val().substr(8,1)*7)%11!=el.val().substr(9,1))){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawny numer nip</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function numerDomu(el){
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(!/^[1-9]{1}[0-9a-z\/ -]{0,4}$/i.test(el.val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawny numer domu</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function numerLokalu(el){
    el.val(trim(el.val()));
    if(el.val()!='' && !/^[1-9][0-9]{0,3}$/i.test(el.val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawny numer lokalu</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function miejscowosc(el){      
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(!/^[a-ząćęłńóśźż .-]{2,60}$/i.test(el.val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawna nazwa miejscowości</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function kodPocztowy(el){
    el.val(trim(el.val()));
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(!/^[0-9]{2}-[0-9]{3}$/i.test(el.val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawny kod pocztowy</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function kierunkowy(el){
    el.val(trim(el.val()));
    if(el.val()=='' || el.next().val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(!/^[0-9]{9}$/.test(el.next().val()) || !/^[0-9]{2,4}$/.test(el.val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawny numer telefonu</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function telefon(el){    
    if(el.val()=='' || el.prev().val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else if(!/^[0-9]{9}$/.test(el.val()) || !/^[0-9]{2,4}$/.test(el.prev().val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawny numer telefonu</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function zrodloPochodzenia(el){    
    if(el.val()==''){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }

    if(el.val()==5){
        $("#opisPochodzenia").show();
    }
    else{
        $("#opisPochodzenia").find("textarea").val("");
        $("#opisPochodzenia").hide();
    }
}

function opisPochodzenia(el){
    if(el.val()=='' && $("#opisPochodzenia").css('display')!='none'){//gdy wyswietlony i pusty
        el.parent().next().html('<span class="poleZle">'+poleZle+' Pole nie może być puste</span>');      
    }
    else if(el.val().length>100){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Za dużo znaków</span>');
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>');
    }
}

function osobaKontaktowa(el){
    if(!/^[a-ząćęłńóśźż\- ]{0,100}$/i.test(el.val())){
        el.parent().next().html('<span class="poleZle">'+poleZle+' Niepoprawne znaki w imieniu lub nazwisku</span>'); 
    }
    else{
        el.parent().next().html('<span class="poleOk">'+poleOk+'</span>'); 
    }
}
