var main_xml;
var main_message;
var documenttype;
var mid;
var saveType = 'save';
var language = 'de';
var start_id;
var visible = true;
var infomail = false;
var passThru;
var mapKey;

blog_Multiupload = {};
FABridge.addInitializationCallback("b_blog_Multiupload", blog_MultiuploadReady);

function init(mid){

	if(!mid){
		
		this.mid = getURLValues('mid') ? getURLValues('mid') : undefined;
	}
	
	passThru = getURLValues('passThru');
	
	fillReportSelectBox();
	
	if(passThru == 1){
	
		var login_area = document.getElementById('login_area');
		var edit_area = document.getElementById('edit_area');
		login_area.style.display = 'none';
		edit_area.style.display = 'block';
	}
}

function getMid(){
		
	return mid;
}

function initialize(){
	
	if(mid){
		
		var myAjax = new Ajax();
		myAjax.url = 'src/blog.php';
		myAjax.onSuccess=getReport;
		myAjax.onError=errorHandler;
		myAjax.params = 'case=content&mid='+mid+"&language="+language+"&edit=1";
		myAjax.method = 'POST';
		myAjax.doRequest();
		
	}else{
		
		var myAjax = new Ajax();
		myAjax.url = 'src/edit.php';
		myAjax.onSuccess=mapKeyHandler;
		myAjax.onError=errorHandler;
		myAjax.params = 'case=getMapKey';
		myAjax.method = 'POST';
		myAjax.doRequest();
	}
}

function mapKeyHandler(txt, xml)
{
	mapKey = txt;
	setInputMessage();
}

function getReport(txt, xml)
{
	main_xml = xml;
	
	mapKey = main_xml.getElementsByTagName('mapkey');
	mapKey = mapKey[0].firstChild.data;
	
	setInputMessage();
}

function errorHandler(e){
	alert('Error: ' + e);
}

function saveMapsXML(){

	var myAjax = new Ajax();
	myAjax.url = 'src/edit.php';
	myAjax.onError=errorHandler;
	myAjax.params = 'case=saveMapsXML&mid='+mid;
	myAjax.method = 'POST';
	myAjax.doRequest();
}

function openWindow(url, name, width, height, status, scroll, resize)
{
 	var fenster = window.open(url, this.name, "width="+width+", height="+height+", status="+status+", scrollbars="+scroll+", resize="+resize);
 	fenster.focus();
	
}

function login(){
	
	var name = document.getElementById('login');
	name = name.value;
	
	var pass = document.getElementById('pass');
	pass = pass.value;

	var myAjax = new Ajax();
	myAjax.url = 'src/edit.php';
	myAjax.onSuccess=handleLogin;
	myAjax.onError=errorHandler;
	myAjax.params = 'case=getPass&name='+name+'&pass='+pass;
	myAjax.method = 'POST';
	myAjax.doRequest();
}

function handleLogin(txt, xml){

	var login_area = document.getElementById('login_area');
	var edit_area = document.getElementById('edit_area');
	
	login_area.style.display = 'block';
	edit_area.style.display = 'none';

	if(txt == 1){
		
		login_area.style.display = 'none';
		edit_area.style.display = 'block';
		initialize();
	}
}

function fillReportSelectBox()
{
	var myAjax = new Ajax();
	myAjax.url = 'src/edit.php';
	myAjax.onSuccess=fillReportSelectionHandler;
	myAjax.onError=errorHandler;
	myAjax.params = 'case=getHeadlines';
	myAjax.method = 'POST';
	myAjax.doRequest();
}

function fillReportSelectionHandler(txt, xml)
{
	var messages = xml.getElementsByTagName('message');
	
	var selectBox = document.getElementById('reports_mc');
	
	var option = document.createElement("option");
	option.value = '';
	option.selected = 1;
	option.innerHTML = 'Neuen Bericht erstellen';
	selectBox.appendChild(option);
	
	for(var i=0; i<messages.length; i++)
	{
		var option = document.createElement("option");
		option.value = messages[i].getAttribute('mid');
		if(messages[i].getAttribute('visible') == 0){
			option.style.color = '#AAAAAA';
		}
		option.innerHTML = messages[i].firstChild.data.substr(0,30);
		selectBox.appendChild(option);
	}
}

function changeMid(){
	
	var selectBox = document.getElementById('reports_mc');
	mid = selectBox.children[selectBox.selectedIndex].value;
}

function getURLValues(name){

	var url = window.location.search;
	var Ausdruck = new RegExp("("+name+"=)(.*?)(&|$)");

	if(Ausdruck.exec(url)){
		
		return RegExp.$2;
	}

 	return undefined;
}

function setInputMessage(){
	
	var message_container = document.getElementById('message_container');
	
	var input_container = document.createElement("div");
	input_container.id = 'input_container';
	
	var date_mc = document.createElement("input");
	date_mc.id = 'input_date';
	
	var city_mc = document.createElement("input");
	city_mc.id = 'input_city';
	
	var maps_btn = document.createElement("div");
	maps_btn.className = 'button_standard';
	maps_btn.innerHTML = 'Map';
	maps_btn.onclick = function(){ 
	
		showMaps();
	}
	
	var language_btn = document.createElement("div");
	language_btn.id = 'language_btn';
	language_btn.className = 'button_standard';
	language_btn.innerHTML = language == 'de' ? 'in english' : 'in deutsch';
	language_btn.onclick = function(){ 
	
		changeLanguage();
	}
	
	var title_mc = document.createElement("input");
	title_mc.id = 'input_title';
	
	var title_en_mc = document.createElement("input");
	title_en_mc.id = 'input_title_en';

	var message_mc = document.createElement("textarea");
	message_mc.id = 'input_message';
	
	var message_en_mc = document.createElement("textarea");
	message_en_mc.id = 'input_message_en';	
	
	if(main_xml){
		
		var message = main_xml.getElementsByTagName('message');
		message = message[0];
		
		visible = message.getAttribute('visible') == 0 ? false : true;
		
		var city = message.getElementsByTagName('city');
		city = city[0].firstChild.data;	

		var head_txt = message.getElementsByTagName('head');
		head_txt = head_txt[0].firstChild.data;
		
		var body_txt = message.getElementsByTagName('body');
		body_txt = body_txt[0].firstChild.data;
		
		var head_en_txt = message.getElementsByTagName('head_en');
		
		head_en_txt = head_en_txt[0].firstChild != null ? head_en_txt[0].firstChild.data : 'Title';
		
		var body_en_txt = message.getElementsByTagName('body_en');
		body_en_txt = body_en_txt[0].firstChild != null ? body_en_txt[0].firstChild.data : 'Report';
	}
	
	if(main_xml){
		
		var date = message.getElementsByTagName('date');
		date_mc.value = date[0].firstChild.data;
	}else{

		var d = new Date();
  	date_mc.value = d.getDate()+'.'+(d.getUTCMonth()+1)+'.'+d.getFullYear();
	}

	date_mc.std_value = 'Datum';
	date_mc.readOnly = true;
	
	city_mc.value = main_xml ? city : 'Ort';
	city_mc.std_value = 'Ort';
	
	title_mc.value = main_xml ? head_txt : 'Titel';
	title_mc.std_value = 'Titel';
	
	message_mc.value = main_xml ? body_txt : 'Bericht';
	message_mc.std_value = 'Bericht';
	
	title_en_mc.value = main_xml ? head_en_txt : 'Title';
	title_en_mc.std_value = 'Title';
	
	message_en_mc.value = main_xml ? body_en_txt : 'Report';
	message_en_mc.std_value = 'Report';
	
	//setStandardEvents_Input(date_mc);
	setStandardEvents_Input(city_mc);
	setStandardEvents_Input(title_mc);
	setStandardEvents_Input(message_mc);
	setStandardEvents_Input(title_en_mc);
	setStandardEvents_Input(message_en_mc);
	
	var infomail_mc = document.createElement("div");
	var online_mc = document.createElement("div");
	
	online_mc.id				= 'online_btn';
	online_mc.innerHTML = visible ? 'Online' : 'Offline';
	online_mc.className = visible ? 'button_active' : 'button_standard';
	online_mc.title 		= visible ? 'Bericht ist auf der Webseite sichtbar' : 'Bericht wird auf der Webseite nicht angezeigt';
	
	online_mc.onclick 	= function(){ 
	
		visible = visible ? false : true;
		if(visible)
		{
			this.innerHTML = 'Online';
			this.className = 'button_active';
			infomail_mc.innerHTML = infomail ? 'Infomail' : 'No infomail';
			infomail_mc.className = 'button_standard';
		}
		else
		{
			this.innerHTML 				= 'Offline';
			this.className 				= 'button_standard'
			infomail 							= false;
			infomail_mc.innerHTML = 'No infomail';
			infomail_mc.className = 'button_inactive';
		}
	}
	
	infomail_mc.id					= 'infomail_btn';
	infomail_mc.innerHTML 	= infomail ? 'Infomail' : 'No infomail';
	infomail_mc.className 	= infomail ? 'button_active' : 'button_standard';
	infomail_mc.title 			= infomail ? 'Infomail an alle Blogbesucher schicken' : 'Keine Infomail schicken';
	
	infomail_mc.onclick 		= function()
	{ 
		if(visible)
		{
			infomail = infomail ? false : true;
			if(infomail)
			{
				this.innerHTML = 'Infomail';
				this.className = 'button_active';
			}
			else
			{
				this.innerHTML = 'No infomail';
				this.className = 'button_standard'
			}
		}
	}
	
	var save_mc = document.createElement("div");
	save_mc.innerHTML = 'Save';
	save_mc.className = 'button_standard';
	save_mc.title 		= 'Bericht zwischenspeichern';
	save_mc.onclick 	= function(){ 
	
		saveType = 'save';
		sendMessage(0);
	}
	
	var preview_mc = document.createElement("div");
	preview_mc.innerHTML = 'Preview';
	preview_mc.className = 'button_standard';
	preview_mc.title = 'Bericht zur Vorschau ansehen'
	preview_mc.onclick = function(){ 
	
		saveType = 'preview';
		sendMessage(0);
	}

	var submit_mc = document.createElement("div");
	submit_mc.innerHTML = 'Finish';
	submit_mc.className = 'button_standard';
	submit_mc.title = 'Bericht abschließen und speichern'
	submit_mc.onclick = function(){
		
		saveType = 'exit';
		sendMessage(1);
	}
	
	input_container.appendChild(date_mc);
	input_container.appendChild(city_mc);
	input_container.appendChild(maps_btn);
	input_container.appendChild(title_mc);
	input_container.appendChild(language_btn);
	input_container.appendChild(title_en_mc);
	input_container.appendChild(message_mc);
	input_container.appendChild(message_en_mc);
	input_container.appendChild(submit_mc);
	input_container.appendChild(preview_mc);
	input_container.appendChild(save_mc);
	input_container.appendChild(infomail_mc);
	input_container.appendChild(online_mc);
	
	if(old_input_container = document.getElementById('input_container')){
		
		message_container.replaceChild(input_container, old_input_container);
	}else{
	
		message_container.appendChild(input_container);
	}
	
}

function changeLanguage(lang){
	
	var language_btn = document.getElementById('language_btn');
	
	language = language == 'de' ? 'en' : 'de';
	language = lang ? lang : language;
	
	if(language == 'de'){
		
		language_btn.innerHTML = 'in english';
	}else{
	
		language_btn.innerHTML = 'in deutsch';
	}
	
	setLanguageInputs();
}

function setLanguageInputs(){
	
	var title_mc = document.getElementById('input_title');
	var title_en_mc = document.getElementById('input_title_en');
	var message_mc = document.getElementById('input_message');
	var message_en_mc = document.getElementById('input_message_en');
	
	if(language == 'de'){
		
		message_mc.style.display 		= 'block';
		message_en_mc.style.display = 'none';
		title_mc.style.display 			= 'block';
		title_en_mc.style.display 	= 'none';
	}else{
		
		message_mc.style.display 		= 'none';
		message_en_mc.style.display = 'block';
		title_mc.style.display 			= 'none';
		title_en_mc.style.display 	= 'block';
	}
}

function showMaps(){

	var maps_mc = document.getElementById('maps_container');
	
	maps_mc.innerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="maps" width="100%" height="100%" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="blog_Multiupload/googleMaps.swf" /><param name="flashvars" value="key='+mapKey+'"/><param name="quality" value="high" /><param name="bgcolor" value="#869ca7" /><param name="allowScriptAccess" value="sameDomain" /><embed src="blog_Multiupload/googleMaps.swf" quality="high" bgcolor="#869ca7" width="100%" height="100%" name="maps" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="key='+mapKey+'" /></object>';
	maps_mc.style.display = 'block';
}

function closeMaps(){
	
	var maps_mc = document.getElementById('maps_container');
	maps_mc.innerHTML = '';
	maps_mc.style.display = 'none';
}

function setStandardEvents_Input(mc){
	
	mc.onfocus = function(){
		
		if(!validate_texts(this)){
			
			this.value = '';
			this.style.borderColor = '#87200F';
		}
	}
	
	mc.onblur = function(){
		
		if(!validate_texts(this)){
			
			this.value = this.std_value;
		}
	}
	
	mc.title = mc.std_value;
}

function validate_email(email){
	
	var Ausdruck = new RegExp("^[A-Za-z\'0-9]+([._-][A-Za-z\'0-9]+)*@([A-Za-z0-9]+([._-][A-Za-z0-9]+))+$");
	var result_array = Ausdruck.exec(email);
	
	if(Ausdruck.exec(email)){
	
		return true;
	}else{
	
		return false;
	}
}

function validate_texts(mc){
	
	if(	mc.value && mc.value != '' && mc.value.toLowerCase() != mc.std_value.toLowerCase()){
		
		return true;
	}else{
	
		return false;
	}
}

function sendMessage(abschluss){
	
	if(abschluss == 1){
		
		$check = confirm("Bericht abschließen und zum Blog springen?");
		if(!$check){
			
				return 0;
		}
	}

	var message_container = document.getElementById('message_container');
	var city_mc = document.getElementById("input_city");
	var title_mc = document.getElementById("input_title");
	var message_mc = document.getElementById("input_message");
	var title_en_mc = document.getElementById("input_title_en");
	var message_en_mc = document.getElementById("input_message_en");
	
	//check forms
	if( !validate_texts(title_mc) || !validate_texts(message_mc) || !validate_texts(city_mc)){
		
		changeLanguage('de');
		alert('Achtung! Der deutsche Bericht muss vollständig sein!\nFehlende Felder werden rot markiert!')
	}
	
	city_mc.style.borderColor = !validate_texts(city_mc) ? '#FF0000' : '#87200F';
	title_mc.style.borderColor = !validate_texts(title_mc) ? '#FF0000' : '#87200F';
	message_mc.style.borderColor = !validate_texts(message_mc) ? '#FF0000' : '#87200F';
	
	if(validate_texts(city_mc)
	&& validate_texts(title_mc)
	&& validate_texts(message_mc)){
	
		startProcessing();
		
		city = encodeURIComponent(city_mc.value);
		title = encodeURIComponent(title_mc.value);
		title_en = title_en_mc.value == title_en_mc.std_value ? '' : encodeURIComponent(title_en_mc.value);
		message = encodeURIComponent(message_mc.value);
		message_en = message_en_mc.value == message_en_mc.std_value ? '' : encodeURIComponent(message_en_mc.value);
		
		var editModus 		= mid ? 1 : 0;
		var visibleValue 	= visible == true ? 1 : 0;
		var infomailValue = infomail == true ? 1 : 0;
		
		var myAjax = new Ajax();
		myAjax.url = 'src/edit.php';
		myAjax.onSuccess=messageSaved;
		myAjax.onError=errorHandler;
		myAjax.params = 'case=saveMessage&mid='+mid+'&city='+city+'&title='+title+'&message='+message+'&title_en='+title_en+'&message_en='+message_en+'&visible='+visibleValue+'&editModus='+editModus+'&abschluss='+abschluss+'&infomail='+infomailValue;

		myAjax.method = 'POST';
		myAjax.doRequest();
	}	
}

function showPreview(id){
	openWindow('start.html?case=preview&mid='+mid, "Vorschau", 700, 800, 'yes', 'yes', 'yes');
}

function messageSaved(txt, xml){

	mid = txt;
	b_blog_Multiupload_root.sendCompleteData(mid);	
}

function startProcessing(){
	
	document.getElementById('waiting_mc').style.display = 'block';
	document.getElementById('status_txt').style.display = 'block';
	
	var status = 'Status: ';
	
	switch(saveType){
		
		case 'save':
				status += 'Speichervorgang läuft...';
			break;
			
		case 'preview':
				status += 'Vorschau wird vorbereitet...';
			break;
			
		case 'exit':
				status += 'Bericht wird gespeichert...';
			break;
	}
	
	document.getElementById('status_txt').innerHTML = status;
}

function stopProcessing(){
	
	document.getElementById('waiting_mc').style.display = 'none';
	document.getElementById('status_txt').style.display = 'none';
}

function reportSaved(){
	
	
	stopProcessing();
	
	if(saveType == 'save'){
		
		alert('Der Bericht wurde gespeichert!');
	}else if(saveType == 'preview'){
		
		showPreview(mid);
	}else if(saveType == 'exit'){
		
		location.href = 'start.html';
	}
}

function getAdminModus(){
	
	return true;
}

function getActualMid(){
	
	return mid;
}

function blog_MultiuploadReady() {

	b_blog_Multiupload_root = FABridge["b_blog_Multiupload"].root();
	
	blog_Multiupload.sendCompleteData = function(argUint) {
		b_blog_Multiupload_root.sendCompleteData(argUint);
	};

}