
document.observe('dom:loaded', function() {
  DocMarker.initialize();
});




var DSAG = {
	callAjax : function(url, callback, options) {
		new Ajax.Request(url, {
		  method: 'get',
		  onSuccess: function(transport) {
		  	var result = transport.responseText.replace(/\n<!--.*-->/g, ''); // Kommentare entfernen
		  	if(options.json)
					result = result.evalJSON(true);
				callback(result);
		  }
		});
	}
};


var DocMarker = {
	inited : false,
	initialize : function() {
		if((typeof SC == 'undefined') || this.inited) return;
		this.findDocs();
		this.refreshList();
		this.downloading = false;
		this.inited = true;
	},

 	//
 	// Eine Listendarstellung am rechten Rand anzeigen
	refreshList : function() {
		box = DocMarker.getListContainer();
		DocMarker.showSpinner(box, 'spinner_big');
		// Die aktuellen Dokumente vom Server anfragen
		url = SC.baseurl + '&dsag[do]=list';
		DSAG.callAjax(url, function(result) {
			DocMarker.showList(result);
		}, {json:true});
	},
	showList : function(docs) {
		var box = DocMarker.getListContainer();
		if(!box) return;
		if(docs.error == 'not logged in') {
		  box.parentNode.removeChild(box);
		  return;
		}
		box.update(docs.html);
		DocMarker.findDocs('#module-shopping a.docmark', '#module-shopping a#docdownload', '#module-shopping a#docclear');
	},
	// Liefert das Ziel-DIV für die Liste
	getListContainer : function () {
		var box = $('module-shopping');
		if(box) return box;
		// Jetzt dynamisch ein Div anlegen
		box = $('contentbox_right');
		if(!box) return null; // Dann geht es nicht

		var newBox = document.createElement('div');
		Element.extend(newBox);
		newBox.id = 'module-shopping';
		newBox.addClassName('module-login'); //.hide();

		box.appendChild(newBox);

		return newBox;
	},

	// Alle Doc-Links in der Seite suchen
	findDocs : function(linkpath, downloadpath, clearpath) {
		linkpath = linkpath ? linkpath : 'a.docmark';
		var links = $$(linkpath);
		links.each(function(link) {
			link.observe('click', function(event) { 
				event.stop();
				DocMarker.handleClick(link);
			});
		});
		if(downloadpath) {
			var links = $$(downloadpath);
			links.each(function(link) {
				link.observe('click', function(event) { 
					event.stop();
	  			if(!DocMarker.downloading) {
	  				DocMarker.downloading = true;
						DocMarker.handleDownload(link);
					}
				});
			});
		}
		if(clearpath) {
			var links = $$(clearpath);
			links.each(function(link) {
				link.observe('click', function(event) { 
					event.stop();
	  			if(!DocMarker.clearing) {
	  				DocMarker.clearing = true;
						DocMarker.handleClear(link);
					}
				});
			});
		}
	},
	handleDownload : function(link) {
		var url = link.href;
		var linkText = link.innerHTML;
		link.update('Einen Moment bitte...');
		DSAG.callAjax(url, function(result) {
			DocMarker.downloading = false;
			var err = result.error ? result.error : false;
			if(err) {
				window.alert(err);
				return;
			}
			var box = DocMarker.getListContainer();
			box.update('<span>Die Datei wurde erzeugt.<br /><a href="'+ result.zipfile +'"><img src="typo3conf/ext/dsag_info/res/img/zip.gif" /></a> <a href="'+ result.zipfile +'">Download starten</a></span>');
//			window.location = result.zipfile;
	  }, {json:true});
	},
	// Löscht die gesamte Liste
	handleClear : function(link) {
		var url = link.href;
		var linkText = link.innerHTML;
		link.update('Einen Moment bitte...');
		DSAG.callAjax(url, function(result) {
			DocMarker.clearing = false;
			var err = result.error ? result.error : false;
			if(err) {
				window.alert(error);
				return;
			}
			// Liste aktualisieren
	  	DocMarker.refreshList();
	  }, {json:true});
	},
	handleClick : function(link) {
		var add = link.hasClassName('addmark');
		var url = link.href;
		DocMarker.showSpinner(link);
		DSAG.callAjax(url, function(result) {
		  	DocMarker.setMark(link, result.status);
		  	// Jetzt die Liste aktualisieren
		  	DocMarker.refreshList();
		  }, {json:true});
	},
	setMark : function(link, isMarked) {
//		link.update(isMarked ? 'Entfernen' : 'Merken').toggleClassName('remark').toggleClassName('addmark');
		link.update(isMarked ? '<img src="fileadmin/images/icons/remove.gif" alt="-" title="Aus der Merkliste entfernen" class="noborder" />' : '<img src="fileadmin/images/icons/add.gif" alt="+" title="In die Merkliste aufnehmen" class="noborder" />').toggleClassName('remark').toggleClassName('addmark');
	},
	showSpinner : function(box, spinner) {
		if(Prototype.Browser.IE) return;
		spinner= spinner ? spinner :'spinner';
		box.update('<div class="spinner"><img src="typo3conf/ext/dsag_info/res/img/'+spinner+'.gif"></div>');
	}
};

function checkExtension() {
	destExt=$('fileext').getValue();
	sourceFile=$('checkinfile').getValue();
	var dot = sourceFile.lastIndexOf("."); 
	var extension = sourceFile.substr(dot,sourceFile.length).replace(/\./g, ""); 
	if(destExt==extension) {
		return true;
	}else{
		alert("Bitte achten Sie auf den Dateityp der Originaldatei '"+destExt+"'");
		return false;
	}
	return false;
}

