var search_term_value = 'Rechercher par marque';

window.onload = function(){
  slideshow();
  search();
  login();
  pressReviewSlideshow();
  caddie();
  manageCommand();
  aboutPayment();
  setInterval("clignotement('logo_payment')", 1000);
  payment();
  slideshowPro();
}

function payment(){
  var payment_choice = document.getElementById('payment_choice');

  // soumission du formulaire
  if(payment_choice){
    var payment_choice_button = document.getElementById('payment_choice_button');
    if(payment_choice_button){
      payment_choice_button.onclick = function(){
        payment_choice.submit();
      }
    }
  
    // changement de l'image du bouton de soumission
    var pc = payment_choice.getElementsByTagName('INPUT');
    for(var i=0; i<pc.length; i++){
      if(pc[i].type == 'radio'){
        pc[i].onclick = function(){
          if(this.value == 'card'){
            payment_choice_button.src = SITEPATH + '/img/paiement_card.gif';
          }  
          if(this.value == 'paypal'){
            payment_choice_button.src = SITEPATH + '/img/paiement.gif';
          } 
          if(this.value == 'check'){
            payment_choice_button.src = SITEPATH + '/img/paiement.gif';
          }                 
        }
      }
    }
  
  }
}

function slideshow(){
  var mainPhoto = document.getElementById('product_photo');
  var slideshowPhotosContainer = document.getElementById('product_slideshow');
  if(slideshowPhotosContainer){
    var slideshowPhotos = slideshowPhotosContainer.getElementsByTagName('IMG');
    for(var i=0; i<slideshowPhotos.length; i++){
      slideshowPhotos[i].onclick = function(){
        // remplacer les dimensions de la photo avec une Regex
        var reg = new RegExp("200_120", "g");
        mainPhoto.src = this.src.replace(reg,'450_350');
      }
    }
  }
}

function search(){
  var search_form = document.getElementById('search_form');
  var search_term = document.getElementById('search_term');
  var search_submit_button = document.getElementById('search_submit_button');
  
  search_term.onfocus = function(){
    if(this.value == search_term_value){
      this.value = '';
    }
  }
  search_term.onblur = function(){
    if(this.value == ''){
      this.value = search_term_value;      
    }
  }
  search_submit_button.onclick = function(){
    if(search_term.value != search_term_value){
      search_form.submit();
    }
  }
}

function login(){
  var user_submit_button = document.getElementById('user_submit_button');
  if(user_submit_button){
    user_submit_button.onclick = function(){
      this.parentNode.parentNode.submit();
    }
  }
}

function favoris() {
  if (navigator.appName != 'Microsoft Internet Explorer'){ 
    window.sidebar.addPanel("Vincils - Vêtements originaux en série limitée et exemplaire unique","http://www.vincils.com",""); 
  }else{
    window.external.AddFavorite("http://www.vincils.com/","Vincils - Vêtements originaux en série limitée et exemplaire unique"); 
  } 
}

function caddie(){
  // Mise à jour des sous totaux au chargement de la page
  globalSubTotalsUpdate();
  
  // Mise à jour du total au chargement de la page
  updateTotal();
  
  // soumission du formulaire
  var add_to_caddies = getElementsByClassName('IMG','add_to_caddie');
  for(var i=0; i<add_to_caddies.length; i++){
    add_to_caddies[i].onclick = function(){
      this.parentNode.submit();
    }
  }
  
  // boutons de quantités
  var mores = getElementsByClassName('A','quantity_select_more');
  for(var j=0; j<mores.length; j++){
    mores[j].onclick = function(){
      var cont = this.parentNode;
      var linecont = this.parentNode.parentNode.parentNode;
      var inp = linecont.getElementsByTagName('INPUT');
      var stock = inp[1];
      var n = cont.getElementsByTagName('INPUT');
      var quantity = n[0];
      if(quantity.value < stock.value){
        quantity.value = eval(quantity.value)+1;
        updateSubTotal(cont.parentNode.parentNode,quantity.value);
        updateTotal();
        updateQuantity(cont,quantity.value);
      }
    }
  }
  var less = getElementsByClassName('A','quantity_select_less');
  for(var k=0; k<less.length; k++){
    less[k].onclick = function(){
      var cont = this.parentNode;
      var n = cont.getElementsByTagName('INPUT');
      var quantity = n[0];
      if(quantity.value > 1) quantity.value = eval(quantity.value)-1;
      updateSubTotal(cont.parentNode.parentNode,quantity.value);
      updateTotal();
      updateQuantity(cont,quantity.value);
    }
  }  
  
  // sélection de la taille dans les pages produit
  var sizes_selects = getElementsByClassName('SELECT','size_select');
  var psize = document.getElementById('psize');
  for(var l=0; l<sizes_selects.length; l++){
    sizes_selects[l].onchange = function(){
      psize.value = this.value;
    }
  }
}

function updateQuantity(cont,qty){
    var parent = cont.parentNode.parentNode;
    var param = parent.id;
    var url = SITEPATH + '/ajax/updateQuantity.php' + param + '&qty=' + qty;
		xhr = vincils_xhr();	
		xhr.open("GET",url,true);
		xhr.onreadystatechange = function(){
      if(xhr.readyState == 4 && xhr.status == 200){
        // todo
      }
		}
		xhr.send(null);
	  return xhr; 	
} 

function updateSubTotal(cont,n){
  // récupération de l'input d'affichage
  var inputs = cont.getElementsByTagName('INPUT');
  var resCont = null;
  for(var i=0; i<inputs.length; i++){
    if(inputs[i].name == 'sub_total'){
      resCont = inputs[i];
    }
  }
  
  // récupération du prix
  var price = null;
  var p = cont.getElementsByTagName('SPAN');
  for(var j=0; j<p.length; j++){
    if(p[j].className == 'price'){
      price = p[j].innerHTML;
      break;
    }
  }
  
  // calcul et mise à jour du sous total
  resCont.value = (n*price);
}

function updateTotal(){
  // récupération de l'input d'affichage du total et mise à zéro
  var total = document.getElementById('caddie_total_price');
  if(total) total.value = 0;
  
  // récupération et addition des sous-totaux
  var n = 0;
  var subs = getElementsByClassName('INPUT','sub_total');
  
  if(total && subs){
    for(var i=0; i<subs.length; i++){
      var st = subs[i].value;
      total.value = eval(total.value)+eval(st);
    }
    
  }
}

function globalSubTotalsUpdate(){
  var products = getElementsByClassName('TR','caddie_product_line');
  for(var i=0; i<products.length; i++){
    var cont = products[i];
    
    // récupération du prix
    var price = null;
    var p = cont.getElementsByTagName('SPAN');
    for(var j=0; j<p.length; j++){
      if(p[j].className == 'price'){
        price = p[j].innerHTML;
        break;
      }
    }
    
    // récupération de la quantité
    var quantity = null;
    var q = cont.getElementsByTagName('INPUT');
    for(var k=0; k<q.length; k++){
      if(q[k].className == 'quantity_select'){
        quantity = q[k].value;
        break;
      }
    }

    updateSubTotal(cont,quantity);
  }
}

function getElementsByClassName(tagName,className){
  var out = new Array();
  var elements = document.getElementsByTagName(tagName);
  for(var i=0; i<elements.length; i++){
    if(elements[i].className == className){
      out.push(elements[i]);
    }
  }
  return out;
}

function pressReviewSlideshow(){
  var articles_minis = getElementsByClassName('IMG','article_mini');
  var article_principal = document.getElementById('article_principal');
  for(var i=0; i<articles_minis.length; i++){
    articles_minis[i].onclick = function(){
      article_principal.src = this.src;
    }
  }
}

// commande
function manageCommand(){
  account_verification();
}
function account_verification(){
  var form_user_modify = document.getElementById('user_modify');
  var user_modify_submit = document.getElementById('user_modify_submit');
  
  if(form_user_modify && user_modify_submit){
    user_modify_submit.onclick = function(){
      form_user_modify.submit();
      return false;
    }
  }
}

// about payment
function aboutPayment(){
  var about_payment = document.getElementById('logo_payment');
  var payment_info = document.getElementById('payment_info');
  about_payment.onclick = function(){
    payment_info.style.display = 'block';
    return false;
  } 
  payment_info.onclick = function(){
    this.style.display = 'none';
  } 
}

function clignotement(id){
    if (document.getElementById(id).style.visibility=="visible")
       document.getElementById(id).style.visibility="hidden";
    else
       document.getElementById(id).style.visibility="visible";
}

// Ajax
function vincils_xhr(){
	var XHR = null;
	if(window.XMLHttpRequest) { // Firefox
		XHR = new XMLHttpRequest();
	} else {
		if(window.ActiveXObject) { // IE
			try {
				XHR = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				XHR = new ActiveXObject("Microsoft.XMLHTTP");
			}
	          }else{
			alert("Votre navigateur ne supporte pas les objets XMLHttpRequest");
	          }
	}
	return XHR;
}

function slideshowPro(){
  var thumbs = getElementsByClassName('IMG','slideshow_thumbnail');
  var main = document.getElementById('slideshow_main_image');
  for(var i=0; i<thumbs.length; i++){
    thumbs[i].onclick = function(){
      main.src = this.src;
    }
  }
}
