/*
* Funkcja liczaca znaki wpisywane do textarea.
* (zmodyfikowana funkcja textCounter)  
*
* @param field - id pola textarea, do ktorego wpisujemy liczone znaki
* @param maxLimit - maksymalny limit znakow do wpsiania
* @param countDisplay - id tag'u, w ktorym bedzie wyswietlana pozostala liczba znakow do wpisania
* @param messageDisplay - id tag'u, w ktorym bedzie wyswietlana informacja
* @param messageBefore - komunikat przed przekroczeniem dopuszczalnej liczby znakow
* @param messageAfter - komunikat po przekroczeniu dopuszczalne liczby znakow
*/
function textareaCounter(field, maxLimit, countDisplay, messageDisplay, messageBefore, messageAfter) {
	if (field.value==null) { field.value=""; }

	newstr = field.value;
	
	//znak nowej linii liczymy jako dwa znaki
	strlen = newstr.replace(/\r\n/g, "12").replace(/\n/g, "12").length;

	var i=maxLimit-strlen;
	if (strlen > maxLimit) {
		$(messageDisplay).update(messageAfter);
		$(countDisplay).update(strlen-maxLimit);
		field.scrollTop=field.scrollHeight;
	} else {
		$(messageDisplay).update(messageBefore);
		$(countDisplay).update(i);
	}
}//end of textareaCounter 

/*
* Funkcja liczaca znaki wpisywane do textarea.
* (zmodyfikowana funkcja textCounter)  
*
* @param field - id pola textarea, do ktorego wpisujemy liczone znaki
* @param maxLimit - maksymalny limit znakow do wpsiania
* @param countDisplay - id tag'u, w ktorym bedzie wyswietlana pozostala liczba znakow do wpisania
* @param messageDisplay - id tag'u, w ktorym bedzie wyswietlana informacja
* @param messageBefore - komunikat przed przekroczeniem dopuszczalnej liczby znakow
* @param messageAfter - komunikat po przekroczeniu dopuszczalne liczby znakow
*/
function textareaCounterWithNewBodyCounterMsg(field, maxLimit, countDisplay, messageDisplay, messageBefore, messageAfter,bodyCounterMsg,newBodyCounterMsg) {
	if (field.value==null) { field.value=""; }

	newstr = field.value;
	
	//znak nowej linii liczymy jako dwa znaki
	strlen = newstr.replace(/[\r\n]/g, "12").replace(/[\n\n]/g, "12").length;

	var i=maxLimit-strlen;
	if (strlen > maxLimit) {
		field.value = field.value.substring(0, field.value.length - (strlen- maxLimit));	
		$(bodyCounterMsg).update(newBodyCounterMsg);
		$(messageBefore).update(messageAfter);
		newstr = field.value;
		strlen = newstr.replace(/[\r\n]/g, "12").replace(/[\n\n]/g, "12").length;
		$(countDisplay).update(maxLimit-strlen);
		field.scrollTop=field.scrollHeight;
		
	} else {
		$(bodyCounterMsg).update(newBodyCounterMsg);
		$(messageBefore).update("");
		$(countDisplay).update(i);
	}
}//end of textareaCounter 

/*
* funkcja liczaca znaki wpisywane np. do textarea.
* parametry:
* field - pole, do ktorego wpisujemy liczone znaki
* countDisplay - pole, w ktorym bedzie wyswietlana pozostala liczba znakow do wpisania
* maxLimit - maksymalny limit znakow do wpsiania
* messageDisplay - pole, w ktorym bedzie wyswietlana informacja o przekroczeniu limitu wpisywanych znakow
* message - informacja do wyswietlenia
*/
function textCounter(field, countDisplay, maxLimit, messageDisplay, message) {

	if (field.value==null) { field.value=""; }
	
	newstr = field.value;
	strlen = newstr.replace(/[\r\n]/g, "12").replace(/[\n\n]/g, "12").length;
	
	var i=maxLimit-strlen;
	if (strlen > maxLimit) {
		field.value = field.value.substring(0, field.value.length + i);
		$(messageDisplay).update(message);
		field.scrollTop=field.scrollHeight;
		newstr = field.value;
		strlen = newstr.replace(/[\r\n]/g, "12").replace(/[\n\n]/g, "12").length;
		$(countDisplay).update(maxLimit-strlen);
	} else {
		$(messageDisplay).update("");
		$(countDisplay).update(i);
	}
}

/*
* funkcja ograniczajaca znaki wpisywane np. do textarea.
* parametry:
* field - pole, do ktorego wpisujemy liczone znaki
* maxLimit - maksymalny limit znakow do wpsiania
* messageDisplay - pole, w ktorym bedzie wyswietlana informacja o przekroczeniu limitu wpisywanych znakow
* message - informacja do wyswietlenia
*/
function textLimiter(field, maxLimit, messageDisplay, message) {

	if (field.value==null) { field.value=""; }
	
	newstr = field.value;
	strlen = newstr.replace(/[\r\n]/g, "12").replace(/[\n\n]/g, "12").length;

	if (strlen > maxLimit) {
		field.value = field.value.substring(0, field.value.length - (strlen- maxLimit));
		$(messageDisplay).update(message);
		field.scrollTop=field.scrollHeight;
	} else {
		if (strlen < maxLimit) {
			$(messageDisplay).update("");
		}
	}
}
