var Webshop = function(){
	
    return {
    	
		init : function() {
    		this.getCartCounter();
		},
		
		checkout : function() {
            if (parseFloat($('totalprice').value) >= 1) {
    			if ($('conditions_generales').checked) {
    				location.href='/webshop/checkout';
    			} else {
    				alert('Je déclare avoir pris connaissance des conditions générales de vente?');
    			}
            } else {
                alert('Minimum order price: 1 euro');
            }
		},
		
		conditions : function() {
			if ($('conditions').checked) {
				return true;
			} else {
				alert('Je déclare avoir pris connaissance des conditions d\'inscription?');
				return false;
			}
		},
		
		equalShipping : function(obj) {
			if (obj.checked == true) {
				$("equelShipping").checked = 'checked';
				var country = $("registration_billing_country").value;
				var c_country = $("registration_country").options;
				for (i = 0; i < c_country.length; i++) {
					if (c_country[i].value == country) {
						c_country[i].selected = "selected";
					}
				}
				$("registration_street").value = $("registration_billing_street").value;
				$("registration_street2").value = $("registration_billing_street2").value;
				$("registration_city").value = $("registration_billing_city").value;
				$("registration_postalcode").value = $("registration_billing_postalcode").value;
			} else {
				$("registration_street").value = "";
				$("registration_street2").value = "";
				$("registration_city").value = "";
				$("registration_postalcode").value = "";
			}
		},
		
		changeType : function(albumId, type) {
			var params = 'type='+type;
			this.getalbuminfo(albumId, params);
		},
		
		getalbuminfo : function(albumId, params) {
			new Ajax.Request('/webshop/getalbuminfo/'+albumId, {
				method: 'post',
				parameters: params,
				onComplete: function(request) {
					$("webshop").innerHTML = request.responseText;
				}
			});
		},
		
		playTrack : function(mp3file, detail) {
			var player = '<div class="player"><object type="application/x-shockwave-flash" data="http://flash-mp3-player.net/medias/player_mp3_mini.swf" width="200" height="20">'+
			    		 '<param name="movie" value="http://flash-mp3-player.net/medias/player_mp3_mini.swf" />'+
			    		 '<param name="bgcolor" value="#000000" />'+
			    		 '<param name="FlashVars" value="mp3=http%3A//admin.fondamenta.fr/albums/tracks/'+mp3file+'" />'+
			    		 '</object></div><div class="detail"> <= '+detail+'</div><div style="clear: both;"></div>';
			$("webshop_player").innerHTML = player;
		},
		
		selectAlbum : function(albumid) {
			$('search_form').action = '/webshop/'+albumid;
			$('search_form').submit();
		},
		
		selectTracks : function(obj, musicid) {
			var tracks = document.getElementsByClassName('track_'+musicid);
			for (var i = 0; i < tracks.length; i++) {
				if (obj.checked == true) {
					tracks[i].checked = 'checked';
				} else {
					tracks[i].checked = '';
				}
			}
			this.calculateCounters();
		},
		
		calculateCounters : function() {
			var tracks = document.getElementsByName('track[]');
			var tracks_string = "";
			for (var i = 0; i < tracks.length; i++) {
				if (tracks[i].checked == true) {
					tracks_string += tracks[i].value+',';
				}
			}
			
			new Ajax.Request('/webshop/gettotaltimeandprice/', {
				method: 'post',
				parameters: {
					tracks : tracks_string
				},
				onComplete: function(request) {
					var resultd = request.responseText.split('_');
					var time    = resultd[1];
					var price   = resultd[0];
					$('totalplayingtime').innerHTML = time;
					$('totalprice').innerHTML = price;
				}
			});
		},
		
		cleanCart : function () {
			new Ajax.Request('/webshop/cleancart/', {
				method: 'post',
				onComplete: function(request) {
				}
			});
		},
		
		getCartCounter : function() {
			new Ajax.Request('/webshop/getcartcounter/', {
				method: 'post',
				onComplete: function(request) {
					if (request.responseText == 0) {
						$('shopping_cart').innerHTML = '0 Article(s) dans le Caddie';
					} else {
						$('shopping_cart').innerHTML = '<strong>'+request.responseText+'</strong> Article(s) dans le Caddie';
					}
				}
			});
		},
		
		addTracksToCart : function() {
			var trackfilemode = document.getElementsByName('trackfilemode');
			var checked		  = null;
			for (var i = 0; i < trackfilemode.length; i++) {
				if (trackfilemode[i].checked == true) {
					checked = trackfilemode[i].value;
				}
			}
			if (checked != null) {
				var tracks = document.getElementsByName('track[]');
				var tracks_string = "";
				var track_counter = 0;
				for (var i = 0; i < tracks.length; i++) {
					if (tracks[i].checked == true) {
						track_counter++;
						tracks_string += tracks[i].value+',';
					}
				}
				if (tracks_string != '') {
					new Ajax.Request('/webshop/addtrackstocart/', {
						method: 'post',
						parameters: {
							filemode : checked,
							tracks : tracks_string
						},
						onComplete: function(request) {
							var resultd = request.responseText.split('_');
							var added   = resultd[0];
							var already = resultd[1];
							
							if (already > 0) {
								alert(added+' item(s) added and '+already+' item(s) already into your Shopping Cart!');
								Webshop.getCartCounter();
							} else {
								alert(added+' Article(s) dans le Caddie!');
								Webshop.getCartCounter();
							}
						}
					});
				} else {
					alert('Please select one or more Tracks!');
				}
			}
		},
		
		addAlbumToCart : function(albumid) {
			var albumfilemode = document.getElementsByName('albumfilemode');
			var checked		  = null;
			for (var i = 0; i < albumfilemode.length; i++) {
				if (albumfilemode[i].checked == true) {
					checked = albumfilemode[i].value;
				}
			}
			if (checked != null) {
				new Ajax.Request('/webshop/addalbumtocart/', {
					method: 'post',
					parameters: {
						filemode : checked,
						albumid  : albumid
					},
					onComplete: function(request) {
						if (request.responseText == 'successful') {
							alert('Votre article a été ajouté dans votre caddie!');
							Webshop.getCartCounter();
						} else if (request.responseText == 'already') {
							alert('Item is already in your Shopping Cart!');
						}
					}
				});
			}
		}

    };
    
}();

Event.observe(window, 'load', function() {
	Webshop.init();
});
