$(function(){
    //Menu, active l'onglet correspondant à la page affichée
    /*if(urlMenuActif != ''){
        $("#header > ul.menu").find("a[href='"+urlMenuActif+"']").each(function(i){
            var texte = $(this).text();
            $(this).before($('<span>'+texte+'</span>'));
            $(this).remove();
        });
    }*/
    
    $.ajaxSetup({
	error: function(request, settings, exception){
	    try{
		    response = eval('('+request.responseText+')');
		    errorMessage = response.errorSimpleMessage;
	    }catch (e){
		    errorMessage = request.responseText;
	    }
	    alert(errorMessage);
	    myForm = $("form[action*='"+this.url+"']");
	    $(myForm).unblock();
	}
    });
    
    doOnload($('body'));
    /*
    if($("#questionnaire").get(0)!=undefined){
        var frame = $("#questionnaire");
        var child = frame.children();
    }*/
});


function doOnload(content){
	$("form",content).submit(function(){
        myForm = $(this)[0];
		fileUploadUseIframe = ($("input[type='file']", $(this)).length > 0) ? true : false;
        if($(this).attr('ajaxForm')==undefined || $(this).attr('ajaxForm')=='false'){
            return tmt_validateForm(myForm);
        }else{
            onAjaxSuccessLocation = ( $(this).attr('onAjaxSuccessLocation') == undefined ) ? false : $(this).attr('onAjaxSuccessLocation');
			onAjaxSuccessResetForm = ( $(this).attr('onAjaxSuccessResetForm') == undefined || $(this).attr('onAjaxSuccessResetForm')=='false' ) ? false : true;
            $(this).ajaxSubmit({
                beforeSubmit : function(formData){
                    //La mise à jour du champ caché par FCK se fait sur le onSubmit qui n'est en fait pas appellé... Appel manuel
					if(typeof(window['FCKeditorAPI']) != "undefined"){
						for ( var name in FCKeditorAPI.Instances) {
							var oEditor = FCKeditorAPI.Instances[ name ] ;
							oEditor.UpdateLinkedField();
	
							//Mise à jour de formData pour que ce soit les bonnes données qui soit postées
							for (var i=0; i<formData.length;i++){
								if(formData[i].name==name){
									formData[i].value = $('[name="'+name+'"]').val();
								}
							}
						}
					}
					//La validation par TMT se fait sur le onSubmit qui n'est en fait pas appellé... Appel manuel
                    if(tmt_validateForm(myForm)){
						if(onAjaxSuccessResetForm){
							$(myForm).block({
								message: $('<img src="design/images/loading.gif"/>'),
								css:{ 
									border:0,
									backgroundColor: 'transparent'
								},
								overlayCSS:{
									backgroundColor:'#fff',
									opacity:'0'
								}
							});
						}
						return true;
					}else{
						return false;
					}
                },
                success: function(data){
					if(data!=undefined && data!=null && data.errorSimpleMessage!=undefined){
						alert(data.errorSimpleMessage);
					}
                    if(data==false){
                        if(onAjaxSuccessResetForm){
                            alert("L'envoi de fomulaire à echoué");
                            $(myForm).resetForm();
                            $(myForm).unblock();
                        }
                    }
                    if(onAjaxSuccessLocation){
                        if(data!=undefined && data.urlLocation!=undefined){
							document.location.href=data.urlLocation.replace(/&amp;/g,"&");
                        }else if(data==null){
                            document.location.href=onAjaxSuccessLocation;
                        }
					}
                    if(onAjaxSuccessResetForm){
						$(myForm).resetForm();
						$(myForm).unblock();
					}
                },
                dataType : 'json'
				//iframe:fileUploadUseIframe
            });
            return false;
        }
    });
	
	$("a[rel='delete']",content).click(function(){
		if(confirm('Etes-vous sûr de supprimer cet enregistrement?')){
			return true;
		}else{
			return false;
		}
	});
    
    $("a[rel='deleteAjax']",content).click(function(){
		if(confirm('Etes-vous sûr de supprimer cet enregistrement?')){	
            myLink = $(this);
            //myLink.parents("tr").eq(0).remove();
            $.getJSON(this.href, {ajax:1}, function(data){
				if(data){
					myLink.parents("tr").eq(0).remove();
				}
			});
		}
		return false;
	});
	
    $("[ajaxField='true']", content).change(function(){
		ajaxAction = $(this).attr('ajaxAction');
		if(!ajaxAction){
			return;
		}
		if($(this).is('input')){
			switch($(this).attr('type')){
				case 'checkbox':
					fieldValue=$(this).attr('checked');
					break;
				case 'text':
				case 'password':
				case 'radio':
					fieldValue=$(this).val();
					break;

				default:
					alert('Erreur - Type de champ input non géré:'+$(this).attr('type'));
					return;
			}
		}else{
			if($(this).is('textarea')){
				fieldValue=$(this).val();
			}else{
				alert('Erreur - Champ non supporté');
			}
		}
		$.post(ajaxAction, {id:$(this).attr('name'), value:fieldValue});
	});
    
    $('.divListWithPagination',content).divListWithPagination();
    
	//$('.timeEntry').timeEntry({spinnerImage: URL_WWW+'jquery/plugins/timeentry/spinnerDefault.png',show24Hours: true});
	
	$("form[name='form_estime_or'] > input#gramme", content).keyup(function(e){
		if(e.which == 13){
			$("form[name='form_estime_or']").submit( function() {
				return false;
			});
		}
		var form = $("form[name='form_estime_or']");
		var infoObj = new Object;
		infoObj.rex = new RegExp("[^\\d\\.]", "g");
		infoObj.str = "";
		var gramme = $(this).val().replace(infoObj.rex, infoObj.str);
		var url = form.attr('action');
		var carat = $("#carat", form).val();
		var priceOr = $("#priceOr", form).val();
		
		if(gramme=="" || parseFloat(gramme)==parseFloat(0)){
			if($("#estime_or_price_brut")[0]!=undefined){
				$("#estime_or_price_brut").html("0.0");
			}
			if($("#estime_or_price_net")[0]!=undefined){
				$("#estime_or_price_net").html("0.0");
			}
		}else{
			$.getJSON(url,{ gramme: gramme, carat: carat, priceOr: priceOr },function(json){
				if($("#estime_or_price_brut")[0]!=undefined){
					$("#estime_or_price_brut").html(json.priceBrut);
				}
				if($("#estime_or_price_net")[0]!=undefined){
					$("#estime_or_price_net").html(json.priceNet);
				}
			});
		}
	}).keydown(function(e){
		if(e.which == 13){
			$("form[name='form_estime_or']").submit( function() {
				return false;
			});
		}
	});
	$("form[name='form_estime_or'] > select#carat", content).change(function(){
		var form = $("form[name='form_estime_or']");
		var infoObj = new Object;
		infoObj.rex = new RegExp("[^\\d\\.]", "g");
		infoObj.str = "";
		var gramme = $("#gramme", form).val().replace(infoObj.rex, infoObj.str);
		var url = form.attr('action');
		var carat = $(this).val();
		var priceOr = $("#priceOr", form).val();
		
		if(gramme=="" || parseFloat(gramme)==parseFloat(0)){
			if($("#estime_or_price_brut")[0]!=undefined){
				$("#estime_or_price_brut").html("0.0");
			}
			if($("#estime_or_price_net")[0]!=undefined){
				$("#estime_or_price_net").html("0.0");
			}
		}else{
			$.getJSON(url,{ gramme: gramme, carat: carat, priceOr: priceOr },function(json){
				if($("#estime_or_price_brut")[0]!=undefined){
					$("#estime_or_price_brut").html(json.priceBrut);
				}
				if($("#estime_or_price_net")[0]!=undefined){
					$("#estime_or_price_net").html(json.priceNet);
				}
			});
		}
	});
	
	
	$('.date',content)
        .datepicker({buttonImage: 'design/images/calendar.gif',showOn: 'button', buttonImageOnly: true })
        .datepicker($.datepicker.regional['fr']);
}

//Différence de 2 dates
function diffDate(dateDeb,dateFin,sep)
{
	// Attention, en javascript les mois commencent ? z?ro
	var nbj=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);

	datedeb = dateDeb.split(sep);
	datefin = dateFin.split(sep);


	var datedeb=new Date(datedeb[2],datedeb[1],datedeb[0],00,00,00); // Ann?e, Mois, Jour, Heure, Minutes, Secondes
	var datefin=new Date(datefin[2],datefin[1],datefin[0],00,00,00); // Vous pouvez prendre la date du jour : var datefin=new Date();
	aad=datedeb.getYear();mmd=datedeb.getMonth()+1;jjd=datedeb.getDate();hhd=datedeb.getHours();mnd=datedeb.getMinutes();ssd=datedeb.getSeconds();
	aaf=datefin.getYear();mmf=datefin.getMonth()+1;jjf=datefin.getDate();hhf=datefin.getHours();mnf=datefin.getMinutes();ssf=datefin.getSeconds();
	if(aaf<1900){aaf=aaf+1900;}
	if(aad<1900){aad=aad+1900;}
	if(aaf%4==0){nbj[2]=29;}
	if((aaf%100==0)&&(aaf%400!=0)){nbj[2]=28;}
	if(ssf<ssd){ssf=ssf+60;mnf=mnf-1;}
	if(mnf<mnd){mnf=mnf+60;hhf=hhf-1;}
	if(hhf<hhd){hhf=hhf+24;jjf=jjf-1;}
	if(jjf<jjd){jjf=jjf+nbj[mmf];mmf=mmf-1;}
	if(mmf<mmd){mmf=mmf+12;aaf=aaf-1;}
	//Diff en ann?e,mois,jours,min,sec
	//mes=(aaf-aad)+" ans "+(mmf-mmd)+" mois "+(jjf-jjd)+" jours "+(hhf-hhd)+" heures "+(mnf-mnd)+" minutes "+(ssf-ssd)+" secondes";
	return (aaf-aad);
}