/*---------------------------------------------------------------------------------
    CORE DEFINITION
---------------------------------------------------------------------------------*/

var form = function(settings){
    
    this.join = function(form_selector){

        setTimeout(function(){ 
                        
            $(form_selector).validationEngine({
                ajaxSubmit: false,                          
                success :  function() { 
                        new call({
                            applicationName : 'user',
                            applicationSubName : 'action',
						    formElement : form_selector,
						    responseElement : form_selector+'-response',
                            url : PH_R+'user/j-user-action.php',
						    tasked : false
						    
                        },
                        {
                            obj : 'user',
                            action : 'join'
                        }
                        );
                        
                        core.form.join(form_selector);
                }
            });
        
        },500);
            
    }
    
    this.login = function(form_selector){
        
        
        setTimeout(function(){
            
            $(form_selector).validationEngine({
            ajaxSubmit: false,                          
            success :  function() {  
                
                    new call({
                        applicationName : 'user-login',
                        applicationSubName : 'login',
                        formElement : form_selector,
                        responseElement : form_selector+'-response',
                        url : PH_R+'user/j-user-action.php'
                    },
                    {
                        obj : 'user',
                        action : 'login'
                    }
                    );
                    
                    core.form.login(form_selector);
            }
            });
            
        },500);
                        
    }
    
    this.logout = function(){


            new call({
                applicationName : 'user-logout',
                applicationSubName : 'logout',
                url : PH_R+'user/j-user-action.php'
            },
            {
                obj : 'user',
                action : 'logout'
            }
            );
            
    }
    
    this.action = function(form_selector, extra, settings){
    
        extra = jQuery.extend({
            obj : 'user',
            //action : 'error'
        },extra);
        
        settings = jQuery.extend({
            applicationName : 'user',
            applicationSubName : 'action',
            formElement : form_selector,
            responseElement : form_selector+'-response',
            url : PH_R+'user/j-user-action.php',
            waitLoading : true
            /*
            onStart : function(){core.css.waitPage()},
            onComplete : function(){core.css.waitPage({ action: 'close' })}
            */
        },settings);

        setTimeout(function(){ 
                        
            $(form_selector).validationEngine({
                ajaxSubmit: false,                          
                success :  function() { 
                        new call(settings,extra);
                        
                        core.form.action(form_selector, extra, settings);
                }
            });
        
        },500);
            
    }
    
    this.mediagrp = function(form_selector, extra){
        
        extra = jQuery.extend({
            obj : 'mediagrp'
        },extra);

        $(form_selector).validationEngine({
            ajaxSubmit: false,                          
            success :  function() { 
                    new call({
                        applicationName : 'mediagrp',
                        applicationSubName : 'action',
                        formElement : form_selector,
                        responseElement : form_selector+'-response',
                        url : PH_R+'user/j-user-action.php',
                        tasked : false
                        
                    },extra);
                    
                    core.form.mediagrp(form_selector);
            }
        });
            
    }
    
    this.showMediagrp = function(selector,extra,settings){
        
        
        if (selector){
            var dialogParams = false;  
        }
        else{
            var dialogParams = { modal: true, width: 600 }; 
        }
        
        settings = jQuery.extend({
            applicationName : 'mediagrp',
            applicationSubName : 'media_informazioni',
            responseElement : selector,
            multiOpen : true,
            url : PH_R+'form/j-form-mediagrp.php',
            dialog : dialogParams
        },settings); 
        
        extra = jQuery.extend({
            testExtraInviato : 'variabile extra inviata'
        },extra);
        
        new call(settings,extra);
        
    }
    
    this.label = function(form_selector, extra){
        
        extra = jQuery.extend({
            obj : 'label'
        },extra);

        $(form_selector).validationEngine({
            ajaxSubmit: false,                          
            success :  function() { 
                    new call({
                        applicationName : 'label',
                        applicationSubName : 'action',
                        formElement : form_selector,
                        responseElement : form_selector+'-response',
                        url : PH_R+'user/j-user-action.php',
                        tasked : false
                        
                    },extra);
                    
                    core.form.label(form_selector);
            }
        });
            
    }
    
    this.showLabel = function(selector,extra){
        
        if (selector){
            var dialogParams = false;  
        }
        else{
            var dialogParams = { modal: true, width: 800 }; 
        } 
        
        extra = jQuery.extend({
            testExtraInviato : 'variabile extra inviata'
        },extra);
        
        new call({
            applicationName : 'label',
            applicationSubName : 'show_form',
            responseElement : selector,
            multiOpen : true,
            url : PH_R+'form/j-form-label.php',
            dialog : dialogParams
        },extra);
        
    }
    
    this.cat = function(form_selector, extra){
        
        extra = jQuery.extend({
            obj : 'cat'
        },extra);

        $(form_selector).validationEngine({
            ajaxSubmit: false,                          
            success :  function() { 
                    new call({
                        applicationName : 'cat',
                        applicationSubName : 'action',
                        formElement : form_selector,
                        responseElement : form_selector+'-response',
                        url : PH_R+'user/j-user-action.php',
                        tasked : false
                        
                    },extra);
                    
                    core.form.cat(form_selector);
            }
        });
            
    }
    
    
    this.showAttr = function(selector,extra){
        
        if (selector){
            var dialogParams = false;  
        }
        else{
            var dialogParams = { modal: true, width: 800 }; 
        } 
        
        extra = jQuery.extend({
            testExtraInviato : 'variabile extra inviata'
        },extra);
        
        new call({
            applicationName : 'attr',
            applicationSubName : 'show_form',
            responseElement : selector,
            multiOpen : true,
            url : PH_R+'form/j-form-attr.php',
            dialog : dialogParams
        },extra);
        
    }
    
    this.showAttrvalue = function(selector,extra){
        
        if (selector){
            var dialogParams = false;  
        }
        else{
            var dialogParams = { modal: true, width: 800 }; 
        } 
        
        extra = jQuery.extend({
            testExtraInviato : 'variabile extra inviata'
        },extra);
        
        new call({
            applicationName : 'attrvalue',
            applicationSubName : 'show_form',
            responseElement : selector,
            multiOpen : true,
            url : PH_R+'form/j-form-attrvalue.php',
            dialog : dialogParams
        },extra);
        
    }
    
    this.showCat = function(selector,extra){
        
        if (selector){
            var dialogParams = false;  
        }
        else{
            var dialogParams = { modal: true, width: 800 }; 
        } 
        
        extra = jQuery.extend({
            testExtraInviato : 'variabile extra inviata'
        },extra);
        
        new call({
            applicationName : 'cat',
            applicationSubName : 'show_form',
            responseElement : selector,
            multiOpen : true,
            url : PH_R+'form/j-form-cat.php',
            dialog : dialogParams
        },extra);
        
    }
    
    this.attrRelatedRules = function(form_selector, extra){
        
        extra = jQuery.extend({
            obj : 'attrrelatedrules'
        },extra);

        $(form_selector).validationEngine({
            ajaxSubmit: false,                          
            success :  function() { 
                    new call({
                        applicationName : 'attrrelatedrules',
                        applicationSubName : 'action',
                        formElement : form_selector,
                        responseElement : form_selector+'-response',
                        url : PH_R+'user/j-user-action.php',
                        tasked : false
                        
                    },extra);
                    
                    core.form.attrRelatedRules(form_selector);
            }
        });
            
    }
    
    
    this.showAttrRelatedRules = function(selector,extra){
        
        if (selector){
            var dialogParams = false;  
        }
        else{
            var dialogParams = { modal: true, width: 800 }; 
        } 
        
        extra = jQuery.extend({
            testExtraInviato : 'variabile extra inviata'
        },extra);
        
        new call({
            applicationName : 'attrrelatedrules',
            applicationSubName : 'show_form',
            responseElement : selector,
            multiOpen : true,
            url : PH_R+'form/j-form-attrrelatedrules.php',
            dialog : dialogParams
        },extra);
        
    }
    
    this.attrRelated = function(form_selector, extra){
        
        extra = jQuery.extend({
            obj : 'attrrelated'
        },extra);

        $(form_selector).validationEngine({
            ajaxSubmit: false,                          
            success :  function() { 
                    new call({
                        applicationName : 'attrrelated',
                        applicationSubName : 'action',
                        formElement : form_selector,
                        responseElement : form_selector+'-response',
                        url : PH_R+'user/j-user-action.php',
                        tasked : false
                        
                    },extra);
                    
                    core.form.attrRelated(form_selector);
            }
        });
            
    }
    
    
    this.showAttrRelated = function(selector,extra){
        
        if (selector){
            var dialogParams = false;  
        }
        else{
            var dialogParams = { modal: true, width: 800 }; 
        } 
        
        extra = jQuery.extend({
            testExtraInviato : 'variabile extra inviata'
        },extra);
        
        new call({
            applicationName : 'attrrelated',
            applicationSubName : 'show_form',
            responseElement : selector,
            multiOpen : true,
            url : PH_R+'form/j-form-attrrelated.php',
            dialog : dialogParams
        },extra);
        
    }
    
    this.resetForm = function(selector,onComplete){
    
        var el = $(selector).find("input");

        for( var i = 0 ; i < $(el).length ; i++ ){
               if($(el[i]).attr("type") == 'text'){
                    $(el[i]).val(''); 
                    $(el[i]).change();   
               }
               if($(el[i]).attr("type") == 'checkbox'){
                    $(el[i]).attr('checked',false);
                    $(el[i]).change();    
               }
        }
        
        el = $(selector).find("textarea");

        for( var i = 0 ; i < $(el).length ; i++ ){
                    $(el[i]).val(''); 
                    $(el[i]).change();    
        }
        
        el = $(selector).find("select");
        var options = false;
        for( var i = 0 ; i < $(el).length ; i++ ){
                    $(el[i]).find('option').attr("selected",false);
                    $(el[i]).change();
        }
        
        if(onComplete == false) onComplete = function(){};
        onComplete();
    
    }
    
    
    
    
    
};

