Ext.onReady(function(){
	newsletterFields();
	newsletterForm();
	
});

function newsletterFields(){
	
	var fields = new Array();
	if(Ext.get('newsletter_lang').getValue() == 'FR'){
		fields['newsletter_lname'] = 'Nom';
		fields['newsletter_fname'] = 'Prénom';
		fields['newsletter_email'] = 'Courriel';
		//console.dir(fields);
	}else{
		fields['newsletter_lname'] = 'Last Name';
		fields['newsletter_fname'] = 'First Name';
		fields['newsletter_email'] = 'Email';
	}
	
	for(key in fields){
		if(key != "remove"){
			id = '#'+key;
			if($(id)){
				$(id).bind('focus', function(e){
					id = '#'+e.currentTarget.id; 
					key = e.currentTarget.id;
					if($(id).val() == fields[key]){
						$(id).val('').css('color', '#686868');
					}
				});
				$(id).bind('blur', function(e){ 
					id = '#'+e.currentTarget.id; 
					key = e.currentTarget.id;
					if($(id).val() == ''){
						$(id).val(fields[key]).css('color', '#B5B5B5');
					}
				});
			}
		}
	}
}

function newsletterForm(){
	
	if(Ext.get('newsletter_submit_btn')){
		Ext.get('newsletter_submit_btn').addListener('click', function(){

			var vname = Ext.get('newsletter_lname').getValue();
			var vfname = Ext.get('newsletter_fname').getValue();
			var vemail = Ext.get('newsletter_email').getValue();
			var vlang	 = Ext.get('newsletter_lang').getValue();
			
			if(vlang == 'FR'){
				vnameDefault = 'Nom';
				vfnameDefault = 'Prénom';
				vemailDefault = 'Courriel';
			}else{
				vnameDefault = 'Last Name';
				vfnameDefault = 'First Name';
				vemailDefault = 'Email';
			}
			
			var faulty = [];
			
			Ext.select('.input_field').each(function(e){
				e.removeClass('input_field_error');
				e.removeClass('textarea_field_error');
			});
			Ext.select('.textarea_field_error').removeClass('textarea_field_error');
			
			if(vname == "" || vname == vnameDefault || vemail == "" || vemail == vemailDefault || vfname == "" || vfname == vfnameDefault){
				if(vlang == 'FR'){
					alert('Vous devez remplir tout les champs');
				}else{
					alert('You must fill every fields');
				}
				if(vname == "" || vname == vnameDefault){
					faulty.push(Ext.get('newsletter_lname'));
				}
				if(vemail == "" || vemail == vemailDefault){
					faulty.push(Ext.get('newsletter_email'));
				}
				if(vfname == "" || vfname == vfnameDefault){
					faulty.push(Ext.get('newsletter_fname'));
				}
				
				var i = 0;
				for(i; i < faulty.length; i++){
					var parentId = faulty[i].dom.parentNode;
					if(Ext.get(parentId).hasClass('input_field')){
						Ext.get(parentId).addClass('input_field_error');
					}else{
						Ext.get(parentId).addClass('textarea_field_error');
					}
				}
			}else
			{
				var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				
				if (!filter.test(vemail)){
					if(vlang == 'FR'){
						alert('L\'adresse courriel n\'est pas valide!');
					}else{
						alert('Email isn\'t valid!');
					}
					Ext.get(Ext.get('contact_email').dom.parentNode).addClass('input_field_error');
				}else{
					Ext.get('newsletter_waiting').setVisible(true);
					Ext.Ajax.request({
						url : 'ajax/newsletter_task.php',
						method : 'POST',
						params : {
							task : 'subscribeMember',
							lname : vname,
							fbane : vfname,
							email : vemail,
							lang  : vlang
						},
						success : function(response, options){
							var responseData = Ext.decode(response.responseText);
							
							if(responseData.success){
								
								Ext.get('newsletter_waiting').setVisible(false);
								if(vlang == 'FR'){
									alert('Merci\n\rVotre inscription a été prise en compte!');
								}else{
									alert('Thanks\n\rYour email has been added to our mailinglist!');
								}
								i = 0;
								for(i; i < faulty.length; i++){
									var parentId = faulty[i].dom.parentNode;
									if(Ext.get(parentId).hasClass('input_field')){
										Ext.get(parentId).removeClass('input_field_error');
									}else{
										Ext.get(parentId).removeClass('textarea_field_error');
									}
								}
								
								Ext.get('newsletter_lname').dom.value = vnameDefault;
								Ext.get('newsletter_lname').setStyle('color', '#B5B5B5');
								Ext.get('newsletter_email').dom.value = vemailDefault;
								Ext.get('newsletter_email').setStyle('color', '#B5B5B5');
								Ext.get('newsletter_fname').dom.value = vfnameDefault;
								Ext.get('newsletter_fname').setStyle('color', '#B5B5B5');
								
							}else{
											
								Ext.get('newsletter_waiting').setVisible(false);
								alert(responseData.errorMsg);
							}
						}
					});
				}
			}
		});
	}
}

