/*
 * jQuery.Zend.Form
 *
 * @author     Rimvydas Bingelis
 * @email      rimvydas@dsrock.com
 * @version    2010.05.01
 *
 * @link       http://rimvydas.bingelis.lt
 *
 */

if(!jQuery.Zend){
    jQuery.Zend = { };
}

jQuery.Zend.formObject = function(options) {

    var self = this;

    /**
     * redirektinimo funkcija
     * kvieciama po sekmino formos isaugojimo
     */
    this.redirect = function(responseText, statusText, xhr, $form){

        $('#message').html("Išsaugota").fadeOut('slow');

        var url = self.options.redirectUrl;

        if (url != '')
        {
            var nav = jQuery.Zend.navigation();
            nav.updatePage(self.options.redirectContainer,url);
        }
        else
            {
                var htmlDiv = $(self.options.redirectContainer);

                if (htmlDiv == null)
                    alert("nerastas konteineris");
                else
                    htmlDiv.html(responseText);
            }
    };

    this.reloadWindow = function(responseText, statusText, xhr, $form){
        $('#message').html("Išsaugota").fadeOut('slow');

        window.location.reload();
    }

    /**
     * kvieciama prie siunciant forma
     */
    this.beforeSubmit = function(formData, jqForm, options){

        $('#message').html("Siunčiama").fadeIn('fast');
        return true;
    };

    this.options = jQuery.extend({
        redirectUrl: '',
        redirectContainer: '',
        url: '',
        beforeSubmit: self.beforeSubmit,
        success: self.reloadWindow,
        formId: 'form'
    },options);
    
    this.init = function(){
        
        var formOptions = {
            beforeSubmit:  self.options.beforeSubmit,
            success:       self.options.success,
            url:           self.options.url,
            target:        ''
        //url:       url         // override for form's 'action' attribute
        //type:      type        // 'get' or 'post', override for form's 'method' attribute
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)
        //clearForm: true        // clear all form fields after successful submit
        //resetForm: true        // reset the form after successful submit
        //timeout:   3000
        };
        
        var form = $('#' + self.options.formId);

        if (form == null)
            alert('Nerasta forma');
        else
        {
            form.ajaxForm(formOptions);
        }
    }
}

jQuery.Zend.form = function(options) {

    var formObj = new jQuery.Zend.formObject(options);
    formObj.init();

    return formObj;
}