var productpage = Class.create({
	
	initialize: function(productsheetid) {
		this.ongletCodes = new Hash({ cssclass_tech: 'TE', cssclass_photos: 'PH', cssclass_videos: 'VI', cssclass_opinions: 'OP', cssclass_friend: 'FR'});
		this.elem     = $(productsheetid);
		this.products = this.elem.select('div.cssclass_product_sheet');
		this.videos   = new Hash();
		this.photoZoomed = null;
		this.tellfriendmanager = new productsheetTellFriend(this);
		this.commentmanager = new productsheetComment(this);
		if (this.products!=null) this.registerCallBacks();
	},
	
	registerCallBacks: function() {
		var zdiv, zbrowser, zbuttons, nb_zbuttons, zbutton ;
		var zimage, zvideo, zongletscontainer, zas, nb_zas, za ;
		var zthumbscontainer, zthumbs, nb_zthumbs, zthumb, zselect ;
		var zinputs, zinput, nb_zinputs ;
		var nb_products = this.products.length ;
		for (var i=0 ; i<nb_products; i++) {
			zdiv = this.products[i] ;
			
			// Navigation accessoires
			zbrowser = zdiv.down('div.cssclass_package_accessories');
			if (zbrowser!=null) {
				zbuttons = zbrowser.select('a.cssclass_linenav');
				if (zbuttons!=null) {
					nb_zbuttons = zbuttons.length;
					for (var j=0 ; j<nb_zbuttons; j++) {
						zbutton = zbuttons[j];
						if (zbutton.visible()) zbutton.observe('click', this.onAccessoryEvent.bind(this));
					}
				}
			}
			
			// Fermer la fiche produit
			zimage = zdiv.down('div.cssclass_bigimage');
			if (zimage!=null) zimage.down('a.cssclass_close').observe('click', this.onCloseEvent.bind(this));
			
			// Onglets de la fiche produit
			zongletscontainer = zdiv.down('div.cssclass_ongletscontainer');
			zas = zongletscontainer.select('a.cssclass_onglet');
			nb_zas = zas.length;
			for (var j=0 ; j<nb_zas; j++) {
				za = zas[j];
				za.observe('click', this.onOngletEvent.bind(this));
			}
			
			// Album photos
			zthumbscontainer = zongletscontainer.down('div.cssclass_ongletcontent.cssclass_photos');
			if (zthumbscontainer!=null) {
				zthumbs = zthumbscontainer.select('div.cssclass_thumb');
				nb_zthumbs = zthumbs.length;
				for (var j=0 ; j<nb_zthumbs; j++) {
					zthumb = zthumbs[j];
					zthumb.down('a.cssclass_img').observe('click', this.onPhotoZoomOpen.bind(this));
				}
			}
			
			// Tell a friend
			
			// Bouton alerte ?
			za = zdiv.down('a.cssclass_alert');
			if (za!=null) za.observe('click', this.packageAlert.bind(this));
			
			// Bouton Acheter ?
			za = zdiv.down('a.cssclass_addtocart');
			if (za!=null) za.observe('click', this.packageBuy.bind(this));
			
			// Multi packages ?
			zselect = zdiv.down('select[name=brother_id]');
			if (zselect!=null) {
				zselect.observe('change', this.onBrotherSelectChange.bind(this));
			}
			
			// Déclinaisons "lettres" ?
			zinputs = zdiv.select('input.cssclass_letters');
			nb_zinputs = zinputs.length;
			for (var j=0 ; j<nb_zinputs; j++) {
				zinput = zinputs[j];
				zinput.observe('keyup', this.onLetterInput.bind(this));
			}
			
			// Fermer la vidéo
			zvideo = zdiv.down('div.cssclass_bigvideo');
			if (zvideo!=null) {
				zvideo.down('a.cssclass_close').observe('click', this.onCloseEvent.bind(this));
				if (zvideo.visible()) this.launchVideo(zvideo);
			}
		}
	},
	
	onPhotoZoomOpen: function(event) {
		var element = Event.element(event);
		var zthumb = element.up('div.cssclass_thumb');
		if (zthumb==null) return;
		this.photoZoomOpen(zthumb);
	},
	
	photoZoomOpen: function(zthumb) {
		ecommerce.ajaxmask.show('',false);
		var zclone = zthumb.cloneNode(true);
		zclone.childElements().each(function(el) {el.show();});
		zclone.down('a.cssclass_img').observe('click', this.onPhotoZoomClose.bind(this));
		zclone.down('a.cssclass_close').observe('click', this.onPhotoZoomClose.bind(this));
		var zas = zclone.select('a.cssclass_linenav');
		nb_zas = zas.length;
		for (var k=0 ; k<nb_zas; k++) {
			za = zas[k];
			za.observe('click', this.onPhotoZoomNav.bind(this));
		}
		zclone.down('a.cssclass_img').writeAttribute('title',ecommerce.utils.translate('Cliquez dans la photo pour fermer le zoom#Click the photo to close the zoom'));
		var zmodal = $('cssid_modal');
		zmodal.update(zclone);
		zmodal.setStyle( { left: document.viewport.getWidth()/2-(zmodal.getWidth()/2)+'px', top: document.viewport.getScrollOffsets().top+document.viewport.getHeight()/2-zmodal.getHeight()/2+'px' } );
		zmodal.show();
		var imgheight = zclone.down('a.cssclass_img').down('img').getHeight();
		zclone.select('a.cssclass_linenav').each(function(el) { el.setStyle({ height: imgheight+'px' }); });
		
		this.photoZoomed = zthumb ;
	},
	
	onPhotoZoomClose: function(event) {
		var zmodal = $('cssid_modal');
		zmodal.update('');
		zmodal.hide();
		ecommerce.ajaxmask.hide();
		
		this.photoZoomed = null ;
	},
	
	onPhotoZoomNav: function(event) {
		var element = Event.element(event);
		if (element.tagName.toLowerCase()=='img') { 
			element = element.up('a');
		}
		if (element.tagName.toLowerCase()!='a') { return ; }
		
		var zthumb = element.up('div.cssclass_thumb');
		if (zthumb==null) return;
		
		var znew;
		if (element.hasClassName('cssclass_next')) {
			znew = this.photoZoomed.next('div.cssclass_thumb');
			if (znew==null) znew = this.photoZoomed.up('div.cssclass_photos').down('div.cssclass_thumb.cssclass_first');
		} else {
			znew = this.photoZoomed.previous('div.cssclass_thumb');
			if (znew==null) znew = this.photoZoomed.up('div.cssclass_photos').down('div.cssclass_thumb.cssclass_last');
		}
		this.photoZoomOpen(znew);
	},
	
	onOngletEvent: function(event) {
		var element = Event.element(event);
		if (element.tagName.toLowerCase()=='img') { 
			element = element.up('a');
		}
		if (element.tagName.toLowerCase()!='a') { return ; }
		this.ongletClicked(element.up('div.cssclass_onglet'));
	},
	
	ongletClicked: function(zdiv) {
		zdiv = $(zdiv);
		
		var zcssclass;
		var za = zdiv.down('a');
		
		if (zdiv.hasClassName('cssclass_tech')) {
			zcssclass = 'cssclass_tech';
			
		} else if (zdiv.hasClassName('cssclass_photos')) {
			zcssclass = 'cssclass_photos';
			
		} else if (zdiv.hasClassName('cssclass_videos')) {
			zcssclass = 'cssclass_videos';
			
		} else if (zdiv.hasClassName('cssclass_friend')) {
			zcssclass = 'cssclass_friend';
			
		} else if (zdiv.hasClassName('cssclass_opinions')) {
			zcssclass = 'cssclass_opinions';
			
		} else {
			return ;
			
		}
		
		var zongletscontainer = zdiv.up('div.cssclass_ongletscontainer');
		var zps = zongletscontainer.up('div.cssclass_product_sheet');
		if (!zdiv.hasClassName('cssclass_selected')) {
			var zselected = zdiv.up('div.cssclass_onglets').down('div.cssclass_onglet.cssclass_selected');
			if (zselected!=null) {
				zselected.removeClassName('cssclass_selected');
			}
			zdiv.addClassName('cssclass_selected');
			zongletscontainer.select('div.cssclass_ongletcontent').each(function(el) { el.hide(); });
			
			var ztoshow = zongletscontainer.down('div.cssclass_ongletcontent.'+zcssclass);
			if (ztoshow!=null) {
				ztoshow.show();
				var zpage_bottom   = document.viewport.getScrollOffsets().top+document.viewport.getHeight();
				var ztoshow_bottom = document.viewport.getScrollOffsets().top+ztoshow.viewportOffset().top+ztoshow.getHeight();
				if (ztoshow_bottom>zpage_bottom) window.scrollTo(0,ztoshow_bottom-zpage_bottom);
				new Effect.Highlight(ztoshow, { startcolor: '#D3F5FB'});
			}
	
			switch(zcssclass) {
				case 'cssclass_friend':
					ecommerce.browsing.refreshForm('k',za,'d','',true,false,false);
					var zform = ztoshow.down('form');
					zform.down('input[name=tell_friend_recipient_email]').focus();
					zform.show();
					zform.previous('div.cssclass_message').hide();
					break;
				
				case 'cssclass_tech':
				case 'cssclass_photos':
				case 'cssclass_videos':
				case 'cssclass_opinions':
					ecommerce.browsing.refreshForm('k',za,'d',this.ongletCodes.get(zcssclass),true,false,false);
					break;
					
				default:
					break;
			}
		
			var zvid = zps.down('div.cssclass_bigvideo');
			if (zcssclass=='cssclass_videos') {
				zps.down('div.cssclass_bigimage').hide();
				zvid.show();
				this.launchVideo(zvid);
				
			} else {
				if (zvid!=null) {
					zvid.hide();
					zps.down('div.cssclass_bigimage').show();
					
				}
			
			}
		}
	},

	onCloseEvent: function(event) {
		var element = Event.element(event);
		if ( (element.tagName.toLowerCase()!='a') && (element.tagName.toLowerCase()!='span') ) return ;
		
		if (element.up('div').hasClassName('cssclass_bigimage')) {
			// Fermer la fiche produit
			this.elem.update('');
			this.elem.up('div.cssclass_catalogue_horizontal').select('div.cssclass_product_vignette.cssclass_selected').each(function(el) { el.removeClassName('cssclass_selected'); } );
			
		} else if (element.up('div').hasClassName('cssclass_bigvideo')) {
			// Fermer la vidéo
			var zonglet = element.up('div.cssclass_product_sheet').down('div.cssclass_onglets').down('div.cssclass_onglet.cssclass_tech');
			this.ongletClicked(zonglet);
			
		}
		
	},
	
	onAccessoryEvent: function(event) {
		var element = Event.element(event);
		if (element.tagName.toLowerCase()!='a') return ;
		
		var zcontainer = element.up('div.cssclass_package_accessories');
		var zviewport = zcontainer.down('div.cssclass_viewport');
		
		zcontainer.down('a.cssclass_linenav.cssclass_next').stopObserving('click');
		zcontainer.down('a.cssclass_linenav.cssclass_prev').stopObserving('click');
		
		var zfirst = zviewport.down('a.cssclass_package_accessory.cssclass_first');
		var zlast = zviewport.down('a.cssclass_package_accessory.cssclass_last');
		
		if (element.hasClassName('cssclass_next')) {
			zfirst.removeClassName('cssclass_first');
			zfirst.next('a.cssclass_package_accessory').addClassName('cssclass_first');
			zviewport.insert({ bottom: zfirst.remove() });
			zlast.removeClassName('cssclass_last');
			zlast.next('a.cssclass_package_accessory').addClassName('cssclass_last');
		} else {
			zlast.removeClassName('cssclass_last');
			zlast.previous('a.cssclass_package_accessory').addClassName('cssclass_last');
			zviewport.insert({ top: zlast.remove() });
			zfirst.removeClassName('cssclass_first');
			zfirst.previous('a.cssclass_package_accessory').addClassName('cssclass_first');
		}
		
		zcontainer.down('a.cssclass_linenav.cssclass_next').observe('click', this.onAccessoryEvent.bind(this));
		zcontainer.down('a.cssclass_linenav.cssclass_prev').observe('click', this.onAccessoryEvent.bind(this));
	},
	
	launchVideo: function(zdiv) {
		var zform = zdiv.down('form');
		var zpid = zform.down('input[name=pid]').value;
		var zvideo = this.videos.get(zpid);
		
		if (zvideo==null) {
			var zdomain = zform.down('input[name=domain]').value;
			var zurl = zform.down('input[name=url]').value;
			var zid = 'cssid_jwplayer_'+zpid;
	  		var jwplayer   = 'http://static.www.'+zdomain+'/tools/swf/jwplayer/player.swf';
  			var zplaylist  = escape('http://www.'+zdomain+'/pc/video_playlist.php?file='+zurl);
  			var zabouttext = zdomain;
	  		var zaboutlink = 'http://www.'+zdomain+'/';
  			var att = { data: jwplayer, width: '740', height: '400', wmode: 'opaque' } ;
  			var par = { allowScriptAccess: 'always', allowFullScreen: 'true', quality: 'high', flashvars: '&playlist=right&abouttext='+zabouttext+'&aboutlink='+zaboutlink+'&playlistsize=300&backcolor=333333&frontcolor=ffffff&lightcolor=6A6A6A&autostart=1&file='+zplaylist } ;
  			this.videos.set(zpid, swfobject.createSWF(att, par, zid));
  		}
	},
	
	hideVideo: function(za) {
		za = $(za);
		var zonglet = za.up('div.cssclass_product_sheet').down('div.cssclass_onglets').down('div.cssclass_onglet.cssclass_tech');
		this.ongletClicked(zonglet);
	},
	
	onBrotherSelectChange: function(event) {
		var element = Event.element(event);
		if (element.tagName.toLowerCase()!='select') return ;
		var package_id = element.options[element.selectedIndex].value;
		var zdiv_old   = element.up('div.cssclass_product_sheet');
		var zdiv_new   = zdiv_old.up('div').down('div#cssid_product_sheet_'+package_id);
		zdiv_old.hide();
		zdiv_new.show();
		element.up('form').reset();
	},
	
	packageAlert: function(event) {
		var element = Event.element(event);
		var zdiv    = element.up('div.cssclass_packages');
		var zform   = zdiv.down('form');
		ecommerce.alert.open(zform);
	},
	
	packageBuy: function(event) {
		var element = Event.element(event);
		var zdiv    = element.up('div.cssclass_packages');
		var zform   = zdiv.down('form');
		ecommerce.cart.add(zform);
	},
	
	onLetterInput: function(event) {
		var element = Event.element(event);
		if (element.tagName.toLowerCase()!='input') return ;

		element.value = element.value.gsub(/[^a-zA-Z -]/,'').toUpperCase();
		var zcounter = element.value.gsub(/[^a-zA-Z]/,'').length;
		var s;
		var zprice = parseFloat(element.next('input[type=hidden]').value);
		var zquantity_input = element.up('form').down('input[name=package_quantity]');
		zquantity_input.value = zcounter;
		zcounter>1 ? s = 's' : s = '';
		if (zcounter>0) {
			zprice = zprice*zcounter;
			element.next('span').update(ecommerce.utils.translate(''+zcounter+' lettre'+s+' ('+zprice+'€)#'+zcounter+' letter'+s+' ('+zprice+'€)'));
			zquantity_input.value = zcounter;
		} else {
			element.next('span').update('');
			zquantity_input.value = 0;
		}
	}
	
});

var productsheetTellFriend = Class.create({

	initialize: function(productsheet) {
		this.parent = productsheet ;
		this.submitted = null ;
		this.tellfriends = productsheet.elem.select('div.cssclass_ongletcontent.cssclass_friend') ;
		if (this.tellfriends!=null) this.registerCallBacks();
	},

	registerCallBacks: function() {
		var ztellfriend, zinputs, zinput, zsubmit;
		var nb_tellfriends = this.tellfriends.length ;
		for (var i=0 ; i<nb_tellfriends; i++) {
			ztellfriend = this.tellfriends[i] ;
			
			zinputs = ztellfriend.select('input[type=text]');
			if (zinputs!=null) {
				nb_zinputs = zinputs.length;
				for (var j=0 ; j<nb_zinputs; j++) {
					zinput = zinputs[j];
					zinput.observe('blur', this.onInputBlurEvent.bind(this));
				}
			}
			
			zsubmit = ztellfriend.down('a.cssclass_submit');
			if (zsubmit!=null) {
				zsubmit.observe('click', this.onSubmitEvent.bind(this));
			}
		}
	},
	
	onInputBlurEvent: function(event) {
		var zinput = Event.element(event);
		if (zinput.tagName.toLowerCase()!='input') return ;
		
		var exp = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,4}(\.[a-z]{2}){0,2})$/i;
		var ret ;
		
		switch(zinput.name) {
			case 'tell_friend_recipient_email':
			case 'tell_friend_author_email':
				zinput.value = zinput.value.strip();
			 	if (exp.test(zinput.value)==false) {
			 		ret = false;
	 				zinput.next('div').removeClassName('cssclass_verified');
		 			if (zinput.value.length>0) {
		 				zinput.next('div').update(ecommerce.utils.translate('adresse incorrecte#invalid address'));
		 			} else {
		 				zinput.next('div').update('');
		 			}
		 			zinput.focus();
	 			} else {
	 				zinput.next('div[class=cssclass_ajaxloader]').show();
					new Ajax.Request('/tools/ajax/ajax_utils.php?action=verify_email',
									{ method: 'post',
									  asynchronous: false,
							  		  parameters: { email: zinput.value },
							  		  onCreate: function(t) {
									  },
							  		  onSuccess: function(transport) {
										if ( (transport.responseText.length>0) && (!(transport.responseText<0)) ) {
											zinput.next('div').addClassName('cssclass_verified');
		 									zinput.next('div').update();
		 									zinput.value = transport.responseText;
		 									zinput.enable();
										} else {
											ret = false;
		 									zinput.next('div').removeClassName('cssclass_verified');
			 								zinput.next('div').update(ecommerce.utils.translate('adresse incorrecte#invalid address'));
			 								zinput.focus();
										}
										zinput.next('div[class=cssclass_ajaxloader]').hide();
									  } });
				}
				break;
			case 'tell_friend_author_name':
				zinput.value = zinput.value.strip();
				if (zinput.value.length>0) {
					zinput.next('div').addClassName('cssclass_verified');
				} else {
					zinput.next('div').removeClassName('cssclass_verified');
				}
			default:
				break;
		}
	},

	onSubmitEvent: function(event) {
		Event.stop(event);
		var element = Event.element(event);
		
		var zform = element.up('form');
		
		var zinput;
		var zcontainer;
		var zmessage;
		
		zinput = zform.down('input[name=tell_friend_recipient_email]');
		if (!zinput.next('div.cssclass_mandatory').hasClassName('cssclass_verified')) {
			alert(ecommerce.utils.translate('Adresse e-mail du destinataire : veuillez saisir une adresse valide#Recipient\'s e-mail address: please enter a valid address'));
			zinput.focus();
			return false;
		}
		
		zinput = zform.down('input[name=tell_friend_author_email]');
		if (!zinput.next('div.cssclass_mandatory').hasClassName('cssclass_verified')) {
			alert(ecommerce.utils.translate('Votre adresse e-mail : veuillez saisir une adresse valide#Your e-mail address: please enter a valid address'));
			zinput.focus();
			return false;
		}
		
		zinput = zform.down('input[name=tell_friend_author_name]');
		if (!zinput.next('div.cssclass_mandatory').hasClassName('cssclass_verified')) {
			alert(ecommerce.utils.translate('Votre nom : veuillez renseigner ce champ#Your name: please enter your name'));
			zinput.focus();
			return false;
		}
	
		ecommerce.ajaxmask.show(ecommerce.utils.translate('Envoi en cours...#Your request is being processed...'));
		
		var zi = '';
		var zj = '';
		var zk = '';
		
		zform.down('input[name=k]').value = ecommerce.browsing.formToParam('k');
		zform.down('input[name=j]').value = ecommerce.browsing.formToParam('j');
		zform.down('input[name=i]').value = ecommerce.browsing.formToParam('i');
		
		zdata = zform.serialize();
		
	    new Ajax.Request('/pc/ajax_pc_callback.php?action=tell_friend',
						 { method: 'post',
						   parameters: zdata,
						   onSuccess: function(transport) {
						   		zcontainer = zform.up('div.cssclass_form');
						   		zmessage = zcontainer.down('div.cssclass_message');
						   		if (transport.responseText=='ok') {
						   			this.submitted = zcontainer ;
						   			zmessage.update(ecommerce.utils.translate('Votre message a été envoyé#Your message has been sent'));
						   			zmessage.show();
						   			zform.hide();
						   			window.setTimeout(function() {
						   				ecommerce.productpage.tellfriendmanager.closeTellFriend() ;
						   			}, 4000);
						   			
						   		} else {
						   			zmessage.update(ecommerce.utils.translate('Une erreur s\'est produite : #An error occured: ')+transport.responseText);
						   			zmessage.show();
						   			
						   		}
						   		ecommerce.ajaxmask.hide();
						 } } );
	},
	
	closeTellFriend: function() {
		var zselected = this.parent.elem.down('div.cssclass_onglet.cssclass_selected');
		if ( (zselected!=null) &&
		     (zselected.hasClassName('cssclass_friend')) ) {
			this.parent.ongletClicked(zselected.previous('div.cssclass_onglet.cssclass_tech'));
		}
		if (this.submitted!=null) {
			this.submitted.down('div.cssclass_message').hide() ;
			this.submitted = null ;
		}
	}
	
});

var productsheetComment = Class.create({

	initialize: function(productsheet) {
		this.parent = productsheet ;
		this.submitted = null ;
		this.comments = productsheet.elem.select('div.cssclass_ongletcontent.cssclass_opinions') ;
		if (this.comments!=null) this.registerCallBacks();
	},

	registerCallBacks: function() {
		var zcomment, zinputs, zinput, zsubmit;
		var nb_zcomments = this.comments.length ;
		for (var i=0 ; i<nb_zcomments; i++) {
			zcomment = this.comments[i] ;
			
			zinputs = zcomment.select('input[type=text]');
			if (zinputs!=null) {
				nb_zinputs = zinputs.length;
				for (var j=0 ; j<nb_zinputs; j++) {
					zinput = zinputs[j];
					zinput.observe('blur', this.onInputBlurEvent.bind(this));
				}
			}

			zinput = zcomment.down('textarea');
			zinput.observe('blur', this.onInputBlurEvent.bind(this));
			
			zsubmit = zcomment.down('a.cssclass_submit');
			if (zsubmit!=null) {
				zsubmit.observe('click', this.onSubmitEvent.bind(this));
			}
		}
	},
	
	onInputBlurEvent: function(event) {
		var zinput = Event.element(event);
		if ( (zinput.tagName.toLowerCase()!='input') && (zinput.tagName.toLowerCase()!='textarea') ) return ;
		
		var exp = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,4}(\.[a-z]{2}){0,2})$/i;
		var ret ;
		
		switch(zinput.name) {
			case 'package_comment_author_email':
				zinput.value = zinput.value.strip();
			 	if (exp.test(zinput.value)==false) {
			 		ret = false;
	 				zinput.next('div').removeClassName('cssclass_verified');
		 			if (zinput.value.length>0) {
		 				zinput.next('div').update(ecommerce.utils.translate('adresse incorrecte#invalid address'));
		 			} else {
		 				zinput.next('div').update('');
		 			}
		 			zinput.focus();
	 			} else {
	 				zinput.next('div[class=cssclass_ajaxloader]').show();
					new Ajax.Request('/tools/ajax/ajax_utils.php?action=verify_email',
									{ method: 'post',
									  asynchronous: false,
							  		  parameters: { email: zinput.value },
							  		  onCreate: function(t) {
									  },
							  		  onSuccess: function(transport) {
										if ( (transport.responseText.length>0) && (!(transport.responseText<0)) ) {
											zinput.next('div').addClassName('cssclass_verified');
		 									zinput.next('div').update();
		 									zinput.value = transport.responseText;
		 									zinput.enable();
										} else {
											ret = false;
		 									zinput.next('div').removeClassName('cssclass_verified');
			 								zinput.next('div').update(ecommerce.utils.translate('adresse incorrecte#invalid address'));
			 								zinput.focus();
										}
										zinput.next('div[class=cssclass_ajaxloader]').hide();
									  } });
				}
				break;
			case 'package_comment_author_name':
			case 'package_comment_title':
			case 'package_comment_text':
				zinput.value = zinput.value.strip();
				if (zinput.value.length>0) {
					zinput.next('div').addClassName('cssclass_verified');
				} else {
					zinput.next('div').removeClassName('cssclass_verified');
				}
			default:
				break;
		}
	},

	onSubmitEvent: function(event) {
		Event.stop(event);
		var element = Event.element(event);
		
		var zform = element.up('form');
		
		var zinput;
		var zcontainer;
		var zmessage;
		
		zinput = zform.down('input[name=package_comment_author_name]');
		if (!zinput.next('div.cssclass_mandatory').hasClassName('cssclass_verified')) {
			alert(ecommerce.utils.translate('Votre nom : veuillez renseigner ce champ#Your name: please enter your name'));
			zinput.focus();
			return false;
		}
		
		zinput = zform.down('input[name=package_comment_author_email]');
		if (!zinput.next('div.cssclass_mandatory').hasClassName('cssclass_verified')) {
			alert(ecommerce.utils.translate('Votre adresse e-mail : veuillez saisir une adresse valide#Your e-mail address:'));
			zinput.focus();
			return false;
		}
		
		zinput = zform.down('input[name=package_comment_title]');
		if (!zinput.next('div.cssclass_mandatory').hasClassName('cssclass_verified')) {
			alert(ecommerce.utils.translate('Titre ou résumé de votre commentaire : veuillez renseigner ce champ#Please enter a title or summary for your comment'));
			zinput.focus();
			return false;
		}
		
		zinput = zform.down('textarea[name=package_comment_text]');
		if (!zinput.next('div.cssclass_mandatory').hasClassName('cssclass_verified')) {
			alert(ecommerce.utils.translate('Votre commentaire : veuillez renseigner ce champ#Please enter your comment'));
			zinput.focus();
			return false;
		}
		
		ecommerce.ajaxmask.show(ecommerce.utils.translate('Envoi en cours...#Your request is being processed...'));
		
		var zi = '';
		var zj = '';
		var zk = '';
		
		zform.down('input[name=k]').value = ecommerce.browsing.formToParam('k');
		zform.down('input[name=j]').value = ecommerce.browsing.formToParam('j');
		zform.down('input[name=i]').value = ecommerce.browsing.formToParam('i');
		
		zdata = zform.serialize();
		
	    new Ajax.Request('/pc/ajax_pc_callback.php?action=package_comment',
						 { method: 'post',
						   parameters: zdata,
						   onSuccess: function(transport) {
						   		zcontainer = zform.up('div.cssclass_form');
						   		zmessage = zcontainer.down('div.cssclass_message');
						   		if (transport.responseText=='ok') {
						   			this.submitted = zcontainer ;
						   			zmessage.update(ecommerce.utils.translate('Votre commentaire a été envoyé.<br />Il sera publié après validation par notre équipe.<br />Merci pour votre contribution.#Your comment has been sent.<br />It will be published once validated by our team.<br />Thank you for your contribution.'));
						   			zmessage.show();
						   			zform.hide();
						   			
						   		} else {
						   			zmessage.update(ecommerce.utils.translate('Une erreur s\'est produite : #An error occured: ')+transport.responseText);
						   			zmessage.show();
						   			
						   		}
						   		ecommerce.ajaxmask.hide();
						 } } );
	}
	
});