/**
 * @author maggo
 */
	
var File = new Class({
	fxFileEditBox: null
	,fxFileUpdateBox: null
	,fxAjaxLoader: null
	,fxShowFiles: null
	,cid: ""
	,address: ""
	,id_before: ""
	
	,initialize: function() {
		//Objekte geschützt laden
		if (null != ($('fileEditBox'))) {
			this.fxFileEditBox = new Fx.Slide('fileEditBox');
			this.fxFileEditBox.hide();
		}
		if (null != ($('fileUpdateBox'))) {
			this.fxFileUpdateBox = new Fx.Slide('fileUpdateBox');
			this.fxFileUpdateBox.hide();
		}
		if (null != ($('file_ajax'))) {
			this.fxAjaxLoader =  new Fx.Slide('file_ajax');
			this.fxAjaxLoader.hide();
		}
		if (null != ($('button_file_close'))) {
			$('button_file_close').addEvent('click',function(e) {
				e = new Event(e);
				file.fxFileEditBox.slideOut();
				file.reloadTableC();
				e.stop();
			});	
		}
		if (null != ($('file_submit'))) {
			$('file_submit').addEvent('click',function(e) {
				e = new Event(e);
				if (file.uploadFile()) $('form_file_upload').submit();
				e.stop();
			});	
		}
		if (null != ($('linkShowFiles'))) {
			this.fxShowFiles = new Fx.Slide('showFiles').hide();
			$('linkShowFiles').addEvent('click',function(e) {
				e = new Event(e);
				file.switchFiles();
				e.stop();
			});	
		}
	}
	,uploadFile: function() {
		if ($('file').value == "") {
			$('file_message').innerHTML = "<span class='error'>Bitte geben Sie eine Datei an</span>";
		} else if ($('file_name').value == "") {
			$('file_message').innerHTML = "<span class='error'>Bitte geben Sie einen Namen für die Datei an</span>";
		} else {
			$('file_message').innerHTML = "";
			this.fxAjaxLoader.slideIn();
			$('file_submit').disabled = true;
			$('file_submit').value = "Bitte warten...";
			return true;
		}
		new Effect('file_message').Appear();
		$('file_message_a').focus();
		window.setTimeout("var box = new Effect('file_message').Fade();",5000);
		return false;
	}
        ,setRights: function(id){
                file.getEditRightForm(id);

                var html = document.getElementsByTagName('html')[0];
                $('file_ip_slayer').style.height = html.offsetHeight+'px';
                $('file_ip_slayer').style.width = html.offsetWidth+'px';
                $('file_ip_slayer').style.display = "block";
                $('file_ip_content').style.display = 'block';
        }
        ,hideIP: function(){
                $('file_ip_content').style.display = 'none';
                $('file_ip_slayer').style.display = 'none';
        }
        ,getEditRightForm: function(fid){
                var url = this.address + 'geco/' + this.cid + '/file/rightform/' + fid;
                this.fxAjaxLoader.slideIn();
                new Request.HTML({
                        url: url,
                        method: 'get',
                        update: $('file_ip_content'),
                        evalScripts: false,
                        onComplete: function(){
                                window.setTimeout('file.fxAjaxLoader.slideOut();',2000);
                        }
                }).send();
        }
        ,saveRights: function(){
                var url = this.address + 'geco/' + this.cid + '/file/saverights';
                file.hideIP();
                this.fxAjaxLoader.slideIn();
                new Request.HTML({
                        url: url,
                        method: 'post',
                        data: $('ip_edit_rights_form'),
                        evalScripts: true,
                        update: $('file_message'),
                        onComplete: function() {
                                $('file_message_a').focus();
                                window.setTimeout("file.fxAjaxLoader.slideOut();",2000);
                        }
                }).send();
                
        }
	,showMessage: function(msg) {
		hide('file_message');
		$('file_message').innerHTML = msg;
		var box = new Effect('file_message').Appear();
		$('file_message').focus();
		window.setTimeout('var box = new Effect("file_message").Fade();',5000);
	}
	,reloadTable: function(cid) {
		var url = this.address + 'geco/' + this.cid + '/file/reload';
		this.fxAjaxLoader.slideIn();
		new Request.HTML({
			url: url,
			method: 'get',
			update: $('file_table'),
			evalScripts: false,
			onComplete: function() {
				window.setTimeout("file.fxAjaxLoader.slideOut();",2000);
				window.setTimeout("file.loadInEdit();",1);
			}
		}).send();
	}
	,reloadTableC: function() {
		this.reloadTable(this.cid);
		$('file').value = "";
		$('file_name').value = "";
		$('description').value = "";
		$('file_submit').disabled = false;
		$('file_submit').value = "Hochladen";
		this.showBox();
	}
	,switchFiles: function() {
			this.fxShowFiles.toggle();
			if (this.fxShowFiles.wrapper.offsetHeight == 0 || this.fxShowFiles.wrapper.offsetWidth == 0) {
				$('linkShowFiles').innerHTML = 'Dateien verstecken';
			} else {
				$('linkShowFiles').innerHTML = 'Alle Dateien anzeigen';
			}
	}
	,deleteByID: function(id) {
		if (confirm('Wollen Sie diese Datei löschen?')) {
			var url = this.address + 'geco/' + this.cid + '/file/delete/' + id;
			this.fxAjaxLoader.slideIn();
			new Request.HTML({
				url: url,
				method: 'get',
				update: $('file_message'),
				evalScripts: false,
				onComplete: function() {
					$('file_message_a').focus();
					file.reloadTable(this.cid);
					window.setTimeout("file.fxAjaxLoader.slideOut();",2000);
				}
			}).send();
		}
	}
	,showBox: function() {
		this.fxFileEditBox.toggle();
	}
	,showUpdateBox: function (id, name, description) {
		if (this.id_before != '') { 
			id = this.id_before;
			this.id_before = '';
		}
		if (this.fxFileUpdateBox.wrapper.offsetHeight == 0 || this.fxFileUpdateBox.wrapper.offsetWidth == 0) {
			$('file_id_u').value = id;
			$('file_name_u').value = name;
			$('description_u').value = description;
			$('file_'+id).style.background = '#E6E6FF';
			$('file2_'+id).style.background = '#E6E6FF';
			$('img_file_pencil_'+id).src = 'res/button_pencil_cross.gif';
			this.id_before = id;
		} else {
			$('file_'+id).style.background = '';
			$('file2_'+id).style.background = '';
			$('img_file_pencil_'+id).src = 'res/button_pencil.gif';
			$('file_id_u').value = '';
			$('file_name_u').value = '';
			$('description_u').value = '';
		}
		this.fxFileUpdateBox.toggle();
	}
	,loadInEdit: function() {
		$$('.sort_files').each(function (el) {
			el.addEvent('click', function() {
				this.inlineEdit({
					onComplete: function (element) {
						var file = new File();
						file.updateOrder(element);
					}
				});
			});
		});
	}
	,updateOrder: function(element){
		var url = 'geco/'+ $F('cid') + '/file/updateOrder';
		new Request.JSON({
			url: url,
			onComplete: function(response){
				if (response == null) {
					$('file_message').set('html','Es ist ein unbekannter Fehler aufgetreten');
					new Effect('file_message').Appear();
					$('file_message_a').focus();
					window.setTimeout("var box = new Effect('file_message').Fade();",5000);
					window.setTimeout('file.reloadTable(\''+$F('cid')+'\');',4000);
				} else if (response.status == false) {
					$('file_message').set('html', response.msg);
					new Effect('file_message').Appear();
					$('file_message_a').focus();
					window.setTimeout("var box = new Effect('file_message').Fade();",5000);
					window.setTimeout('file.reloadTable(\''+$F('cid')+'\');',4000);
				} else {
					$('file_message').set('html', response.msg);
					new Effect('file_message').Appear();
					$('file_message_a').focus();
					window.setTimeout("var box = new Effect('file_message').Fade();",5000);
					window.setTimeout('file.reloadTable(\''+$F('cid')+'\');',20);
				}

			}
		}).send('order=' + element.get('html') + '&file_id=' + element.get('id') );
	}
	,updateFile: function() {
		if ($F('file_name_u') == '') {
			this.showMessage('Bitte geben Sie einen Namen ein');
		} else {
			var url = 'geco/' + this.cid + '/file/update';
			this.fxAjaxLoader.slideIn();
			new Request.HTML({
				url: url,
				method: 'post',
				data: $('form_file_update'),
				evalScripts: false,
				update: $('file_message'),
				onComplete: function() {
					$('file_message_a').focus();
					file.reloadTable(this.cid);
					window.setTimeout("file.fxAjaxLoader.slideOut();",2000);
					file.showUpdateBox($F('file_id_u'),'','');
				}
			}).send();
		}
	}
	,updateS: function(show) {
		this.fxAjaxLoader.slideIn();
		var url = 'geco/' + $F('cid') + '/file/updateS';
		var post = '';
		if (show) {
			post = 'show=true';
		} else {
			post = 'show=false';
		}
		new Request.HTML({
			url: url,
			evalScripts: false,
			data: post,
			update: $('file_message'),
			onComplete: function() {
				file.reloadTable(this.cid);
				$('file_message_a').focus();
				window.setTimeout("file.fxAjaxLoader.slideOut();",2000);
				new Effect('file_message').Appear();
				window.setTimeout('new Effect("file_message").Fade();',5000);
			}
		}).send();
	}
});

