Event.observe(window, 'load', addresswidget_initialize, false);


/*
 inicializacja:
 - wypelnienie wartosciami tekstow pomocniczych
 - obslug on_focus i on_blure
 - przechwycenie metody submit - i usuwanieoce tekstow pomocniczych, aby nie byly wysylane do serwera
*/ 
 
function addresswidget_initialize(){
	
	addresswidgets_help_texts = {
		'name1': gettext("<name first line>"),
		'name2': gettext("<name second line>"),
		'street': gettext("<street>"),
		'zip_code': gettext("<zip code>"),
		'city': gettext("<city>")
	};	
	
	// initialize with help texts
	Array.from( document.getElementsByClassName('addresswidget') ).each(	
		function (awdiv){
 
			Array.from( awdiv.childNodes ).each( 
				function(elem){
					
					
					var classname = $w(elem.className)[0];
					elem = $(elem);
					
					
					// classname (omin hidden)
					if (!classname) return;
									
					// jesli pusty to wartosc i style					
					if (elem.type == 'text'){
					
						if (!elem.value){
							// wstaw domyslny tekst
							elem.value = addresswidgets_help_texts[ classname ];
							// style
							
							elem.setStyle( {'color':'gray'} );

						};
						
						// on focus
						Event.observe( elem, 'focus', on_addresswidget_focus);
						
						// on blur
						Event.observe( elem, 'blur', on_addresswidget_blur);
												
					} else if (elem.type == 'select-one') {
						
						// on focus
						Event.observe( elem, 'blur', on_addresswidget_change);
						
						if (!elem.value) elem.setStyle( {'color':'gray'} );					
					};
				}
			);		
		}		
	);
	
	// observer submit event
	/*
	$$('form').each(
		function(form){
			form.observe('submit', addresswidget_discard_texts)
		}
	);
	*/	
}

/*
 	on focus - remove help text and style 
*/
function on_addresswidget_focus(event){
	var elem = Event.element(event);	
	var classname = $w(elem.className)[0];
	
	// remove help texts and style
	if ( addresswidgets_help_texts[ classname ] == elem.value ){
		elem.value = '';
		elem.setStyle( {'color':'black'} );			
	}
	
}

/*
 	on blur - set help text and style if empty 
*/
function on_addresswidget_blur(event){
	var elem = Event.element(event);
	var classname = $w(elem.className)[0];

	
	if ( elem.value=='' ){
		elem.value = addresswidgets_help_texts[ classname ];
		elem.setStyle( {'color':'gray'} );			
	}	
	
}

/*
 	on changed (blur!!!) (select) - set style to black 
*/
function on_addresswidget_change(event){
	var elem = Event.element(event);
	var classname = $w(elem.className)[0];
	
	if ( !elem.value ){		
		elem.setStyle( {'color':'gray'} );			
	} else {
		elem.setStyle( {'color':'black'} );
	};
	
}



/*
 	on submit discrad help texts
*/

function addresswidget_discard_texts(event){
	var form = Event.element(event);	
	
	form.getElementsByClassName('addresswidget').each(	
		function (awdiv){
 
			Array.from( awdiv.childNodes ).each( 
				function(elem){
					
					var classname = $w(elem.className)[0];
					
					// classname (omin hidden)
					if (!classname) return;
														
					// jesli wartosc z help texta to wyzeruje					
					if (elem.type == 'text'){
					
						if (elem.value == addresswidgets_help_texts[ classname ]){
							// wstaw domyslny tekst
							elem.value='';
						};
												
					};
										
					
				}
			);		
		}		
	);
		
}

