/** 
 * initialisation Ajax
 */
window.addEvent('domready', function(){
    init_form();
    init_search();
    init_link_client();

});

var window_det = function(url){
    if ($('win_det') !=null) {
        MochaUI.updateContent($('win_det'), null, url);
    } else {
        if(document.querySelectorAll && Browser.Engine.trident) { 
            new MochaUI.Window({
                id: 'win_det',
                title: 'Détail de l\'article',
                type: 'window',
                minimizable: false,
                loadMethod: 'xhr',
                contentURL: url,
                width: 230,
                height: 400,
                addClass: 'no-canvas',
                useCanvas: false,
                shadowBlur: 0,
                useCanvasControls: false,
                cornerRadius: 0,
                resizable: false,
                onContentLoaded: function(){
                }
            });
        } else {
            new MochaUI.Window({
                id: 'win_det',
                title: 'Détail de l\'article',
                type: 'window',
                minimizable: false,
                loadMethod: 'xhr',
                contentURL: url,
                width: 230,
                height: 400,
                cornerRadius: 0,
                resizable: false,
                onContentLoaded: function(){
                }
            });

        }
    }
}

var window_dispo = function(url){
    if ($('win_dispo') !=null) {
        MochaUI.updateContent($('win_dispo'), null, url);
    } else {
        if(document.querySelectorAll && Browser.Engine.trident) { 
            new MochaUI.Window({
                id: 'win_dispo',
                title: 'Disponibilité',
                type: 'window',
                minimizable: false,
                loadMethod: 'xhr',
                contentURL: url,
                width: 240,
                height: 340,
                addClass: 'no-canvas',
                useCanvas: false,
                shadowBlur: 0,
                useCanvasControls: false,
                cornerRadius: 0,
                resizable: false,
                onContentLoaded: function(){
                }
            });
        } else {
            new MochaUI.Window({
            id: 'win_dispo',
            title: 'Disponibilité',
            type: 'window',
            minimizable: false,
            loadMethod: 'xhr',
            contentURL: url,
            width: 240,
            height: 340,
            cornerRadius: 0,
            resizable: false,
            onContentLoaded: function(){
            }
        });
        }
    }
}

/**
 * Fenêtre recherche article
 */
var window_search = function(url){
    if ($('window_search') !=null) {
        MochaUI.updateContent($('window_search'), null, url);
    } else {
        if(document.querySelectorAll && Browser.Engine.trident) { 
            new MochaUI.Window({
            id: 'window_search',
            type: 'window',
            title: 'Liste des articles',
            minimizable: false,
            addClass: 'no-canvas',
            useCanvas: false,
            shadowBlur: 0,
            useCanvasControls: false,
            loadMethod: 'xhr',
            contentURL: url,
            width: 780,
            height: 450,
            cornerRadius: 0,
            resizable: false,
            onContentLoaded: function(){
                    //$('window_search').setStyle('width', 2000);
                    init_link_articles();
                    $("spinner").set('text', '');
                }
            });
        } else {
            new MochaUI.Window({
                id: 'window_search',
                type: 'window',
                title: 'Liste des articles',
                minimizable: false,
                loadMethod: 'xhr',
                contentURL: url,
                width: 780,
                height: 450,
                cornerRadius: 0,
                resizable: false,
                onContentLoaded: function(){
                    //$('window_search').setStyle('width', 2000);
                    init_link_articles();
                    $("spinner").set('text', '');
                }
            });
        }
    }
}
/**
 * initialisations des Liens Articles
 */
function init_link_articles() {
    var req = new Request.HTML({ 
        onRequest: function() {
            //Clear the text currently inside the results div.
            $('descriptif').set('text', '');
            // Pour firebug
            //console.info('(request) : making ajax call :: ');
            $('descriptif').set('html', '<div><img src="images/spinner.gif" /></div>');
        }, 
        onSuccess: function(html) {
            $('descriptif').set('text', '');
            //Inject the new DOM elements into the results div.
            $('descriptif').adopt(html);
            // Initialisation formulaire ajout article
            init_form_article();
        },
        onFailure: function() {
            $('descriptif').set('text', 'The request failed.');
        }
    });
    
    // on scanne tous les liens dont l'id commence par "link_art_"
    for (var i=0; i<document.links.length; i++) {
        if (document.links[i].id.substr(0, 9) == "link_art_") {
            $(document.links[i].id).addEvent('click', function(e) {
                e = new Event(e).stop();
                setRowBackground(this.id.substr(9), "row_art_");
                req.send({url:this.href});
            });
        }
    }
}

function init_form_article() {
    var req_addArt = new Request.HTML({ url:'client-ajoutArticle.html', 
        onSuccess: function(html) {
            if ($('detail_panier')!=null) {
                
                $('detail_panier').set('text', '');
                $('detail_panier').adopt(html);
                init_link_detail();
            }
        },
        onFailure: function() {
            alert('The request failed.');
        }
    });
    
    if ($('frm_ajout_article')!=null) {
        $('frm_ajout_article').addEvent('submit', function(e) {
            e = new Event(e).stop();
            req_addArt.post($('frm_ajout_article'));
        });
    }
}

/**
 * Initialisation recherche article 
 */
function init_search() {
    $('form_recherche').addEvent('submit', function(e) {
        e = new Event(e).stop();
        $("spinner").set('html', '<img src="images/spinner-petit.gif" style="vertical-align:middle" border="0" />');
        window_search(this.action + '?search=' + $('search').value);
    });
}

function setRowBackground(numligne, categorie) {
    //alert($('table_chapitre').tBodies[0].rows.length);
    var ligne = categorie+numligne;
    var rowid = 0;
    var cols = $('table_chapitre').tBodies[0].rows[0].cells.length;
    for (j=0; j<$('table_chapitre').tBodies[0].rows.length; j++) {
        for (i=0; i<cols; i++) {
            $('table_chapitre').tBodies[0].rows[j].cells[i].erase('style');
            if ($('table_chapitre').tBodies[0].rows[j].id==ligne) {
                rowid = j;
            }
        }
    }
    
    for (i=0; i<cols; i++) {
        //$('table_chapitre').tBodies[0].rows[rowid].cells[i].tween('background-color', '#C6D880');
        $('table_chapitre').tBodies[0].rows[rowid].cells[i].tween('background-color', '#999999');
    }
}

/**
 * initialisations du formulaire client
 */
function init_form() {
    //bloc_clients
    var req = new Request.HTML({ 
        url: 'client-login.html', 
        onSuccess: function(html) {
            $('form_login').set('text', '');
            $('form_login').adopt(html);
            init_link_client();
        },
        onFailure: function() {
            $('form_login').set('text', 'The request failed.');
        }
    });
    
    $('form_login').addEvent('submit', function(e) {
        e = new Event(e).stop();
        if ($('form_login').pwd != null) {
            $('form_login').pwd.value = hex_md5($('form_login').pwd.value);
        }
        req.post($('form_login'));
    });
}

function init_link_client() {
    var req = new Request.HTML({ 
        onSuccess: function(html) {
            $('bloc_principal').set('text', '');
            $('bloc_principal').adopt(html);
            init_autocomplete();
            init_form_add();
            init_link_detail();
            init_form_detail();
            init_link_promo();
        },
        onFailure: function() {
            alert('The request failed.');
        }
    });
    
    // on scanne tous les liens dont l'id commence par "link_cli_"
    for (var i=0; i<document.links.length; i++) {
        if (document.links[i].id.substr(0, 9) == "link_cli_") {
            $(document.links[i].id).addEvent('click', function(e) {
                e = new Event(e).stop();
                req.send({url:this.href});
            });
        }
    }
}

function init_autocomplete() {
    if ($('fe-code')!=null) {
        new Autocompleter.Request.JSON('fe-code', 'article-code.html', {
            'postVar': 'search',
            'minLength': 4, // We wait for at least four character
            'overflow': true 
        });
        new vlaDatePicker('calendrier');
    }
    if ($('date_debut')!=null) {
        new vlaDatePicker('date_debut', {prefillDate: false });
        new vlaDatePicker('date_fin', {prefillDate: false });
    }
}

function init_form_add() {
    var req = new Request.HTML({ url:'article-add.html', 
        onSuccess: function(html) {
            $('detail_panier').set('text', '');
            $('detail_panier').adopt(html);
            // init lien liste panier et formulaire panier
            init_link_detail();
            $("panier_spinner").set('text','');
        },
        onFailure: function() {
            //$('message').set('text', 'The request failed.');
            alert('The request failed.');
        },
        onRequest: function() {
            $("panier_spinner").set('html', '<img src="images/spinner-petit-blanc.gif" style="vertical-align:middle" border="0" />');
        }
    });
    
    var req_delall = new Request.HTML({ 
        onSuccess: function(html) {
            $('detail_panier').set('text', '');
            $('detail_panier').adopt(html);
        },
        onFailure: function() {
            alert('The request failed.');
        }
    });
    
    var req_depot = new Request.HTML({ 
        onSuccess: function(html) {
            $('detail_panier').set('text', '');
            $('detail_panier').adopt(html);
            init_link_detail();
        },
        onFailure: function() {
            alert('The request failed.');
        }
    });
    
    if ($('frm_add_article')!=null) {
        $('frm_add_article').addEvent('submit', function(e) {
            e = new Event(e).stop();
            req.post($('frm_add_article'));
        });
    }
    
    if ($('tab_l')!=null) {    
        $('tab_l').addEvent('click', function(e) {
            //e = new Event(e).stop();
            $('div_tab_r').setStyle('display', 'none');
            $('div_tab_l').setStyle('display', 'block');
            $('tabs').removeClass('tab_actif_r');
            $('tabs').addClass('tab_actif_l');
        });
        
        $('tab_r').addEvent('click', function(e) {
            //e = new Event(e).stop();
            $('div_tab_l').setStyle('display', 'none');
            $('div_tab_r').setStyle('display', 'block');
            $('tabs').removeClass('tab_actif_l');
            $('tabs').addClass('tab_actif_r');
        });
    }
    
    if ($('tab_d1')!=null) {    
        $('tab_d1').addEvent('click', function(e) {
            //e = new Event(e).stop();
            $('div_tab_d2').setStyle('display', 'none');
            $('div_tab_d3').setStyle('display', 'none');
            $('div_tab_d4').setStyle('display', 'none');
            $('div_tab_d1').setStyle('display', 'block');
            $('tabs').removeClass('tab_d2');
            $('tabs').removeClass('tab_d3');
            $('tabs').removeClass('tab_d4');
            $('tabs').addClass('tab_d1');
        });
        
        $('tab_d2').addEvent('click', function(e) {
            //e = new Event(e).stop();
            $('div_tab_d1').setStyle('display', 'none');
            $('div_tab_d3').setStyle('display', 'none');
            $('div_tab_d4').setStyle('display', 'none');
            $('div_tab_d2').setStyle('display', 'block');
            $('tabs').removeClass('tab_d1');
            $('tabs').removeClass('tab_d3');
            $('tabs').removeClass('tab_d4');
            $('tabs').addClass('tab_d2');
        });

        $('tab_d3').addEvent('click', function(e) {
            //e = new Event(e).stop();
            $('div_tab_d1').setStyle('display', 'none');
            $('div_tab_d2').setStyle('display', 'none');
            $('div_tab_d4').setStyle('display', 'none');
            $('div_tab_d3').setStyle('display', 'block');
            $('tabs').removeClass('tab_d1');
            $('tabs').removeClass('tab_d2');
            $('tabs').removeClass('tab_d4');
            $('tabs').addClass('tab_d3');
        });

        $('tab_d4').addEvent('click', function(e) {
            //e = new Event(e).stop();
            $('div_tab_d1').setStyle('display', 'none');
            $('div_tab_d2').setStyle('display', 'none');
            $('div_tab_d3').setStyle('display', 'none');
            $('div_tab_d4').setStyle('display', 'block');
            $('tabs').removeClass('tab_d1');
            $('tabs').removeClass('tab_d2');
            $('tabs').removeClass('tab_d3');
            $('tabs').addClass('tab_d4');
        });
        
    }
    
    if ($('delete-panier')!=null) {
        $('delete-panier').addEvent('click', function(e) {
            e = new Event(e).stop();
            if (confirm('Supprimer tous les articles de la commande ?')) {
                req_delall.send({url: 'client-delPanier.html'});
            }
        });
    }
    
    if ($('depot')!=null) {
        $('depot').addEvent('change', function(e) {
            e = new Event(e).stop();
            req_depot.send({url: 'article-depot.html?depot=' + $('depot').value});
        });
    }

    if ($('searchFac')!=null) {
        var reqFac = new Request.HTML({
            url:'client-listefac.html', 
            onSuccess: function(html) {
                $('liste_fac').set('text', '');
                $('liste_fac').adopt(html);
                
                $("liste_spinner").set('text','');
            },
            onFailure: function() {
                alert('The request failed.');
                $("liste_spinner").set('text','');
            },
            onRequest: function() {
                $("liste_spinner").set('html', '<img src="images/spinner-petit-blanc.gif" style="vertical-align:middle" border="0" />');
            }
        });
        $('searchFac').addEvent('submit', function(e) {
            e = new Event(e).stop();
            reqFac.post($('searchFac'));
        });
    }
    
    if ($('modPwd')!=null) {
        var reqCpt = new Request.HTML({
            url:'client-chgPwd.html', 
            onSuccess: function(html) {
                //$('liste_fac').set('text', '');
                //$('liste_fac').adopt(html);
                
                //$("liste_spinner").set('text','');
            },
            onFailure: function() {
                alert('The request failed.');
                //$("liste_spinner").set('text','');
            },
            onRequest: function() {
                //$("liste_spinner").set('html', '<img src="images/spinner-petit-blanc.gif" style="vertical-align:middle" border="0" />');
            }
        });
        $('modPwd').addEvent('submit', function(e) {
            e = new Event(e).stop();
            if ($('modPwd').passwd2.value.length>=6) {
                attr = "passwd=" + hex_md5($('modPwd').passwd.value) + "&passwd2=" + hex_md5($('modPwd').passwd2.value) + "&passwd3=" + hex_md5($('modPwd').passwd3.value);
                reqCpt.send(attr);
            } else {
                alert('Le nombre de caractères minimum requis pour le nouveau mot de passe est de 6.');
            }
        });
    }
}

function init_link_promo() {
    var req_prom = new Request.HTML({ 
        onSuccess: function(html) {
            $('bloc_principal').set('text', '');
            $('bloc_principal').adopt(html);
        },
        onFailure: function() {
            alert('The request failed.');
        }
    });

    // on scanne tous les liens dont l'id commence par "link_pro_"
    for (var i=0; i<document.links.length; i++) {
        if (document.links[i].id.substr(0, 11) == "link_promo_") {
            $(document.links[i].id).addEvent('click', function(e) {
                e = new Event(e).stop();
                req_prom.send({url:this.href});
            });
        }
    }
}

function init_link_detail() {
    var req_del = new Request.HTML({ 
        onSuccess: function(html) {
            $('detail_panier').set('text', '');
            $('detail_panier').adopt(html);
            // init lien liste panier
            init_link_detail();
        },
        onFailure: function() {
            alert('The request failed.');
        }
    });
    
    // on scanne tous les liens dont l'id commence par "link_del_"
    for (var i=0; i<document.links.length; i++) {
        if (document.links[i].id.substr(0, 9) == "link_del_") {
            $(document.links[i].id).addEvent('click', function(e) {
                e = new Event(e).stop();
                if (confirm('Supprimer l\'article du panier ?')) {
                    req_del.send({url:this.href});
                }
            });
        }
        if (document.links[i].id.substr(0, 11) == "link_dispo_") {
            $(document.links[i].id).addEvent('click', function(e) {
                e = new Event(e).stop();
                window_dispo(this.href);
            });
        }
        if (document.links[i].id.substr(0, 9) == "link_det_") {
            $(document.links[i].id).addEvent('click', function(e) {
                e = new Event(e).stop();   
                window_det(this.href);
            });
        }
    }
}

function init_form_detail() {
    var req_form = new Request.HTML({ 
        url: 'client-savePanier.html', 
        onSuccess: function(html) {
            $('detail_panier').set('text', '');
            $('detail_panier').adopt(html);
            // init lien liste panier
            init_link_detail();
        },
        onFailure: function() {
            alert('The request failed.');
        }
    });
    
    if ($('frm_panier')!=null) {
        $('frm_panier').addEvent('submit', function(e) {
            //$('action').value = 'imprimer';
            if ($('action').value!='imprimer') {
                if (confirm("Valider votre commande ?")) {
                    e = new Event(e).stop();
                    req_form.post($('frm_panier'));
                } else {
                    return false;
                }
            } else {
                return true;
            }
        });
    }
    
    if ($('sauver')!=null) {
        $('sauver').addEvent('click', function(e) {
            $('action').value='sauver';
            return true;
        });
    }
    
    if ($('imprimer')!=null) {
        $('imprimer').addEvent('click', function(e) {
            $('action').value='imprimer';
            return true;
        });
    }
}
