/*
CE SCRIPT SERT A AFFICHER TOUT LE FORMULAIRE D'AJOUT D'OBJET DANS SA LISTE DE COURSE
Appel :
*/
sl_projet_state = true;
sl_timer_autocomplete = 0;
sl_autocomplete_open = false;
// Verifie quelques infos
// Projet_id
if(!vn(sl_projet_id))
sl_projet_id = 0;
// Projet_id
if(!$(sl_box))
sl_projet_state = false;
// Photo_id
if(!vn(sl_photo_id))
sl_photo_id = 0;
// Etape_id
if(!vn(sl_etape_id))
sl_etape_id = 0;
// Piece_id
if(!vn(sl_piece_id))
sl_piece_id = 0;
// Produit_id
if(!vn(sl_produit_id))
{
sl_produit_id = 0;
sl_edit_produit = 0;
}
else
{
sl_edit_produit = 1;
}
// Pick
if(sl_pick_photo != 1)
sl_pick_photo = 0;
// Fonctions
function sl_add_print(step)
{
if(sl_projet_state)
{
$('#sl_add_pointer').remove(); // On vire le pointeur si il en reste un.
console.log('sl_add_print '+step);
if(step == 1)
{
// Step 1 : on lance le premier formulaire
if(!vn(sl_projet_id))
{
file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=get_projet_id', function()
{
ajax_projet = html;
ajax_projet_id = parseInt(ajax_projet);
if(!vn(ajax_projet_id))
{
$(sl_box).html(ajax_projet);
}
else
{
sl_projet_id = ajax_projet_id;
if(vn(sl_projet_id))
{
if(vn(sl_produit_id))
sl_add_print(2);
else
{
file2("//www.forumconstruire.com/recits/sl_add_ajax.php?projet_id="+sl_projet_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id+"&produit_id="+sl_produit_id, function()
{
$(sl_box).html(html);
});
}
}
}
});
}
if(vn(sl_projet_id))
{
if(vn(sl_produit_id))
sl_add_print(2);
else
{
file2("//www.forumconstruire.com/recits/sl_add_ajax.php?projet_id="+sl_projet_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id+"&produit_id="+sl_produit_id, function()
{
$(sl_box).html(html);
});
}
}
}
else if(step == 2)
{
// Step 2 : Saisie des infos manuelles car pas de produit ET/OU pas assez d'infos
file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=saisie_info&projet_id="+sl_projet_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id+"&produit_id="+sl_produit_id+"&edit_produit="+sl_edit_produit, function()
{
$(sl_box).html(html);
});
}
else if(step == 3)
{
// Step 3 : Lien entre l'utilisateur et le produit
file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=saisie_info_completaires&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id, function()
{
$(sl_box).html(html);
autosize($('#sl_add_textarea_avis'));
sl_add_display_piece();
sl_add_display_shop();
});
}
else if(step == 35)
{
// Step 3,5 : Avis sur le magasin
file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=saisie_avis_shop&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id+"&etape_id="+sl_etape_id+"&piece_id="+sl_piece_id, function()
{
data = html;
if(data == '' || vn(data))
{
sl_add_print(4);
}
else
{
$(sl_box).html(data);
autosize($('#sl_add_textarea_avis'));
}
});
}
else if(step == 4)
{
// Step 4 : Choix des photos
file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=choix_photos&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id+"&photo_id="+sl_photo_id, function()
{
data = html;
$(sl_box).html(data);
photo_id = $(data).find('img[photo_a_tagguer=1]').attr('photo_id');
$('#image_sladd_'+photo_id).load(function()
{
photo_get_tag(photo_id, '16', sl_produit_id, 1, 'sladd');
})
});
}
else if(step == 5)
{
// Step 5 : C'est fini
file2("//www.forumconstruire.com/recits/sl_add_ajax.php?content=confirm", function()
{
$(sl_box).html(html);
});
}
}
}
function sl_add_get_info(kelkoo_type, kelkoo_id)
{
if(kelkoo_type != 'ean' && kelkoo_type != 'kelkoo_id' && kelkoo_type != 'kelkoo_offer_id')
return(0);
$('#sl_autocomplete_box').hide();
// On va cherche chez kelkoo des infos sur le produit
file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=info_produit_kelkoo&type='+kelkoo_type+'&id='+kelkoo_id, function()
{
data = html;
if(vn(data))
{
sl_produit_id = data;
sl_add_print(3);
}
else
{
sl_add_print(2);
}
});
}
function sl_add_autocomplete(div, url)
{
//alert('#'+div);
if($('#'+div).length)
{
/*if($('#'+div).value.length <= 2)
return('');*/
// On cree le nom du div
divname = "sl_autocomplete_box";
// On regarde ou est le bloc "pere"
offset = $('#'+div).offset();
pos_x = Math.round(offset.left);
pos_y = Math.round(offset.top+$('#'+div).height()+10);
// On cree le bloc
texte_chargement = ' Chargement ...
';
if(!$("#"+divname).length)
{
$('body').append(''+texte_chargement+'
');
}
else
{
$('#'+divname).html(texte_chargement);
}
// On affiche le bloc
$("#"+divname).show();
// On place le bloc
$("#"+divname).css('position', 'absolute');
$("#"+divname).css('top',pos_y+'px');
$("#"+divname).css('left',pos_x+'px');
clearTimeout(sl_timer_autocomplete);
sl_timer_autocomplete = setTimeout(function()
{
file2(url, function()
{
$("#"+divname).html(html)
console.log('1 - '+pos_x);
console.log('2 - '+$("#"+divname).width());
console.log('3 - '+ecran_larg);
if(pos_x+$("#"+divname).width()>ecran_larg)
{
$("#"+divname).css('left', 'auto');
$("#"+divname).css('right',5);
$("#"+divname).css('max-width', ecran_larg-10);
}
});
}, 500);
sl_autocomplete_open = true;
}
}
function sl_add_autocomplete_deplace_close()
{
// On cree le nom du div
divname = "sl_autocomplete_box";
if(sl_autocomplete_open)
{
// On detruit le bloc
$("#"+divname).remove();
clearTimeout(sl_timer_autocomplete);
sl_autocomplete_open = false;
}
}
function sl_add_record_produit()
{
// On enregistre le produit entré par l'utilisateur
$('#sl_add_error_box').hide();
url = '//www.forumconstruire.com/recits/sl_add_ajax.php'
data = 'content=record_produit&projet_id='+urlencode(sl_projet_id)+'&produit_id='+urlencode($('#sl_add_product input[name=produit_id]').val())+'&marque_id='+urlencode($('#sl_add_product input[name=marque_id]').val())+'&marque='+urlencode($('#sl_add_product input[name=marque]').val())+'&nom='+urlencode($('#sl_add_product input[name=modele]').val());
//alert(url);
$.ajax({
type: "POST",
xhrFields: {
withCredentials: true
},
url: url,
data: data,
success: function(html) {
data = html;
if(vn(data))
{
// OK
// On met a jour les variables
sl_produit_id = data;
// On passe à l'etape d'apres
sl_add_print(3);
}
else
{
// Pas OK
$('#sl_add_error_box').show();
}
}
});
}
function sl_add_record_avis_commerce()
{
// On enregistre le produit entré par l'utilisateur
url = '//www.forumconstruire.com/recits/sl_add_ajax.php?content=record_avis_shop';
data = 'commerce_id='+urlencode($('#sh_add_note_commerce input[name=commerce_id]').val())+'&projet_id='+urlencode($('#sh_add_note_commerce input[name=projet_id]').val())+'¬e='+urlencode($('#sh_add_note_commerce input[name=note]').val())+'&avis='+urlencode($('#sh_add_note_commerce textarea[name=avis]').val())+'';
//alert(url);
$.ajax({
type: "POST",
xhrFields: {
withCredentials: true
},
url: url,
data: data,
success: function(data) {
sl_add_print(4);
}
});
}
function sl_add_record_produit_info()
{
// On enregistre les infos que l'utilisateur a saisi sur son lien avec le produit
var chaine_url = '';;
$('input:checked[name=piece_id]').each(function()
{
chaine_url += '&piece_id[]='+urlencode($(this).val());
});
// On verifie si c'est OK pour le shop
commerce_id = $('#sl_add_commerce_id').val();
commerce_name = $('#sl_add_commerce_nom').val();
// On verifie la note
avis = $('#sl_add_textarea_avis').val();
note = $('#sl_add_product input[name=note]').val();
if(avis != '' && !vn(note))
{
alert('Vous avez donné votre avis, mais vous n\'avez pas donné de note au produit.\nCliquez sur le nombre d\'étoiles correspondant à la note que vous souhaitez donner.');
$('#sl_add_note_span').css('background', '#75BAFF');
$('#sl_add_note_span').css('padding', '3px');
$('#sl_add_note_span').css('border-radius', '2px');
}
else
{
$('#sl_add_note_span').css('background', 'none');
$('#sl_add_note_span').css('padding', '0');
$('#sl_add_note_span').css('border-radius', '0');
url = '//www.forumconstruire.com/recits/sl_add_ajax.php';
post = 'content=record_produit_info_complementaire&produit_id='+sl_produit_id+'&projet_id='+sl_projet_id+'&etape_id='+urlencode($('#sl_add_etape_id option:selected').val())+chaine_url+'&shop_type_id='+urlencode($('#sl_add_type_lieu_achat option:selected').val())+'&commerce_id='+urlencode($('#sl_add_product input[name=commerce_id]').val())+'&prix='+urlencode($('#sl_add_product input[name=prix]').val())+'¬e='+urlencode(note)+'&avis='+urlencode(avis);
$.ajax({
type: "POST",
xhrFields: {
withCredentials: true
},
url: url,
data: post,
success: function(html) {
data = html;
if(vn(data))
{
// OK
// On met a jour les variables
ok = data;
// On passe à l'etape d'apres
sl_add_print(35);
}
else
{
// Pas OK
$('#sl_add_error_box').show();
}
}
});
}
/*if(!vn(commerce_id) && commerce_name != '')
{
$('#sl_add_commerce_nom').val('');
if(!confirm('La saisie du nom du commerce est erroné. Souhaitez-vous valider tout de même votre saisie ?'))
{
return(false);
}
}*/
}
function sl_add_display_piece()
{
/* GERE LE DISPLAY DES PIECES EN FONCTION DE l'ETAPE */
piece_need = $('#sl_add_etape_id option:selected').attr('piece_needed');
if(piece_need > 0)
{
//console.log(piece_need);
$('.sl_add_piece_box').show(200);
if(piece_need == 2)
{
$('#sl_add_piece_id').prop('required', true);
console.log("required");
}
else
{
$('#sl_add_piece_id').prop('required', false);
}
}
else
{
$('.sl_add_piece_box').hide(200);
};
}
var sl_add_display_shop_need_shop = false;
function sl_add_display_shop(shop_type_id)
{
shop_id_needed = $('#sl_add_type_lieu_achat option:selected').attr('demande_commerce');
console.log('need shop ? '+shop_id_needed);
if(shop_id_needed == 1)
{
shop_type_id = $('#sl_add_type_lieu_achat option:selected').val();
file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=recherche_commerce&shop_type_id='+shop_type_id+"&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id, function() {
$('.sl_add_produit_cell_commerce_hidden').fadeIn();$('#sl_add_lieu_box').html(html); })
sl_add_display_shop_need_shop = true;
}
else
{
$('.sl_add_produit_cell_commerce_hidden').hide();
$('#sl_add_lieu_box').html('');
sl_add_display_shop_need_shop = false;
}
}
function sl_add_commerce_reel()
{
// Cette fonction affiche la liste des magasins correspondants
ville_id = $('#sl_add_commerce_ville_id option:selected').val();
nom = $('#sl_add_commerce input[name=commerce_name]').val();
if(!vn(ville_id))
{
$('#sl_add_commerce_ville_error_box').show('fast');
}
else
{
file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=liste_commerce_google&nom='+urlencode(nom)+'&ville_id='+urlencode(ville_id), function() {
data = html;
if(data != '0')
{
// OK
// On met a jour les variables
$('#sl_autocomplete_box').html(data);
}
else
{
// Pas OK
$('#sl_add_commerce_ville_error_box').show();
}
})
}
}
function sl_add_commerce_online()
{
// Cette fonction affiche la liste des magasins correspondants
url_commerce = $('#sl_add_url_commerce').val();
url = '//www.forumconstruire.com/recits/sl_add_ajax.php?content=add_commerce_online&url='+urlencode(url_commerce);
$.ajax(url, {
dataType: "json",
xhrFields: {
withCredentials: true
},
success: function(data) {
commerce_id = data["commerce_id"];
commerce_nom = data["commerce"];
if(vn(commerce_id))
{
// OK
// On met a jour les variables
$('#sl_autocomplete_box').hide('fast');
$('#sl_add_commerce_nom').val(commerce_nom);
$('#sl_add_commerce_id').val(commerce_id);
}
else
{
// Pas OK
alert('Impossible de retrouver les informations de ce site internet.');
$('#sl_autocomplete_box').hide('fast');
$('#sl_add_commerce_nom').val('');
$('#sl_add_commerce_id').val('0');
}
}
});
}
function sl_add_commerce_google(place_id)
{
if(place_id != '')
{
url = '//www.forumconstruire.com/recits/sl_add_ajax.php?content=commerce_google_info&place_id='+place_id;
$.ajax(url, {
dataType: "json",
xhrFields: {
withCredentials: true
},
success: function(data) {
commerce_id = data["commerce_id"];
commerce_nom = data["nom"];
if(vn(commerce_id))
{
// OK caca
$('#sl_autocomplete_box').hide('fast');
$('#sl_add_commerce_nom').val(commerce_nom);
$('#sl_add_commerce_id').val(commerce_id);
}
else
{
// Pas OK
alert('Impossible de retrouver les informations de ce commerce.');
$('#sl_autocomplete_box').hide('fast');
$('#sl_add_commerce_nom').val('');
$('#sl_add_commerce_id').val('0');
}
}
});
}
}
function sl_add_piece(projet_id, nom, type_id, surface)
{
url = '//www.forumconstruire.com/recits/ajax.php?content=add_piece&projet_id='+projet_id+'&nom='+nom+'&type_id='+type_id+'&surface='+surface;
$.ajax(url, {
xhrFields: {
withCredentials: true
},
success: function(data) {
if(data == '1')
{
// OK
sl_add_print(3);
closeBox('');
}
else
{
// Pas OK
alert('Il manque quelque chose non ?');
}
}
});
}
function sl_photo_next(start, etape_id, piece_id)
{
if(!vn(start))
start = 0;
if(!vn(etape_id))
etape_id = 0;
if(!vn(piece_id))
piece_id = 0;
$.ajax("//www.forumconstruire.com/recits/sl_add_ajax.php?content=choix_photos&projet_id="+sl_projet_id+"&produit_id="+sl_produit_id+"&force_etape_id="+etape_id+"&force_piece_id="+piece_id+"&start="+start+"&mode=photo", {
xhrFields: {
withCredentials: true
},
success: function(data) {
photo_id = $(data).find('img[photo_a_tagguer=1]').attr('photo_id');
//alert('ok');
$('#sl_photo_selector_photo_contener').html(data);
$('#image_sladd_'+photo_id).load(function() {
photo_get_tag(photo_id, '16', sl_produit_id, 1, 'sladd');
})
//sl_add_place_repere_photo();
}
});
}
function sl_add_pick_picture(photo_id, etape_id, piece_id, start, event)
{
if(!vn(photo_id))
return(0);
if(!vn(etape_id))
etape_id = 0;
if(!vn(piece_id))
piece_id = 0;
if(!vn(start))
start = 0;
// L'image
var image = $('#image_sladd_'+photo_id);
var container = $('#image_container_sladd_'+photo_id);
// On choppe la taille de l'image
image_width = image.width();
image_height = image.height();
console.log('Taille : '+image_width+' / '+image_height);
// On choppe l'emplacement de l'image
image_position = image.offset();
image_position_x = image_position.left;
image_position_y = image_position.top;
console.log('Image position : '+image_position_x+' / '+image_position_y);
container_position = container.offset();
container_position_x = container_position.left;
container_position_y = container_position.top;
console.log('Container position : '+container_position_x+' / '+container_position_y);
// On choppe la position du clic
var clic_x = Math.round(event.clientX);
var clic_y = Math.round(event.clientY+$(window).scrollTop());
console.log('Clic : '+clic_x+' / '+clic_y);
// On calcule le ratio
image_clic_x = clic_x-image_position_x;
image_clic_y = clic_y-image_position_y;
console.log('Clic image : '+image_clic_x+' / '+image_clic_y);
// On place un pointeur
container.append('');
var pointer = $('#sl_add_pointer');
pointer.css('position', 'absolute');
pointer.css('left', (image_clic_x-8)+'px');
pointer.css('top', (image_clic_y-8)+'px');
$('#image_sladd_'+sl_produit_id).remove();
// On fait le ratio
ratio_x = ((image_clic_x*100)/image_width);
ratio_y = ((image_clic_y*100)/image_height);
console.log('Ratio : '+ratio_x+' / '+ratio_y);
// On balance :)
file2('//www.forumconstruire.com/recits/sl_add_ajax.php?content=position_clic&photo_id='+photo_id+'&produit_id='+sl_produit_id+'&start='+start+'&etape_id='+etape_id+'&piece_id='+piece_id+'&clic_x='+ratio_x+'&clic_y='+ratio_y+'', function() {
// On change le texte du lien
$('#sl_photo_selector_link_stop').html(' C\'est terminé !');
// On affiche l'image suivante
setTimeout(function() { $('#sl_add_pointer').remove();sl_photo_next(Number(start)+1, etape_id, piece_id); }, 500);
});
}
function sl_add_pick_picture_del(photo_id)
{
if(!vn(photo_id))
return(0);
// On balance :)
file('//www.forumconstruire.com/recits/sl_add_ajax.php?content=position_clic&photo_id='+photo_id+'&produit_id='+sl_produit_id+'&del=1');
// On change le texte du lien
$('#sl_photo_selector_link_stop').html(' C\'est terminé !');
// on vire le pointer
$('#sl_add_pointer').remove();
// On ferme la box si elle existe
closeBox('');
}
function sl_add_place_repere_photo(photo_id)
{
// Si la photo a deja été taggue, on place le repere
console.log('function ok');
photo = $('#image_'+photo_id);
$('#sl_add_pointer').remove();
if(photo.length > 0)
{
console.log('photo ok');
x = photo.attr('x');
y = photo.attr('y');
if(vn(x) && vn(y))
{
console.log('position ok');
// On choppe la taille de l'image
image_width = $('#sl_photo_selector_photo img').width();
image_height = $('#sl_photo_selector_photo img').height();
console.log('Taille : '+image_width+' / '+image_height);
// On choppe l'emplacement de l'image
image_position = photo.offset();
image_position_x = image_position.left;
image_position_y = image_position.top;
// On fait le ratio
pos_x = image_position_x+((image_width/100)*x);
pos_y = image_position_y+((image_height/100)*y);
// On place un pointeur
$('body').append('');
$('#sl_add_pointer').css('position', 'absolute');
$('#sl_add_pointer').css('left', (pos_x-8)+'px');
$('#sl_add_pointer').css('top', (pos_y-8)+'px');
}
}
}
// On lance
/*
var sl_projet_id = ''; // Obligatoire
var sl_photo_id = ''; // Facultatif
var sl_etape_id = ''; // Facultatif
var sl_piece_id = ''; // Facultatif
var sl_produit_id = ''; // Facultatif
*/
function sl_add_launch()
{
if(vn(sl_produit_id) && vn(sl_projet_id) && sl_pick_photo == 1)
{
sl_add_print(4);
}
else if(vn(sl_produit_id) && vn(sl_projet_id))
{
sl_add_print(2);
}
else
sl_add_print(1);
$('#general_bloc').click(function() {
sl_add_autocomplete_deplace_close()
})
}