var Dom = YAHOO.util.Dom;
var Anim = YAHOO.util.Anim;
//var Event = YAHOO.util.Event;
	

	function showHideForm (e, recommendForm){
			
			YAHOO.util.Event.stopEvent(e);
			
			Dom.setStyle(recommendForm,'top',0);

			var formY = (Dom.getY(Dom.getElementsByClassName('aRecommend')[0]))+30;
			var formX = (Dom.getX(Dom.getElementsByClassName('aRecommend')[0]))-103;

			var button = Dom.get('collapsMailBoxButton');
			if (Dom.hasClass(recommendForm,'closed')) {
				
				Dom.replaceClass(recommendForm,'closed','opened');
				Dom.setStyle(recommendForm,'display','block');
				
				Dom.setY(recommendForm,formY);
				Dom.setX(recommendForm,formX);
				
				Dom.setStyle(recommendForm,'opacity',0.1);
				
				var attributes = {
					opacity : {
					  from : 0.1,
						to : 1.0
					}
				}
				
				var animation = new Anim(recommendForm,attributes,0.2,YAHOO.util.Easing.easeOut);
				
			} else {
			
				Dom.setY(recommendForm, formY);
				Dom.setX(recommendForm, formX);
				
				Dom.replaceClass(recommendForm,'opened','closed');

				var attributes = {
					opacity : {
					  from : 1.0,
						to : 0.1
					}
				}
			
				var animation = new Anim(recommendForm,attributes,0.2,YAHOO.util.Easing.easeOut);
				animation.onComplete.subscribe(function(){Dom.setStyle(recommendForm,'display','none');}) 
			}
			
			animation.animate();
		}
		
	var createElementWithName = ( function(){
	  try {
		var el = document.createElement( '<div name="foo">' );
		if( el.tagName !== 'DIV' || el.name !== 'foo' ){
		  throw 'create failed';
		}
		return function( tag, name ){
		  return document.createElement( '<' + tag + ' name="' +
			name + '"></' + tag + '>' );
		};
	  }catch( e ){
		return function( tag, name ){
		  var el = document.createElement( tag );
		  el.setAttribute( 'name', name );
		  return el;
		};
	  }
	})();
	
	
	
	function createElementWithName(type, name, size) {
		var element;
		try {
			element = document.createElement('<'+type+' name="'+name+'">');
		} catch (e) { }
		if (!element || !element.name) { // Not in IE, then
			element = document.createElement(type);
			element.setAttribute('name', name);
			if (isset(size)){
				element.setAttribute('seze', name);
			}
		}
		return element;
	}


	function removeEmailItem(e, obalkaEl) {
		// odstraneni elementu obalka
		obalkaEl.parentNode.removeChild(obalkaEl);
	
		YAHOO.util.Event.stopEvent(e);
	}

	function addNewEmailItem(e) {
		YAHOO.util.Event.stopEvent(e);

		var input = createElementWithName('input','prijemce[]');
		input.setAttribute('type','text');
		input.setAttribute('size','25');

		var iHolder = document.createElement('div');
		Dom.addClass(iHolder,'holder');
		
		iHolder.appendChild(input);
		
		var inputEl = iHolder;

		// vytvoreni DIV SPACER elementu
		var spacerEl = document.createElement('div');
		Dom.addClass(spacerEl,'spacer e');


		// vytvoreni ODKAZU na odebrani elementu
		var removeEl = document.createElement('a');
		removeEl.setAttribute('href','#');
		Dom.addClass(removeEl,'removeEmail');

		var cleaner = document.createElement('div');
		Dom.addClass(cleaner,'cleaner');

		
		// vutvoreni DIVu OBALKA, obaluje celou skupinu elementu pro danou polozku e-mailu
		var obalkaEl = document.createElement('div');
		// a do obalky vlozime vsechny vytvorene elementy
		obalkaEl.appendChild(inputEl);
		obalkaEl.appendChild(removeEl);
		obalkaEl.appendChild(spacerEl);
		obalkaEl.appendChild(cleaner);

		// navazani event handleru pro odstraneni obalky, jako parametr evt. handleru nastavime obalku - ta se bude odstranovat
		YAHOO.util.Event.addListener(removeEl, 'click', removeEmailItem, obalkaEl);

		// zjistime si misto kam budeme nove elementy vkladat (zde el. LABEL nasledujici polozky formulare 'Vzkaz')
		var labelEl = Dom.get('labelVzkaz');
		// pomoci obj. Dom vlozime nove vzniklou polozku e-mailu pred label element
		Dom.insertBefore(obalkaEl,labelEl);
		
		YAHOO.util.Event.stopEvent(e);
	}
	
	function onSubmitSendAjaxRequest(e, recommendForm) {
		
		YAHOO.util.Event.stopEvent(e);
		
	// handler uspesneho vykonani pozadavku (jeste neznamena ze se v serverove casti podarilo odeslat formular)
		var handleSuccess = function(oResponse) {
			//Dom.setStyle(recommendForm,'visibility','visible');
		// jestlize retezec zacina na 'OK:' pak se povedlo formular odeslat
			if (oResponse.responseText.indexOf('OK:')===0) {
				alert(oResponse.responseText.substr(3));
			// vymazani formulare
				
			var recommendDiv = Dom.get('recommendForm');	

				var attributes = {
					opacity : {
					  from : 1.0,
						to : 0.1
					}
				}
			
				var animation = new Anim(recommendDiv,attributes,0.2,YAHOO.util.Easing.easeOut);
				animation.onComplete.subscribe(function(){Dom.setStyle(recommendDiv,'display','none');}) 
				
				animation.animate();
				
				recommendForm.reset();
				
			} else if (oResponse.responseText.indexOf('ERR:')===0) {
				alert(oResponse.responseText.substr(4));
			} else {
			
				alert('Formulář se nepodařilo odeslat, zkuste to prosím později.')
			
			}
		};
	// handler neuspesneho pozadavku (napr. timeout)
		var handleFailure = function(oResponse) {
			//Dom.setStyle(receptyFormEl,'visibility','visible');
				
					alert('Formulář se nepodařilo odeslat, zkuste to prosím později.')
				
				
				
		};
		var callback =
		{
			success: handleSuccess,
			failure: handleFailure,
			timeout: 10000
		};
		
		
		var url = '/_system/recommend_form_ajax.php';
	// seskladame si data z formulare
	
		var postData = 'textZpravy='+encodeURIComponent(recommendForm.textZpravy.value)+'&siteone_captcha_opis='+encodeURIComponent(recommendForm.siteone_captcha_opis.value)+'&url='+encodeURIComponent(document.URL);
	// pokud je prijemcu vice jsou jako pole HTML elementu
		if (recommendForm['prijemce[]'] && recommendForm['prijemce[]'].length) {
			for (var i=0; i<recommendForm['prijemce[]'].length; i++) {
				postData += '&prijemce[]='+encodeURIComponent(recommendForm['prijemce[]'][i].value);
			}
	// pokud je jen jeden prijemce, je jako jeden HTML element
		} else if (recommendForm['prijemce[]'] && recommendForm['prijemce[]'].value) {
			postData += '&prijemce[]='+encodeURIComponent(recommendForm['prijemce[]'].value);
		}
		var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);

		YAHOO.util.Event.stopEvent(e);
	}
	
	
	function formRecommendInit() {

		var recommendForm = Dom.get('recommendForm');

		var opener = Dom.getElementsByClassName('aRecommend')[0];
		var closer = Dom.get('recommendFormCloser');
		
		YAHOO.util.Event.addListener(opener, 'click', showHideForm, recommendForm);
		YAHOO.util.Event.addListener(closer, 'click', showHideForm, recommendForm);
		
		var addEmailItemEl = Dom.get('recommendAddEmail');
		YAHOO.util.Event.addListener(addEmailItemEl, 'click', addNewEmailItem);
		
		var form = Dom.get('recommend');
		
		YAHOO.util.Event.addListener(form, 'submit', onSubmitSendAjaxRequest, form);
		
	}
	
	
YAHOO.util.Event.onDOMReady(formRecommendInit);



