var largeurimage=750;
var images_chargees=new Array();
var preload = new Array();
var sourceavant = "";
var iddelaphoto_avant = "";
var nouvellelargeur="";





jQuery(document).ready(function() {
    jQuery('.moncarosse').jcarousel({
	vertical:false,
	start:1,
	offset:1,
	visible:1,
	scroll:1,
	animation:500,
	itemVisibleInCallback: {
            onBeforeAnimation:  mycarousel_itemVisibleInCallbackBeforeAnimation,            onAfterAnimation:  mycarousel_itemVisibleInCallbackAfterAnimation
        },
        initCallback: mycarousel_initCallback
    });
});

function mycarousel_initCallback(carousel) {
    $('#demo_etalonnage_galerie').show();
    $('#precharge_preload').hide();
    $('.etalonnage_liste_films').click(function() {
	var numero=eval($(this).attr("rel")+"_position");
	carousel.scroll(numero+1);
	return false;
    });
}

function mycarousel_itemVisibleInCallbackBeforeAnimation(carousel, item, idx, state) {
    ml('Item #' + idx + ' itemVisibleInCallbackBeforeAnimation');

    //source image apres
    var source=$(item).children('img').attr("title");
    ml("source : "+source);
    $(item).children('.image_demo_etalonnage').attr('src',source);


    //film selectionne
    var lid="d"+$(item).children('.image_demo_etalonnage').attr("rel");
    ml("lid du film : "+lid);
    $('.etalonnage_liste_films').removeClass("film_selectionne");
    $('#lien_'+lid).addClass("film_selectionne");

    //legende
    var infos=$(item).children('.image_demo_etalonnage').attr("alt");
    $('#infos_image_presentee').html(infos);
    //    $(item).siblings().children("#etalonnage_legende").remove();

    //slider a zero
    $('.ui-slider-handle').animate({"left":"0"},500);


    //click next
    $(item).click(function(){
        carousel.next();
    });

    var iddelaphoto_avant=substr($(item).children('.image_demo_etalonnage').attr("id"),0,-6)+"_avant";
    ml("iddelaphoto_avant : "+iddelaphoto_avant);
    $('#'+iddelaphoto_avant).width(0);

}

function mycarousel_itemVisibleInCallbackAfterAnimation(carousel, item, idx, state) {
    ml('Item #' + idx + ' itemVisibleInCallbackAfterAnimation');
    var source=$(item).children('img').attr("title");
    ml("source : "+source);
    var iddelaphoto_avant=substr($(item).children('.image_demo_etalonnage').attr("id"),0,-6)+"_avant";
    var objetavant=$('#'+iddelaphoto_avant);

    ml("pour le moment objetavant.src="+objetavant.attr('src'));
    //click prev
    objetavant.click(function(){
	carousel.prev();
    });

    //slider
    ml("configuration du slider");
    $("#myslider").slider('destroy');
	$("#myslider").slider({
	    slide: function(event, ui) {
		nouvellelargeur=((ui.value)*largeurimage)/100;
		objetavant.width(nouvellelargeur);
	    },
	    stop: function(event, ui){
	    }
	});
	$('.ui-slider-handle').css("left","0%");
    

    //dimensions
    nouvellelargeur=largeurimage/2;
    var lahauteur=$(item).children('.image_demo_etalonnage').height();
    ml("on regle la hauteur de la photo a "+lahauteur);
    objetavant.height(lahauteur);
    ml("verification hauteur : "+objetavant.height());
    $('.ui-slider-handle').css("left","0%");

    //source image avant
    sourceavant=substr(source,0,-10)+"_avant.jpg";

    //CREATION IMAGE AVANT
    var forceattente=false;
    var prelaodimageavant=true;
    if((prelaodimageavant && !(in_array(sourceavant,images_chargees))) || forceattente){
	ml(sourceavant + " pas encore chargee");
	$(item).prepend("<div id='image_avant_loading'></div>");
	$('#image_avant_loading').click(function(){
            carousel.prev();
	});
	ml("on va creer limage pour "+sourceavant);

	var limage=$(new Image());
	limage.load(function(){
	    ml(sourceavant + " vient de finir de charger");

	    ml("on met css background:"+sourceavant);
	    objetavant.css("background","url("+sourceavant+") no-repeat");

	    $('#image_avant_loading').remove();
	    objetavant.animate({"width":nouvellelargeur},500);
	    $('.ui-slider-handle').animate({"left":"50%"},500);
	    ml("chargement termine");
	});	
	ml("prechargement de "+sourceavant);
	ml("pour le moment objetavant.src="+limage.attr('src'));
	limage.attr('src',sourceavant);
	ml("fin creatio de l'image "+sourceavant);
    }
    else{
	ml(sourceavant + " deja chargee");
	ml("id de lobjet avant "+objetavant.attr("id"));
	objetavant.width(0);
	objetavant.css("background","url("+sourceavant+") no-repeat");
	objetavant.animate({"width":nouvellelargeur},500);
	$('.ui-slider-handle').animate({"left":"50%"},500);
    }
};

function creelimage(){

}

function substr( f_string, f_start, f_length ) {
    // http://kevin.vanzonneveld.net
    // +     original by: Martijn Wieringa
    // +     bugfixed by: T.Wild
    // +      tweaked by: Onno Marsman
    // *       example 1: substr('abcdef', 0, -1);
    // *       returns 1: 'abcde'
    // *       example 2: substr(2, 0, -6);
    // *       returns 2: ''
    
    f_string += '';
    
    if(f_start < 0) {
        f_start += f_string.length;
    }
    
    if(f_length == undefined) {
        f_length = f_string.length;
    } else if(f_length < 0){
        f_length += f_string.length;
    } else {
        f_length += f_start;
    }
    
    if(f_length < f_start) {
        f_length = f_start;
    }
    
    return f_string.substring(f_start, f_length);
}


var row=1;

function display(s) {
    // Log to Firebug (getfirebug.com) if available
    if (window.console != undefined && typeof window.console.log == 'function')
	console.log(s);
    return;
    if (row >= 1000)
        var r = row;
    else if (row >= 100)
        var r = '&nbsp;' + row;
    else if (row >= 10)
        var r = '&nbsp;&nbsp;' + row;
    else
        var r = '&nbsp;&nbsp;&nbsp;' + row;

    jQuery('#display').html(jQuery('#display').html() + r + ': ' + s + '<br />').get(0).scrollTop += 10000;

    row++;
};


function sleep(seconds) {
    // http://kevin.vanzonneveld.net
    // +   original by: Christian Doebler
    // +   bugfixed by: Brett Zamir (http://brettz9.blogspot.com)
    // %          note: For study purposes. Current implementation could lock up the user's browser. 
    // %          note: Consider using setTimeout() instead.
    // *     example 1: sleep(1);
    // *     returns 1: 0
    
    var start = new Date().getTime();
    while (new Date() < start + seconds*1000);
    return 0;
}
function in_array(needle, haystack, argStrict) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
 
    var found = false, key, strict = !!argStrict;
 
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
 
    return found;
}



function basename(path, suffix) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Ash Searle (http://hexmen.com/blog/)
    // +   improved by: Lincoln Ramsay
    // +   improved by: djmix
    // *     example 1: basename('/www/site/home.htm', '.htm');
    // *     returns 1: 'home'
 
    var b = path.replace(/^.*[\/\\]/g, '');
    
    if (typeof(suffix) == 'string' && b.substr(b.length-suffix.length) == suffix) {
        b = b.substr(0, b.length-suffix.length);
    }
    
    return b;
}



jQuery(document).ready(function() {
    //preload
    $('.image_demo_etalonnage').each(function() {
        s = $(this).attr("title");
	var sourceavant=substr(s,0,-10)+"_avant.jpg";
	var sourceapres=s;
        preload.push(sourceavant);
        preload.push(sourceapres);
    });
    var imgpreload = document.createElement('img');
    var acharger;
    $(imgpreload).bind('load', function() {
        if(preload[0]) {
	    if(acharger!=""){
		images_chargees.push(acharger);
	    }
            acharger = preload.shift();
	    this.src=acharger;
	    var lenom=basename(acharger,'.jpg');
	    var letype=substr(acharger,-9,-4);
	    if(letype=="apres"){
		$('#'+lenom).attr('src',acharger);
	    }
	    else{
		$('#'+lenom).css("background","url("+acharger+") no-repeat");
	    }
        }
    }).trigger('load');
});
