/*
funkcje operujace na stringach
*/
//operacje na stringach
//zwracajaca ciag podany w argumencie zamieniony na kapitaliki (duze pierwsze litery kazdego wyrazu)

function strKapitaliki(str){
	if(!arguments.length) return false;
	str.toLowerCase();
	var slowa = str.split(" ");
	for(var i=slowa.length-1; i>=0; i--){
		slowa[i] = String(slowa[i]).charAt(0).toUpperCase()+String(slowa[i]).slice(1, String(slowa[i]).length);
	}
	return slowa.join(" ");
}

//zwraca ciag podany w argumencie pozbawiony spacji z przodu i na koncu
function strTrim(str){
	return str.replace(/(^[.,]+)|([,.]+$)/g, "");
}

//poprzednia funkcja chyba ma blad - zwraca ci±g obciêty o jeden znak;
//zwraca ciag podany w argumencie pozbawiony spacji z przodu i na koncu;
function strTrim2(str){
    return str.replace(/(^[.,]+)|([,.]+$)/g, "");
}

//funkcja usowa podwojne spacje w ciagu podanym w argumencie
function strUsunPodw(str){
    var output=str.replace(/[ ]{2,}/g,' ');
    return strTrim(output);
}

//funkcja dzielaca ciag z argumentu na elementy 3znakowe rozdzielone kropka
function strKropki(nr){
	if(!arguments.length) return "";
	if(nr == null) return "";
	var tab=nr.split(',',2);
	nr=tab[0];
	var output="";
	var counter = 0;
	for(var i=nr.length; i>=0; i--){
		if(nr.charAt(i) != "." || nr.charAt(i) != ",") output = nr.charAt(i)+output;
		if(counter%3==0 && counter!=0){
			if(nr.charAt(i-1)) output="."+output;
		}
		counter++
	}
	if(tab[1]>0) output+=','+tab[1];     
	return output
}

//funkcja dzielaca ciag 'nr' na elementy coIle-znakowe rozdzielone ciagiem 'sep'
function strSeparator(nr, sep, coIle){
if(!arguments.length){
		return ""; 
	} else {
		sep = (sep.length<1) ? ".":sep;
		coIle = (coIle<2) ? 3:(coIle>=nr.length) ? 3:coIle;
		var counter=0;
		var output="";
	}
	for(var i=nr.length; i>=0; i--){
		output = nr.charAt(i)+output;
		if(counter%coIle==0 && counter!=0){
			if(nr.charAt(i-1)) output=""+sep+output
		}
		counter++;
	}
	return output;
}

//funkcje testujace
//sprawdza czy dany znak jest polskim znakiem dialektycznym
function __polskie(znak){
	var pl = /^(¡|±|Æ|æ|Ê|ê|£|³|Ñ|ñ|Ó|ó|¦|¶|¬|¼|¯|¿)$/;
	return (znak.search(pl)!=-1)?true:false;
}

//regExp - funkcja zwraca tylko znaki alfanumeryczne z ciagu podanego w parametrze
function __onlyAlfaNum(str){
	var patern = /^([a-z]|[A-Z]|[0-9]|¡|±|Æ|æ|Ê|ê|£|³|Ñ|ñ|Ó|ó|¦|¶|¬|¼|¯|¿)$/;
	var output="";
	for(var i=0; i<str.length; i++){
	var znak = str.charAt(i);
		if(znak.search(patern)!=-1) output+=znak;
	}
	return (output=="") ? -1:output;
}

//regExp - funkcja zwraca tylko znaki literowe z ciagu podanego w parametrze
function __onlyAlfa(str){
	var patern = /^([a-z]|[A-Z]|¡|±|Æ|æ|Ê|ê|£|³|Ñ|ñ|Ó|ó|¦|¶|¬|¼|¯|¿)$/;
	var output="";
	for(var i=0; i<str.length; i++){
	var znak = str.charAt(i);
		if(znak.search(patern)!=-1) output+=znak;
	}
	return (output=="") ? -1:output;
}

//regExp - funkcja zwraca tylko znaki numeryczne z ciagu podanego w parametrze
function onlyNum(str){
	var patern = /^([0-9])$/;
	var output="";
	for(var i=0; i<str.length; i++){
	var znak = str.charAt(i);
		if(znak.search(patern)!=-1) output+=znak;
	}
	return (output=="") ? -1:output;
}
