/**************************************
		autor: jacek wasilewski
		email: jacek@eagent.pl
		data:  2007-10-07

		przykład: 
		<script type="text/javascript" src="jw_add_maxlength_textarea.js"></script>
		<textarea maxlength="500"></textarea>		

**************************************/

function jw_getInfoTextarea(el){var t=new Array();t['width']=el.offsetWidth;t['height']=el.offsetHeight;t['top']=0;t['left']=0;if(el.offsetParent){while(el.offsetParent){t['top']+=el.offsetTop;t['left']+=el.offsetLeft;el=el.offsetParent;}}else{t['top']=el.offsetTop;t['left']=el.offsetLeft;}return t;}
function jw_addMaxlengthTextarea(){
	if(document.getElementsByTagName){
		var el=document.getElementsByTagName('textarea'), ile=el.length;
		for(var i=0;i<ile;i++){
			if(el[i].getAttribute("maxlength")){
				var max=parseInt(el[i].getAttribute("maxlength"),10);
				if(!isNaN(max)){
					el[i].msgid='textarea__msg__'+i;
					el[i].maxlength = max;
					el[i].onfocus=function(){
						var info=jw_getInfoTextarea(this), msg;
						if(document.getElementById(this.msgid)){
							msg=document.getElementById(this.msgid);
						}else{
							msg=document.createElement('div');
							msg.id=this.msgid;
							msg.zIndex=10000;
							msg.style.width=info['width']-2;
							msg.style.dispaly='none';
							msg.style.color='red';
							msg.style.textAlign='right';
							msg.style.fontSize='10px';
							msg.style.fontFamily='Verdana,Arial,Tahoma';
							document.body.appendChild(msg);
						}
						msg.innerHTML='max '+this.maxlength+' : '+this.value.length;
						msg.style.position='absolute';
						msg.style.left=info['left'];
						msg.style.top=info['top']-12;
						msg.style.display='block';
					}
					el[i].onblur=function(){
						if(this.value.length>this.maxlength){this.value=this.value.substr(0,this.maxlength);}
						document.getElementById(this.msgid).style.display='none';
					}
					el[i].onkeyup=function(){
						if(this.value.length>this.maxlength){this.value=this.value.substr(0,this.maxlength);}
						document.getElementById(this.msgid).innerHTML='max '+this.maxlength+' : '+this.value.length;
					}
				}
			}	
		}//end for
	}
}
if(window.addEventListener){window.addEventListener("load", jw_addMaxlengthTextarea, false);}else if(window.attachEvent){window.attachEvent("onload", jw_addMaxlengthTextarea);}

