var Quickcontact = Class.create();
Quickcontact.prototype = {
    initialize: function(form, sendUrl) {
        this.form = $(form);
        this.sendUrl = sendUrl;
        this.heightOfBrowser = 0;
        this.open = false;
        
        if(typeof(window.innerHeight) == 'number') {
            this.heightOfBrowser = Math.round(window.innerHeight);
        } else if(document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight )) {
            this.heightOfBrowser = Math.round(document.documentElement.clientHeight);
        } else if (document.body && ( document.body.clientWidth || document.body.clientHeight )) {
            this.heightOfBrowser = Math.round(document.body.clientHeight);
        }
        
        $('box').setStyle({height:(this.heightOfBrowser - 20) + 'px'});
        $('quick-contact').setStyle({
                top:((this.heightOfBrowser - $('quick-contact').getHeight())/2) + 'px'
            });
    },
    
    /*
     * Show Lightbox
     */
    show: function() {
        if(this.open == false) {
            $('quickcontact-right-side').addClassName('active');
            new Effect.Move('quickcontact-wrapper', { x: 0, y: 0, mode: 'absolute' });
            this.open = true;
        } else {
            new Effect.Move('quickcontact-wrapper', { x: -490, y: 0, mode: 'absolute' });
            this.open = false;
            $('quickcontact-right-side').removeClassName('active');
        }
    },
    
    sendFeedBack: function() {
        var validator = new Validation(this.form);
        if(validator.validate()) {
            $('error').update('');
            Element.show('quickcontact-ajax-loader');
            Element.hide('quickcontact-form');
            var params = Form.serialize(this.form);
            var request = new Ajax.Request(
                            this.sendUrl,
                            {
                                parameters: params,
                                method: 'post',
                                onComplete: function() {
                                        Element.hide('quickcontact-ajax-loader');
                                        Element.show('quickcontact-form');
                                    }.bind(this),
                                onSuccess: this.processRespone.bind(this)
                            }
                        );
        }
    },
    
    processRespone: function(transport) {
        var response;
        if (transport && transport.responseText){
            try{
                response = eval('(' + transport.responseText + ')');
            }
            catch (e) {
                response = {};
            }
        }
        
        if(response.error) {
            $('error').update(Translator.translate(response.error));
            Recaptcha.reload();
        }
        
        if(response.isValid) {
            $('error').update(Translator.translate('Not valid sercurity code.'));
            Recaptcha.reload();
        }
        
        if(response.success) {
            this.show();
            alert(Translator.translate(response.success));
            Recaptcha.reload();
            $(this.form).reset();
            this.changeTitle('Contact Form');
        }
    },
    
    changeTitle: function(title) {
        $('quickcontact-title').update(title);
    }
}
