
var Dom = YAHOO.util.Dom;
var Anim = YAHOO.util.Anim;


	
	var serverUrl = '/_system/matatageditor_server_ajax.php';


	// open Form
	function openForm(){
		
		//posouvani formulare stejne jako tlacitka
		function moveform(){
			var formDiv=Dom.getElementsByClassName('metaEditorFormDiv','div')[0];
			//Definice stranky i pro ie
			var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body
			//lava horizontalni pozice
			var dsocleft=document.all? iebody.scrollLeft : pageXOffset
			//horni vertikalni pozice
			var dsoctop=document.all? iebody.scrollTop : pageYOffset
			
			var attributes = {
					top : {
					 to : parseInt(dsoctop)+50,
				   units: 'px'
					 
					}
				}
				
			var animation = new Anim(formDiv,attributes,0.1,YAHOO.util.Easing.easeOut);
			animation.animate();

		}
		
		//nacteni url parametru (z url paramatru)
		function getUrlParameter(name) {
			name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
			var regexS = "[\\?&]"+name+"=([^&#]*)";
			var regex = new RegExp(regexS);
			var results = regex.exec(window.location.href);
			return (results==null)?'':results[1];
		}
		
		//nacteni url parametru z $_SERVER['uri']
		function getUriParametr(){
			var myRE = new RegExp('^https?:\\/\\/[_a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,}(\\/{1}[\\-_~&=%\\?\\.a-z0-9\\/]*)$','i');
			return document.URL.replace(myRE,'$1');
		}
		
		// to do 
		
		
		if (document.URL.indexOf('index.php')===-1){
			if (getUriParametr().substr(1) == ""){
				url = "/";
			} else {
				var url = getUriParametr().substr(1);
			}
			
		} else {
			var url = getUrlParameter('url');
		}
		
		//nacteni dat z databaze ------------------------------------------------------
		
		// nacteno
		function fillData(oResponse){

			var metaData = YAHOO.lang.JSON.parse(oResponse.responseText);
			
			// zobrazeni formulare 	
			var formHolder = document.createElement('div');
			
			// vytvoreni holderu
			var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body
			var dsoctop=document.all? iebody.scrollTop : pageYOffset
			Dom.setStyle(formHolder, 'top', parseInt(dsoctop)+50+'px');
			Dom.setStyle(formHolder, 'width', '285px');
			Dom.setStyle(formHolder, 'height', '200px');
			Dom.setStyle(formHolder, 'background-color', 'gray');
			Dom.setStyle(formHolder, 'border-top', '1px white solid');
			Dom.setStyle(formHolder, 'border-right', '1px black solid');
			Dom.setStyle(formHolder, 'border-left', '1px black solid');
			Dom.setStyle(formHolder, 'border-bottom', '1px black solid');
			Dom.setStyle(formHolder, 'color', 'white');
			Dom.setStyle(formHolder, 'position', 'absolute');
			Dom.setStyle(formHolder, 'left', '20px');
			Dom.setStyle(formHolder, 'padding', '10px');
			Dom.addClass(formHolder, 'metaEditorFormDiv');
		
			document.body.appendChild(formHolder);
			
			Dom.getElementsByClassName('metaEditorOpener','div')[0].innerHTML ='Zavřít meta-tag Editor';
			YAHOO.util.Event.addListener(window, 'scroll', moveform);
	
			//formularove prvky 
			
			//title
			var label4title = document.createElement('div');
			Dom.setStyle(label4title, 'height', '30px');
			Dom.setStyle(label4title, 'margin', '15px 0 -10px 0');
			var inputTitle = createElementWithName('input', 'title');
			inputTitle.setAttribute('id','MetaFormInputTitle');
			inputTitle.setAttribute('type','text');
			inputTitle.setAttribute('size','41');
			//keywords
			var label4keywords = document.createElement('div');
			Dom.setStyle(label4keywords, 'margin', '15px 0 2px 0');
			var inputKeywords = createElementWithName('input', 'keywords');
			inputKeywords.setAttribute('id','MetaFormInputKeywords');
			inputKeywords.setAttribute('type','text');
			inputKeywords.setAttribute('size','41');
			//description
			var label4description = document.createElement('div');
			Dom.setStyle(label4description, 'margin', '15px 0 2px 0');
			var inputDescription = createElementWithName('input', 'description');
			inputDescription.setAttribute('id','MetaFormInputDescription');
			inputDescription.setAttribute('type','text');
			inputDescription.setAttribute('size','41');
			var submitButton = document.createElement('button');
			submitButton.setAttribute('type','submit');
			Dom.setStyle(submitButton, 'width', '100%');
			Dom.setStyle(submitButton, 'margin-top', '20px');
			var sendForm = document.createElement('form');
			inputDescription.setAttribute('action','');
			//hidden idcko
			var idInput = createElementWithName('input', 'id');
			idInput.setAttribute('type','hidden');
			idInput.setAttribute('id','MetaFormInputId');

			
			// appendform
			formHolder.appendChild(sendForm);
			sendForm.appendChild(label4title);
			label4title.innerHTML = 'Title';
			sendForm.appendChild(inputTitle);
			inputTitle.setAttribute('value', metaData.title);
			sendForm.appendChild(label4keywords);
			label4keywords.innerHTML = 'Keywords';
			sendForm.appendChild(inputKeywords);
			inputKeywords.setAttribute('value', metaData.keywords);
			sendForm.appendChild(label4description);
			label4description.innerHTML = 'Description';
			sendForm.appendChild(inputDescription);
			inputDescription.setAttribute('value', metaData.description);
			sendForm.appendChild(submitButton);
			submitButton.innerHTML = 'Uložit';
			sendForm.appendChild(idInput);
			idInput.setAttribute('value', metaData.id);
			
			

			// zaslani pozadavku na update			
			function sendUpdateRequest (e){
				
				YAHOO.util.Event.stopEvent(e);
			
				var updateResponse = function(oResponse){
					alert(oResponse.responseText);
					openCloseForm();				
				}
				
				var updateFail = function(oResponse){
					alert('nepodarilo se spojit s pehapkem');
				}

				var callback =
				{	
					failure: updateFail,
					success: updateResponse,
					timeout: 10000
				};
			
				var formData = 
				{
					'keywords':Dom.get('MetaFormInputKeywords').value, 
					'description':Dom.get('MetaFormInputDescription').value, 
					'title':Dom.get('MetaFormInputTitle').value, 
					'url':url, 
					'id':Dom.get('MetaFormInputId').value
				}

				var postData = 
					'&url='+encodeURIComponent(formData.url)+
					'&keywords='+encodeURIComponent(formData.keywords)+
					'&title='+encodeURIComponent(formData.title)+
					'&description='+encodeURIComponent(formData.description)+
					'&id='+encodeURIComponent(formData.id)+
					'&update='+encodeURIComponent('update');
				
				var request = YAHOO.util.Connect.asyncRequest('POST', serverUrl, callback, postData);
			} 
			// konec zaslani pozadavku na update
			
			YAHOO.util.Event.addListener(submitButton, 'click', sendUpdateRequest);
		}

		var callback =
			{	
				failure: function(){alert('nepodarilo se spojit s pehapkem')},
				success: fillData,
				timeout: 10000
			};
			
		// Zaslani requestu na ziskazni aktualnich dat	
		var postData =  
			'&url='+encodeURIComponent(url)+
			'&get='+encodeURIComponent('get');
			
		var request = YAHOO.util.Connect.asyncRequest('POST', serverUrl, callback, postData); 
	
	}
	
		function closeForm(){
			var editorOpener=Dom.getElementsByClassName('metaEditorOpener','div')[0];	
			}
	
	function openCloseForm() {
		var editorOpener=Dom.getElementsByClassName('metaEditorOpener','div')[0];

		if (Dom.hasClass(editorOpener, 'closed')){
			Dom.replaceClass(editorOpener,'closed', 'opened');
			openForm();
		} else {
			Dom.replaceClass(editorOpener,'opened', 'closed');
			var formDiv=Dom.getElementsByClassName('metaEditorFormDiv','div')[0];
			formDiv.parentNode.removeChild(formDiv);
			editorOpener.innerHTML = 'Otevřít meta-tag Editor';
		}
		
		
	}
	
	
	// aktivace tlacitka pro zpusteni editoru
	function DropEditorButton(oResponse) {
		

			
		function moveOpener(){
		
			var editorOpener=Dom.getElementsByClassName('metaEditorOpener','div')[0];
			//Definice stranky pro ie
			var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body
			//lava horizontalni pozice
			var dsocleft=document.all? iebody.scrollLeft : pageXOffset
			//horni vertikalni pozice
			var dsoctop=document.all? iebody.scrollTop : pageYOffset
		
			var attributes = {
					top : {
					 to : parseInt(dsoctop)+20,
				   units: 'px'
					 
					}
				}
				
			var animation = new Anim(editorOpener,attributes,0.1,YAHOO.util.Easing.easeOut);
			animation.animate();
		}
		
		function lowlight() {
			var	editorOpener = Dom.getElementsByClassName('metaEditorOpener','div')[0];
				var attributes = {
					opacity : {
						to : 0.3
					}
				}
				
				var animation = new Anim(editorOpener,attributes,0.1,YAHOO.util.Easing.easeOut);
				animation.animate();
		}
		
		function highlight() {
			var	editorOpener = Dom.getElementsByClassName('metaEditorOpener','div')[0];
				var attributes = {
					opacity : {
						to : 0.8
					}
				}
				
				var animation = new Anim(editorOpener,attributes,0.1,YAHOO.util.Easing.easeOut);
				animation.animate();
		}
		
		
		if (oResponse.responseText.indexOf('active')===0){
			
			var editorOpener = document.createElement('div');
		
				Dom.setStyle(editorOpener, 'width', '180px');
				Dom.setStyle(editorOpener, 'height', '20px');
				Dom.setStyle(editorOpener, 'background-color', 'gray');
				Dom.setStyle(editorOpener, 'border-top', '1px white solid');
				Dom.setStyle(editorOpener, 'border-right', '1px black solid');
				Dom.setStyle(editorOpener, 'border-left', '1px black solid');
				Dom.setStyle(editorOpener, 'border-bottom', '1px black solid');
				Dom.setStyle(editorOpener, 'padding-top', '5px');
				Dom.setStyle(editorOpener, 'text-align', 'center');
				Dom.setStyle(editorOpener, 'font-weight', 'bold');
				Dom.setStyle(editorOpener, 'cursor', 'pointer');
				Dom.setStyle(editorOpener, 'color', 'white');
				Dom.setStyle(editorOpener, 'position', 'absolute');
				Dom.setStyle(editorOpener, 'top', '20px');
				Dom.setStyle(editorOpener, 'left', '20px');
				Dom.addClass(editorOpener, 'metaEditorOpener');
				Dom.addClass(editorOpener, 'closed');
				Dom.setStyle(editorOpener, 'opacity', 0.3);
				
				editorOpener.innerHTML ='Otevřít meta-tag Editor';
				
				document.body.appendChild(editorOpener);
				

								
				YAHOO.util.Event.addListener(window, 'scroll', moveOpener);
				
				YAHOO.util.Event.addListener(editorOpener, 'mouseover', highlight);
				YAHOO.util.Event.addListener(editorOpener, 'mouseout', lowlight);
				YAHOO.util.Event.addListener(editorOpener, 'click', openCloseForm );
			
		} else if (oResponse.responseText.indexOf('deactive')===0) {
			//alert('ko');
		}
	}
	
	function metaTagEdInit() {
				
		var callback =
			{
				success: DropEditorButton,
				timeout: 10000
			};
		var postData =  '&activeEditor='+encodeURIComponent('activeEditor');
		var request = YAHOO.util.Connect.asyncRequest('POST', serverUrl, callback, postData);

	}
	
	YAHOO.util.Event.onDOMReady(metaTagEdInit);