var ArtikelWeiterempfehlen = {
	
	inputDefaultValues : { },
	
	inputs: [],
	
	inputMandatory: [],
	
	init: function(){
	
		$('empfehlungContainer').show();
		
		Event.observe('empfehlen_schliessen', 'click', ArtikelWeiterempfehlen.shutdown);
		
		Event.observe('empfehlenForm', 'submit', ArtikelWeiterempfehlen.submitHandler);
		
		ArtikelWeiterempfehlen.inputs = $$('#empfehlungContainer input.textInput');
		
		ArtikelWeiterempfehlen.inputs.each(function(pe){
		
			if( typeof(ArtikelWeiterempfehlen.inputDefaultValues[pe.id]) != 'undefined' ) {
				pe.value = ArtikelWeiterempfehlen.inputDefaultValues[pe.id];
			}
		
			if( pe.value.match(/\*/gi) ){
				ArtikelWeiterempfehlen.inputMandatory.push(pe.id);
			}
			
			ArtikelWeiterempfehlen.inputFocusHandler(pe);
			
		});
	
	},
	
	shutdown: function(evt) {

		$('empfehlungContainer').hide();
		Event.stopObserving('empfehlen_schliessen');
		evt.stop();
		$('empfehlungContainer').update('');
	
	},
	
	submitHandler: function(evt) {	
	
		Event.stop(evt);
		
		$('empfehlenError').hide();
		
		ArtikelWeiterempfehlen.inputs.each(function(pe){
			if( pe.hasClassName('broken') == true ) {
				pe.removeClassName('broken');
			}
	
			if( ArtikelWeiterempfehlen.inputTestHandler(pe) == false ) {
				pe.addClassName('broken');
			}
		});
		
		if( $$('#empfehlungContainer input.broken').size() == 0 ) {
			
			$('empfehlenSubmit').hide();
			$('empfehlenloadingGif').show();

			$('produktLinkShort').value = produktGlobal.produktLinkShort;
			
			$('empfehlenForm').request({
				parameters: {ajax:'true'},
				onSuccess: function(response) {
					$('empfehlenloadingGif').hide();
					if( response.headerJSON.status == 'ok' )
					{
						$('empfehlenThanks').show();
						Event.stopObserving('empfehlenForm', 'submit');
						Event.observe('empfehlenForm', 'submit', function(evt){ Event.stop(evt)});
						
					}
					else
					{
			
						if( typeof(response.headerJSON.errors) == 'object' ) {
							response.headerJSON.errors.each(function(pe){
								$(pe+'Input').addClassName('broken');
							});
						}
						
						$('empfehlenError').show();
						$('empfehlenSubmit').show();response.headerJSON.erros.each(function(pe){
							$(pe+'Input').addClassName('broken');
						});
						
					}
				}
			});

		}
		
		
		return false;
	},
	
	inputFocusHandler: function(obj){
	
		if( typeof(ArtikelWeiterempfehlen.inputDefaultValues[obj.id]) == 'undefined' ) {
			ArtikelWeiterempfehlen.inputDefaultValues[obj.id] = obj.value;
		}

		Event.observe(obj,'focus', function(){
			if( obj.hasClassName('broken') ){
				obj.removeClassName('broken');
			}
			if( typeof(ArtikelWeiterempfehlen.inputDefaultValues[obj.id]) != 'undefined' 
					&& 	obj.value == ArtikelWeiterempfehlen.inputDefaultValues[obj.id] ){
				obj.value = '';
			}
			obj.select();
		});
		
		Event.observe(obj,'blur', function(){
			if( obj.value == '' ){
				obj.value = ArtikelWeiterempfehlen.inputDefaultValues[obj.id];
			}
		});
		
	},
	
	inputTestHandler: function(obj){
		
		if( ArtikelWeiterempfehlen.inputMandatory.indexOf(obj.id) != -1 ) {
			if( 	obj.value != '' 
				&& ( 	typeof(ArtikelWeiterempfehlen.inputDefaultValues[obj.id]) == 'undefined' 
					|| 	obj.value != ArtikelWeiterempfehlen.inputDefaultValues[obj.id] ) ) {
				return true;
			} else {
				return false;
			}
		}
		
		return true;
		
	}

}

Event.observe(window,'load',function(){
	
	if( $('empfehlenLink') ) {
		$('empfehlenLink').observe('click',function(evt) {
		
			if( $('empfehlungContainer').innerHTML == '' ) {
				new Ajax.Updater(
					'empfehlungContainer',
					'/index.php?' + produktGlobal.SID, 
					{
						parameters: 
						{
							view: 'produkt_weiterempfehlen',
							ean: produktGlobal.currentEAN
						},
						onComplete: function() {
							ArtikelWeiterempfehlen.init();
						} 
					}
				);
				
				Event.stop(evt);
				
			}
		});
	}
	
});
