var ajaxPanelConfigSave = {
	saveRequest: false,
	showState: 0,
	inWork: false,
	editor: 0,
	html: '',
	firstClick: true,
	
	handleEditor: function() {
		if(ajaxPanelConfigSave.firstClick) {
			ajaxPanelConfigSave.html = document.getElementById("tempWebsiteSave").innerHTML;
			ajaxPanelConfigSave.firstClick = false;
		}
		if(ajaxPanelConfigSave.editor)
			ajaxPanelConfigSave.closeEditor();
		else
			ajaxPanelConfigSave.openEditor();
	},

	openEditor: function() {
		document.getElementById("editorControl").value = "Editor schliessen";
		var config = 
			{
				skin : 'kama',
				language: 'de'
			};
		ajaxPanelConfigSave.editor = CKEDITOR.appendTo('adsEditor',config,ajaxPanelConfigSave.html);
	},

	closeEditor: function() {
		document.getElementById("editorControl").value = "Editor öffnen";
		ajaxPanelConfigSave.html = ajaxPanelConfigSave.editor.getData();
		ajaxPanelConfigSave.editor.destroy();
		ajaxPanelConfigSave.editor = null;
	},
	
	createRequest: function(serverID,ownerName,ownerPassword) {
		if(ajaxPanelConfigSave.editor) {
			ajaxPanelConfigSave.closeEditor();
		}
		if(document.getElementById("panelConfigServerName").value==""&&document.getElementById("panelConfigShowState").value=="") return false;
		if(ajaxPanelConfigSave.inWork==true) return false;
		if (window.XMLHttpRequest) {
			ajaxPanelConfigSave.saveRequest = new XMLHttpRequest();
		} 
		else if (window.ActiveXObject) {
			try {
				ajaxPanelConfigSave.saveRequest = new ActiveXObject('Msxml2.XMLHTTP');
			} 
			catch (e) {
				try {
					ajaxPanelConfigSave.saveRequest = new ActiveXObject('Microsoft.XMLHTTP');
				} 
				catch (e) {
				}
			}
		}
		if (!ajaxPanelConfigSave.saveRequest) {
			alert("Kann keine HTTP-Instanz erzeugen");
			return false;
		} 
		else {
			var url = "lib/php/requestChangeCustomPanelSettings.php";
			ajaxPanelConfigSave.saveRequest.open('post', url, true);
			ajaxPanelConfigSave.saveRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			ajaxPanelConfigSave.saveRequest.send('serverName='+document.getElementById("panelConfigServerName").value+
				"&showState="+document.getElementById("panelConfigShowState").value+
				"&adsContent="+ajaxPanelConfigSave.html+
				"&serverID="+serverID+
				"&ownerName="+ownerName+
				"&ownerPassword="+ownerPassword);
			ajaxPanelConfigSave.saveRequest.onreadystatechange = ajaxPanelConfigSave.interpretRequest;
			ajaxPanelConfigSave.inWork = true;
			ajaxPanelConfigSave.showLoading();
		}
	},
	
	interpretRequest: function() {
		switch (ajaxPanelConfigSave.saveRequest.readyState) {
			case 4:
				if (ajaxPanelConfigSave.saveRequest.status == 200) {
					ajaxPanelConfigSave.inWork = false;
					document.getElementById("panelConfigSaveStatus").innerHTML = '';
					switch (ajaxPanelConfigSave.saveRequest.responseText) {
						case "true" :
							document.getElementById("panelConfigSaveStatus").innerHTML =
								'<br /><p class="message_green" id="serverStatusInput">'+
									'Die Einstellungen wurden erfolgreich gespeichert!'+
								'</p>';
							setTimeout(ajaxPanelConfigSave.deleteConfigSaveMessage,5000);
							break;
						default :
							document.getElementById("panelConfigSaveStatus").innerHTML =
								'<br /><p class="message_red" id="serverStatusInput">'+
									'Die Einstellungen wurden nicht gespeichert!'+
								'</p>';
							setTimeout(ajaxPanelConfigSave.deleteConfigSaveMessage,5000);
							break;
					}
				}
				ajaxPanelConfigSave.inWork = false;
				break;
			default:
				break;
		}
	},
	
	deleteConfigSaveMessage: function() {
		document.getElementById("panelConfigSaveStatus").innerHTML = '';
		document.getElementById("panelConfigSaveStatus").style.width = "100%";
	},
	
	showLoading: function() {
		if(ajaxPanelConfigSave.inWork==false) return false;
		switch(ajaxPanelConfigSave.showState) {
			case 0:
				document.getElementById("panelConfigSaveStatus").innerHTML = '<strong>Einstellungen werden gespeichert</strong>';
				ajaxPanelConfigSave.showState = 1;
				setTimeout(ajaxPanelConfigSave.showLoading,500);
				break;
			case 1:
				document.getElementById("panelConfigSaveStatus").innerHTML = '<strong>Einstellungen werden gespeichert.</strong>';
				ajaxPanelConfigSave.showState = 2;
				setTimeout(ajaxPanelConfigSave.showLoading,500);
				break;
			case 2:
				document.getElementById("panelConfigSaveStatus").innerHTML = '<strong>Einstellungen werden gespeichert..</strong>';
				ajaxPanelConfigSave.showState = 3;
				setTimeout(ajaxPanelConfigSave.showLoading,500);
				break;
			case 3:
				document.getElementById("panelConfigSaveStatus").innerHTML = '<strong>Einstellungen werden gespeichert...</strong>';
				ajaxPanelConfigSave.showState = 0;
				setTimeout(ajaxPanelConfigSave.showLoading,500);
				break;
		}
	}
};
