function validForm() {	
	box.ui('form').create({
			element: '#sendFriendForm'
		}).addReplacement().mustValidate(function(form) {
			form.field('fromName').mustValidate(function(field) {
				if(field.isEmpty()) {
					return l10n.errors.required.EM_SW_05;
				}
			});
			form.field('toEmail').mustValidate(function(field) {
				if(field.isEmpty()) {
					return l10n.errors.required.EM_SW_22;
				} else if(!field.isMatching('email')) {
					return l10n.errors.required.EM_SW_22;
				}
        	});
			form.field('fromEmail').mustValidate(function(field) {
				if(field.isEmpty()) {
					return l10n.errors.required.EM_SW_06;
				} else if(!field.isMatching('email')) {
					return l10n.errors.required.EM_SW_06;
				}
            });

            form.field('legales').mustValidate(function(field) {
                if (field.type == "checkbox" && !field.isChecked()) {
                    return l10n.errors.required.EM_SW_111;
                }
            });
        	
		});
	
	var errorCls = 'error';
    
    var getErrorTarget = function(field) {
        if('radio' != field.type) {
            return field.getLabel();
        } else {
            return field.getElements().parent().parent().prev();
        }
    };
    
    var addFieldError = function(e) {
		getErrorTarget(e.source).addClass(errorCls);
		var sourceForm = $('#'+e.id).parents('form').attr('id');
		addErrorIcon(e.source, $('#'+sourceForm+' div.alert .content p'));
    };
    
    var removeFieldError = function(e) {
        getErrorTarget(e.source).removeClass(errorCls);
		box.dom('#' + e.source.name + 'Error').remove();
    };
	

	var addErrorIcon = function(field, target) {
		var id = field.name + 'Error';
		var img = box.dom('#' + id);
		if(img.length) {
		  img.attr('alt', field.getError());
		} else {
		  target.append('<span id="' + id + '">- ' + field.getError() + '<br/></span>');
		}
	  };

    
    var addFormError = function(e) {
        var id = e.source.id + 'Error';
		var msg = e.source.msg;
        var error = box.dom('#' + id);
        if(error.length) {
            error.html(msg);
        } else {
			$('#' + e.source.id + ' div.alert').show();
        }
    };
    
    var removeFormError = function(e) {
        box.dom('#' + e.source.id + 'Error').remove();
    };
	
	// binding des événements
    box.bind({
        'error.form': addFormError,
        'valid.form': removeFormError,
		'valid.field': removeFieldError,
		'error.field.text': addFieldError,
		'error.field.checkbox': addFieldError,
		'valid.field.text': removeFieldError,
		'valid.field.checkbox': removeFieldError
    });
}

var sendToFlash = {
	urlFile:'',
	testimony:'',
	signature:'',
	init:function(){
		$('.withVideo a').click(
		function() {
			sendToFlash.getData($(this));
		});
	},
	sendData:function(){
		document.getElementById("id_flash").getInfo(sendToFlash.urlFile,sendToFlash.testimony,sendToFlash.signature);
	},
	getData:function(a){
		sendToFlash.testimony = $.trim($('.withVideo p').children('strong').text());
		sendToFlash.signature = $.trim($('.withVideo p').children('span').text());
		var href = a.attr('href');
		sendToFlash.urlFile = href.substring(href.indexOf('urlswf=')+7,href.length);
	}
}


var openCompressionPopin = false;
var ajaxPostForm = function(e,originalEvent) {
	if(typeof originalEvent == 'object') {
		var urlAction = $('#sendFriendForm').attr('action');
		var getDataForm = $('#sendFriendForm').serialize();
		originalEvent.preventDefault();
		$.ajax({type: "GET",
		url: urlAction+'?'+getDataForm,
			success: function(retour) {
				if(retour.etat===true){
					openCompressionPopin = true;
					box.ui('generic.popin').animate({top: 'viewport:before'}, 500, 'close');
				} else {
					var message = eval("l10n.errors.required."+retour.message);
					$('#sendFriendForm div.alert').show();
					$('#sendFriendForm div.alert p').text(message);
				}
			},
			dataType: "json"
		});
		return false;
	}
};

box.bind({
    'valid.form.sendFriendForm': function(e, originalEvent) {
        ajaxPostForm(e, originalEvent);
        return false;
    }, 'addtodom.generic.popin.sendFriend': function(e) {
        validForm();
    }, 'close.generic.popin.sendFriend': function(e) {
        box.ui('form').destroy('sendFriendForm');
        if (openCompressionPopin) {
            box.ui('generic.pagemask').removeFromDOM();
            box.ui('generic.popin').removeFromDOM();
            box.ui('generic.popin').setNamespace('popinAlert').set({ url: '/popins/popin-product-mail-sent?boxid=popinAlert', cache: false });
            box.ui('generic.popinloader')
				.visible(false)
				.addToDOM({ target: 'body' })
				.applyStyles({ visibility: 'visible', opacity: 0, top: 'middle', left: 'middle' }, 'viewport')
				.animate({ opacity: 0.999 }, 300, 'open');
            //GoogleAnalytics
            if ($(document.body).hasClass('kiotisPage')) {
                setGoogleAnalytics('/kiotis/send-a-friend-confirm');
            } else {
                setGoogleAnalytics('/stanhome/send-a-friend-confirm');
            }
        }
        openCompressionPopin = false;
    }, 'legal.generic.popin.sendFriend': function(e) {
        box.ui('form').destroy('sendFriendForm');
        if (openCompressionPopin) {
            box.ui('generic.pagemask').removeFromDOM();
            box.ui('generic.popin').removeFromDOM();
            box.ui('generic.popin').setNamespace('popinAlert').set({ url: '/popins?popin=legal?boxid=legal2', cache: false });
            box.ui('generic.popinloader')
				.visible(false)
				.addToDOM({ target: 'body' })
				.applyStyles({ visibility: 'visible', opacity: 0, top: 'middle', left: 'middle' }, 'viewport')
				.animate({ opacity: 0.999 }, 300, 'open');
        }
        openCompressionPopin = false;
    }
});



$(document).ready(
	function() {
	$('#productArguments dl dt').click(
		function() {
			if($(this).parent().hasClass('close')){
				$('#productArguments dl').removeClass('open').addClass('close');
				$(this).parent().removeClass('close').addClass('open');
			} else {
				$('#productArguments dl').removeClass('open').addClass('close');
			}
		});
	}
);

	box.dom(document).ready(function() {
	    sendToFlash.init();
	    box.bind({
	        'addtodom.generic.popin.video': function(e) {
	            setFlash.init(flashvars);

	        }, 'close.generic.popin.legal3': function(e) {
	            box.ui('generic.popin').removeFromDOM();
	            openLoader();
	            box.ui('generic.popin')
		        .setNamespace('sendFriend')
		        .set({ url: '/popins/popin-send-friend', cache: false });
	            isOpened = false;
	            return false;
	        }, 'close.generic.popin.sendFriend': function(e) {
	            values.fromName = $('#fromName').val();
	            values.toEmail = $('#toEmail').val();
	            values.comment = $('#comment').val();
	            values.fromEmail = $('#fromEmail').val();
	            values.emailCopy = $('#emailCopy').val();
	        }, 'open.generic.popin.sendFriend': function(e) {
	            if (values.fromName || values.toEmail || values.comment || values.fromEmail || values.emailCopy) {  
	                $('#fromName').val(values.fromName);
	                $('#toEmail').val(values.toEmail);
	                $('#comment').val(values.comment);
	                $('#fromEmail').val(values.fromEmail);
	                $('#emailCopy').val(values.emailCopy);
	            }
	        }
	    });
	});

	var values = {};

function playerInit() {
	sendToFlash.sendData();
}

function test() {
    box.ui('generic.popin').animate({ top: 'viewport:before' }, 500, 'legal');
}
