Valraiso.namespace('LaGodille.location');
LaGodille.location =
{
	mandatorySet : false,
		
	trim : function (chaine)
	{
		return chaine.replace(/^\s+/g,'').replace(/\s+$/g,'');
	},
	
    showPrice : function (materielid)
    {
        var chaussures = $("#avecChaussures" + materielid).attr ("checked");
        var casque     = $("#avecCasque"     + materielid).attr ("checked");
        
        $.ajax
        ({
            type:'POST',
            url:urlPriceAjax,
            data: "materielid=" + materielid + "&chaussure=" + chaussures + "&casque=" + casque,
            success:function (data)
                {
                    $("#prixMateriel" + materielid).html (data);
                }
        });
        
        return false;
    },
    
    ajoutPanier : function (materielid)
    {
        var chaussures = $("#avecChaussures" + materielid).attr ("checked");
        var casque     = $("#avecCasque"     + materielid).attr ("checked");
        
        $.ajax
        ({
            type:'POST',
            url:urlFormAjax,
            data: "materielid=" + materielid + "&ispack=" + chaussures + "&casque=" + casque,
            success:function (data)
            {
        		LaGodille.location.appendDivsFormulaire();
        		
                $("#formulaireAjoutPanier").html (data);
                $("#formulaireAjoutPanier").dialog
                ({
                    bgiframe:true,
                    modal:true,
                    autoOpen:true,
                    width:550,
                    close: function (event, ui)
                    {
                		$("#formulaireAjoutPanier").remove();
                    }

                });
            },
            error:function()
            {
            	$("#erreurAjoutPanier").dialog ("open");
            }
        });
        
        return false;
    },
    
    blurFieldCheck : function (fieldid)
    {
    	if (LaGodille.location.mandatorySet)
    	{
    		LaGodille.location.checkField (fieldid);
    	}
	},
    
    checkField : function (fieldid)
    {
    	var field = $('#' + fieldid);
    	var value = field.attr ('value');
    	
		if (LaGodille.location.trim (value) == '')
		{
			field.removeClass ('input-border');
			field.addClass    ('ui-state-error');
			$('#check-error').html (mandatoryError);
			field.attr ('value', '');
			
			LaGodille.location.mandatorySet = true;
			
			return false;
		}
		else
		{
			field.removeClass ('ui-state-error');
			field.addClass    ('input-border');
		}
		
		return true;
	},
    
    checkRadio : function (radioName, classLabel, extra)
    {
    	var field      = $(':input[type="radio"][checked][name="' + radioName + '"]');
    	var extraField = $('#' + extra).val();
    	var length     = field.length;
    	
		if (length == 0 && extraField != 'true')
		{
			$('.' + classLabel).addClass ('ui-state-error');
			$('#check-error').html (mandatoryError);
			field.attr ('value', '');
			
			return false;
		}
		else
		{
			field.removeClass ('ui-state-error');
			field.addClass    ('input-border');
		}
		
		return true;
	},

    
    valideAjoutPanier : function()
    {
    	var noerror = true;
    	
    	noerror = LaGodille.location.checkField ('prenom');
    	noerror = LaGodille.location.checkField ('poids') && noerror;
    	noerror = LaGodille.location.checkField ('taille') && noerror;
    	noerror = LaGodille.location.checkField ('pointure') && noerror;
    	
    	if (noerror)
    	{
    		$('.button-form-utilisateur').attr ('onclick', 'return false;');
    		
    		var materielid   = $('#materiel').attr ('value');
    		var isPack       = $('#isPack').attr ('value');
    		var isEnfant     = $('#isEnfant').attr ('value');
    		var nbjours      = $('#qteInput').attr ('value');
    		var prenom       = $('#prenom').attr ('value');
    		var poids        = $('#poids').attr ('value');
    		var poidsUnit    = $('#poids_unit').attr ('value');
    		var taille       = $('#taille').attr ('value');
    		var tailleUnit   = $('#taille_unit').attr ('value');
    		var pointure     = $('#pointure').attr ('value');
    		var pointureUnit = $('#pointure_unit').attr ('value');
    		var garanti      = $('#casseCheck').attr ("checked");
    		var casque       = $('#casqueCheck').attr ("checked");
    		var tailleCasque = $('#taillecasque').attr ('value');
    		var comment      = $('#comment').attr ('value');
    		var params       = '';

    		params += 'materielid=';
    		params += materielid;
    		params += '&isPack=';
    		params += isPack;
    		params += '&isEnfant=';
    		params += isEnfant;
    		params += '&nbjours=';
    		params += nbjours;
    		params += '&prenom=';
    		params += prenom;
    		params += '&poids=';
    		params += poids;
    		params += '&poidsUnit=';
    		params += poidsUnit;
    		params += '&taille=';
    		params += taille;
    		params += '&tailleUnit=';
    		params += tailleUnit;
    		params += '&pointure=';
    		params += pointure;
    		params += '&pointureUnit=';
    		params += pointureUnit;
    		params += '&garanti=';
    		params += garanti;
    		params += '&casque=';
    		params += casque;
    		params += '&tailleCasque=';
    		params += tailleCasque;
    		params += '&comment=';
    		params += comment;
    		
    		$.ajax
            ({
                type:'POST',
                url: urlAddAjax,
                data: params,
                success:function (data)
                {
                    $("#detailpanier").html (data);
                    
                    LaGodille.location.fermerFormulaire();
                },
                error:function (data)
                {
                	$("#erreurAjoutPanier").dialog ("open");
                }
            });
    	}
    },

    
    valideAjoutClothPanier : function()
    {
    	var noerror = true;
    	
    	noerror = LaGodille.location.checkField ('prenom');
    	noerror = LaGodille.location.checkField ('taillevetement') && noerror;
    	
    	if (noerror)
    	{
    		var materielid     = $('#materiel').attr ('value');
    		var nbjours        = $('#qteInput').attr ('value');
    		var prenom         = $('#prenom').attr ('value');
    		var taillevetement = $('#taillevetement').attr ('value');
    		var lavageCheck    = $('#lavageCheck').attr ('checked');
    		var comment        = $('#comment').attr ('value');
    		var params         = '';

    		params += 'materielid=';
    		params += materielid;
    		params += '&nbjours=';
    		params += nbjours;
    		params += '&prenom=';
    		params += prenom;
    		params += '&taillevetement=';
    		params += taillevetement;
    		params += '&lavage=';
    		params += lavageCheck;
    		params += '&comment=';
    		params += comment;
    		
    		$.ajax
            ({
                type:'POST',
                url: urlAddAjax,
                data: params,
                success:function (data)
                {
                    $("#detailpanier").html (data);
                    
                    LaGodille.location.fermerFormulaire();
                },
                error:function()
                {
                	$("#erreurAjoutPanier").dialog ("open");
                }
            });
    	}
    },
    
    valideCodePromo : function()
    {
    	var codePromo = $('#codepromo').attr ('value');
    	
    	$.ajax
        ({
            type:'POST',
            url: urlPromoAjax,
            data: "codepromo=" + codePromo,
            success:function (data)
            {
                $("#detailpanier").html (data);
            },
            error:function()
            {
            	$("#erreurAjoutPanier").dialog ("open");
            }
        });
    },
    
    fermerFormulaire : function()
    {
    	$("#formulaireAjoutPanier").dialog ("close");
    },
    
    add : function()
    {
    	var input = $("#qteInput");
        var div   = $("#qteDiv");
        var value = input.attr ('value');
        
        if (value < 14)
        {
            value++;
            
            div.html   (value);
            input.attr ('value', value);

            LaGodille.location.changeQuantity (value);
        }
        
        return false;
    },
    
    substract : function()
    {
    	var input = $("#qteInput");
        var div   = $("#qteDiv");
        var value = input.attr ('value');
        
        if (value > 1)
        {
            value--;
            
            div.html   (value);
            input.attr ('value', value);
            
            LaGodille.location.changeQuantity (value);
        }
        
        return false;
    },
    
    addClothes : function()
    {
    	var input = $("#qteInput");
        var div   = $("#qteDiv");
        var value = input.attr ('value');
        
        if (value < 14)
        {
            value++;
            
            div.html   (value);
            input.attr ('value', value);

            LaGodille.location.changeQuantityClothes (value);
        }
        
        return false;
    },
    
    substractClothes : function()
    {
    	var input = $("#qteInput");
        var div   = $("#qteDiv");
        var value = input.attr ('value');
        
        if (value > 1)
        {
            value--;
            
            div.html   (value);
            input.attr ('value', value);
            
            LaGodille.location.changeQuantityClothes (value);
        }
        
        return false;
    },
    
    changeQuantity : function (value)
    {
    	var isPack     = $('#isPack').attr ('value');
    	var materielid = $('#materiel').attr ('value'); 
    	
    	$.ajax
        ({
            type:'POST',
            url:urlQteAjax,
            data: "materielid=" + materielid + "&ispack=" + isPack + "&quantite=" + value,
            success:function (data)
            {
                $("#price").html (data);
                LaGodille.location.checkCasque();
                LaGodille.location.checkCasse();
            },
            error:function()
            {
            	$("#erreurAjoutPanier").dialog ("open");
            }
        });
    },
    
    changeQuantityClothes : function (value)
    {
    	var materielid = $('#materiel').attr ('value'); 
    	
    	$.ajax
        ({
            type:'POST',
            url:urlQteAjax,
            data: "materielid=" + materielid + "&ispack=false&quantite=" + value,
            success:function (data)
            {
                $("#price").html (data);
                
                LaGodille.location.getTotal();
            },
            error:function()
            {
            	$("#erreurAjoutPanier").dialog ("open");
            }
        });
    },
    
    checkCasque : function()
    {
    	var input       = $("#casqueCheck");
    	var divCasque   = $("#prixCasque");
    	var hidden      = $("#prixCasqueHidden");
        var casque      = input.attr ("checked");
        var value       = '&nbsp;';
        var valueHidden = 0;
        var select      = $("#ligneCasque");
        var categorie   = $("#categorieid").val();
        
        if (casque)
        {
        	var qteInput = $("#qteInput");
            var qte      = qteInput.attr ('value');
            
            if (select.hasClass ('hidden'))
            {
            	select.removeClass ('hidden')
            }
            
        	$.ajax
            ({
                type:'POST',
                async:false,
                url:urlPrixCasqueAjax,
                data: "quantite=" + qte + "&categorie=" + categorie,
                success:function (data)
                {
            		valueHidden = parseInt (data);
                }
            });
        	
        	value = LaGodille.location.formatPrix (valueHidden);
        }
        else
        {
        	if (!select.hasClass ('hidden'))
            {
            	select.addClass ('hidden')
            }
        }
        
        hidden.attr   ('value', valueHidden);
        divCasque.html (value);
        LaGodille.location.getTotal();
    },
    
    checkLavage : function()
    {
        var lavage = $("#lavageCheck").attr ("checked");
        var input  = $("#prixLavageHidden");
        var value  = $("#prixLavage");
        
        if (lavage)
        {
        	input.attr ('value', 10);
        	value.html ('10,00&euro;');
        }
        else
        {
        	input.attr ('value', 0);
        	value.html ('&nbsp;');
		}

        LaGodille.location.getTotal();
    },
    
    checkCasse : function()
    {
    	var input       = $("#casseCheck");
    	var divCasse    = $("#prixCasse");
    	var hidden      = $("#prixGarantitHidden");
        var casse       = input.attr ("checked");
        var value       = '&nbsp;';
        var valueHidden = 0;
        
        if (casse)
        {
        	var qteInput     = $("#qteInput");
        	var enfantInput  = $("#isEnfant");
            var qte          = qteInput.attr ('value');
            var isEnfant     = (enfantInput.attr ('value') == 'true');
            var prixUnitaire = (isEnfant ? 1 : 1.5);
            
            valueHidden = prixUnitaire * qte; 
        	value       = LaGodille.location.formatPrix (valueHidden);
        }

        hidden.attr   ('value', valueHidden);
        divCasse.html (value);
        LaGodille.location.getTotal();
    },
    
    getTotal : function()
    {
    	var divTotal = $("#total");
    	var total    = 0;
    	
    	$(".hiddenTotal").each
    	(
			function()
            {
				total += parseFloat ($(this).attr ('value'));
            }
    	)
    	
    	total = LaGodille.location.formatPrix (total);
    	divTotal.html (total);
    },
    
    formatPrix : function (prix)
    {
    	var strPrix = new String (prix);
    	
    	if (strPrix.indexOf ('.') == -1)
    	{
    		strPrix += ",0";
    	}
    	else
    	{
    		strPrix = strPrix.replace ('.', ',');
    	}
    	
    	strPrix += "0 &euro;";
		
		return strPrix;
    },
    
    appendDivsFormulaire : function ()
    {
    	$("#conteneurformulaireGlobal").html   ('');
        $("#conteneurformulaireGlobal").append ('<div id="formulaireAjoutPanier"></div>');
    },
    
    validePanier : function()
    {
    	if (panierEmpty)
    	{
    		$("#erreurPanierVide").dialog ("open");
    	}
    	
    	return !panierEmpty;
    },
    
    valideInformations : function()
    {
		var noerror = true;
    	
    	noerror = LaGodille.location.checkField ('nom');
    	noerror = LaGodille.location.checkField ('prenom')     && noerror;
    	noerror = LaGodille.location.checkField ('adresse1')   && noerror;
    	noerror = LaGodille.location.checkField ('codepostal') && noerror;
    	noerror = LaGodille.location.checkField ('ville')      && noerror;
    	noerror = LaGodille.location.checkField ('pays')       && noerror;
    	noerror = LaGodille.location.checkField ('telephone')  && noerror;
    	noerror = LaGodille.location.checkField ('email')      && noerror;
    	noerror = LaGodille.location.checkField ('residence')  && noerror;
    	noerror = LaGodille.location.checkRadio ('typeLivraison', 'livraison', 'noLivraison') && noerror;
    	
    	if (noerror)
    	{
    		var field = $("#email");
    		
    		if (Valraiso.util.checkEmail (field.attr ("value")))
    		{
    			$("#coordonneesform").submit();
    		}
    		else
    		{
    			field.removeClass ('input-border');
    			field.addClass    ('ui-state-error');
    			$('#check-error').html (emailFormatError);
    		}
    	}
    },
    
    videPromo : function()
    {
    	if (videPromo)
    	{
    		$('#codepromofield').attr ("value", "");
    		videPromo = false;
    	}
    },
    
    setDelivery : function (value)
    {
    	var action;
    	
    	if (value == 1)
    	{
    		action = "add";
    	}
    	else
    	{
    		action = "remove";
    	}
    	
    	$.ajax
        ({
            type:'POST',
            url:urlDeliveryAjax,
            data: "action=" + action
        });
    }
};