Ok well For an unknown reason yet, I added the JCrop call into a setTimeout of 25 and it's working. I assume that photos higher then wide tends to take longer to load. Now it's working fine. I even added the load even but the load event doesn't do any good without the setTimeout but I let it there anyway!
Here's the code :
$("#UncroppedImage").on('load', function () {
setTimeout(function () {
$('#UncroppedImage').Jcrop({
setSelect: [0, 0, 100, 100],
minSize: [100, 100],
maxSize: [620, 620],
onChange: updateOriginal,
onSelect: updateOriginal,
aspectRatio: 1 / 1,
boxWidth: 620,
boxHeight: 620
});
}, 25);
}).each(function () {
if (this.complete) $(this).load();
});
$('#UncroppedImage').attr('src', PhotoPathFileName);