window.addEvent('domready',add_events);

function add_events()
{
    hideUnselectedShippingAddress();
    // ajout des évènement du formulaires
    
    // lien d'ajouts d'item
    var link_more = $$('.more_quantity');
    link_more.each( function(elmt){
        elmt.addEvent('click',changeQuantity.bindWithEvent(elmt,'more'))
    } );

    // lien de suppression d'item
    var link_less = $$('.less_quantity');
    link_less.each( function(elmt){
        elmt.addEvent('click',changeQuantity.bindWithEvent(elmt,'less'))
    } );
    
    var link_remove = $$('.remove_item');
    link_remove.each( function(elmt) {
        elmt.addEvent('click', changeQuantity.bindWithEvent(elmt, 'remove'));
    });
    
    // inputs de l'address de facturation
    var addr_input = $$('.addr_billing_input');
    if(addr_input.length>0)
    {
        addr_input.each( function(elmt){
            elmt.disabled=true;
        } );
    }

    // inputs de l'address de livraison : la poste
    var addr_input = $$('.addr_poste_input');
    if(addr_input.length>0)
    {
        addr_input.each( function(elmt){
            elmt.disabled=true;
        } );
    }
    
    // inputs de l'address de livraison : mondial_relay
    var addr_input = $$('.addr_mondial_relay_input');
    if(addr_input.length>0)
    {
        addr_input.each( function(elmt){
            elmt.disabled=true;
        } );
    }

    // mode édition des inputs des addresses
    var addr_modif = $$('.modif_addr_on');
    addr_modif.each( function(elmt){
        //elmt.type="button";
        elmt.value="Modifier";
        elmt.className="modif_addr_off";
    } );
    addr_modif.each( function(elmt){
        elmt.addEvent('click',switchInputStatus.bindWithEvent(elmt))
    } );
    
    // erase submit comportment, add_events on callback and enable addresses inputs before submitting
    var args = {
        'container': 'main' ,
        'callback': callAfterSubmit,
        'callbefore': callBeforeSubmit
    };
    $('cart_form').addEvent('submit', ajax_submit.bindWithEvent($('cart_form'), args));
    if ($('remove_promotional_offer_')) {
        $('remove_promotional_offer_').addEvent('click', removePromotionalOffer);
    }
    
    if($('cart_valid'))
        $('cart_valid').addEvent('click', addConfirmParameter);

   // Adding tooltip info
		$$('.infoBulle').each(
		  function(elem){
		  	new Tips($(elem), {
			    initialize:function(){
			        this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
			    },
			    onShow: function(toolTip) {
			        this.fx.start(1);
			    },
			    onHide: function(toolTip) {
			        this.fx.start(0);
			    }
			});
		  }
		);

}

function removePromotionalOffer()
{
    rpo = new Ajax("/ajax/cart/view", {method: 'post',  data: "remove_promotional_offer=1"});
    rpo.addEvent('onComplete', removePromotionalOfferOnComplete);
    rpo.request();
}

function removePromotionalOfferOnComplete(html) {
    var myDiv = new Element('div');
    myDiv.setHTML(html);
    $('cart').replaceWith(myDiv);
    add_events();
}

function callBeforeSubmit()
{
    enableAllInputs();
    showLoader();
}

function callAfterSubmit()
{
    if($('cart_form'))
        add_events();
    hideLoader();
}

function addConfirmParameter()
{
    $('confirm_param').value = "true";
    $('cart_form').removeEvents('submit');
    //enableAllInputs();
}

function hideUnselectedShippingAddress()
{
    var selected_methods = new Array('mondial_relay','poste');
    var delivery_methods_inputs = $$('.delivery_methods');
    delivery_methods_inputs.each( function(elmt){
        if(elmt.checked)
            selected_methods.remove(elmt.value);
    } );
    selected_methods.each( function(elmt){
        if($(elmt+'_address')){
            $(elmt+'_address').style.display="none";
        }
    } );
}

function enableAllInputs()
{
    var addr_input = $$('.addr_billing_input');
    addr_input.each( function(elmt){
        elmt.disabled=false;
    } );
    
    var addr_input = $$('.addr_poste_input');
    addr_input.each( function(elmt){
        elmt.disabled=false;
    } );
    
    var addr_input = $$('.addr_mondial_relay_input');
    addr_input.each( function(elmt){
        elmt.disabled=false;
    } );
}

function setDeliveryMethod(shop_id,method)
{
    showLoader();
    var myXhr = new XHR({
        method: 'post' , 
        onSuccess: updateCart
    });
    querystring = "shop_id="+shop_id+"&delivery_method="+method;
    url = "/ajax/cart/change_delivery_method/";
    
    myXhr.send(url, querystring);
    
    return false;
}

function changeQuantity(e,type)
{
    if (e)
		new Event(e).preventDefault();
	showLoader();
    var myXhr = new XHR({
        method: 'post',
        onSuccess: updateCart
    });
    querystring = "stock_id="+this.id;
    url ='';
    
    if(type=='more')
        url = "/ajax/cart/add_item/";
    else if(type=='less')
        url = "/ajax/cart/remove_item/";
    else if (type == 'remove') {
        url = "/ajax/cart/remove_item/";
        querystring += '&all=1';
    }
    if(url!='')
    {
        myXhr.send(url, querystring);
    }

	return false;
}

function switchInputStatus(event)
{
    if(this.className=="modif_addr_off")
    {
        value = "Enregistrer";
        classname = "modif_addr_on";
        disabled = false;
    }
    else
    {
        value = "Modifier";
        classname = "modif_addr_off";
        disabled = true;
    }
    
    var addr_input = $$('.addr_'+this.id+'_input');
    addr_input.each( function(elmt){
        elmt.style.border = "1px solid #4C4C4C";
        elmt.disabled = disabled;
    } );
    
    this.value = value;
    this.className = classname;

    if(this.className == "modif_addr_on")
    {
        return correctSubmitHandler(event);
    }
}

function updateCart()
{
    container = $('main');
    url = "/ajax/cart/view/";
    var myAjax = new Ajax(url, {
        method: 'get', 
        update: container , 
        evalScripts: true,
        onComplete: callAfterSubmit
    });
    myAjax.request();
    return false;
}

