﻿var ContactForm = new Class({
	options: 
	{
	},		
	initialize: function(options)
	{
	    
		this.setOptions(options); 
				       	    		    	                        
        var prm = Sys.WebForms.PageRequestManager.getInstance();        
        prm.add_beginRequest(this.onStart.bind(this));  
        prm.add_pageLoaded(this.onComplete.bind(this));  
        this.box = $('contactBox');
                            
		if (this.options.initialize) 
		{
		    this.options.initialize.call(this);
		}
	},
    onComplete:function(sender,args)
    { 
        var panels = args.get_panelsUpdated();
        if(panels.length > 0)
        {                                                                     
            if(panels[0].id.indexOf(this.options.controlsPrefix + '_updatePanel') > -1)
            {           
                this.spinner.stop();
                
                if($(this.options.controlsPrefix + '_isValid').value == 'True')
                {        
                    $(this.submitId).disabled = true;
                    if(!$defined(this.messageBox))
                    {
                        this.messageBox = new MessageBox();
                        this.messageBox.button.addEvent('click',function()
                        {   
                            $(this.submitId).disabled = false;
                            
                            if($defined(window.waterMarks))
                            {
                                window.waterMarks.refresh('.contactform_watermark');
                            }
                        }.bind(this));
                    }
                                                         
                    this.messageBox.show('Hej! Ditt meddelande &auml;r nu skickad. Vi &aring;terkommer till dig inom kort. Mvh Human Assistans','OK',this.box,'center',this.options.messageBoxOffsetX,this.options.messageBoxOffsetY);                                         
                }                                                                           
            }
        }            
    }, 
    onStart:function(sender,args)
    {
        if(sender._updatePanelClientIDs.length > 0)
        {                                                                    
            if(args._postBackElement.id.indexOf(this.options.controlsPrefix) > -1)
            {
                this.submitId = args._postBackElement.id
                $(this.submitId).disabled = true;
                                                                                     
                if(!$defined(this.spinner))
                {  
                    this.spinner = new Spinner({images:this.options.spinnerImages});
                }
                
                this.spinner.start(this.box,'center',this.options.spinnerOffsetX,this.options.spinnerOffsetY);                                      
            }
        }  
    }
});

ContactForm.implement(new Options);