// JavaScript Document
if ( ! window.Prototype )
	throw new Exception('Can\'t work without prototype');
	
if ( ! window.hensam )
	var hensam = { Projects : { mehrdafon : {} } };
else if ( ! (hensam.Projects ) )
	hensam.Projects = { mehrdafon : {} } ;
else if ( ! hensam.Projects.mehrdafon  )
	hensam.Projects.mehrdafon = {};
	
hensam.Projects.mehrdafon.Downloads = Class.create({
    
    ajaxWrapper : null,

    downloadStart : function(transport) {

        var data = transport.responseJSON;
        switch ( data.status )
        {
            case 'ok':
                var mailForm = $('mailForm');
                if ( mailForm )
                {
                    mailForm.remove();
                }
				this.ajaxWrapper.hide();
                window.location.href = data.href.replace('&ajax=true', '');
                break;
            case 'mail':
                var form = this.ajaxWrapper.content.down() || new Element('div');
                form.update(data.form);
                form.down('form').observe('submit', this.downloadInitialization.bindAsEventListener(this));
                form.down('.cancel').observe('click', this.ajaxWrapper.hide.bind(this.ajaxWrapper));   
				
				this.ajaxWrapper.update(form);
				
				form.show();
				this.ajaxWrapper.show();
				break;
            default:
				this.ajaxWrapper.showMessage('Dieser Link funktioniert leider nicht');
        }
    },
    
    downloadInitialization : function(event) {
    
        event.stop();
        var element = event.element();
                
        var href = '';

        if ( element.href )
        {
            href = element.href;
            
            if ( href.indexOf('?') < 0 )
                return;
        }
        else if ( element.action )
        {
            href = '?'+$('mailForm').down('form').serialize();
        }
        else
        {
            return;
        }
        href = href.substr(href.indexOf('?')+1)
        href += '&ajax=true';
           
        new Ajax.Request('/download.php', {
            method : 'get',
            parameters : href,
            onSuccess : this.downloadStart.bindAsEventListener(this)
        });
    },
        
	registerObservers : function() {
		
		$$('a[href]').each(function(downloadLink) {
		    if ( downloadLink.href.search(/download.php/) > -1)
		    {
	       	    downloadLink.observe('click', this.downloadInitialization.bindAsEventListener(this));
		    }
		}, this);
		
		var forceIE6 = false;
		
		if ( BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 7 )
		{
			forceIE6 = true;
		}
		this.ajaxWrapper = new hensam.Projects.mehrdafon.AjaxWrapper(forceIE6);
	},

	initialize : function() {
	    Event.observe(document, 'dom:loaded', this.registerObservers.bindAsEventListener(this));
	}
});

new hensam.Projects.mehrdafon.Downloads();
