/**
  * Module virtuemart permettant
  * le passage de commandes directes
  *
  * Les fonctions sont prefixees pour eviter conflits.
  *
  * @author atissier@altima.fr
  * Date : 25/07/2007
  */


function speedy_order_blank_line_element(num){
	if( num == 2 ){var tsClasssName = 'sectiontableentry1 sectiontableentryfirst';}else{var tsClasssName = 'sectiontableentry1';}
	 var tr = new Element('tr',{'class' : tsClasssName});

	 var input1 = new Element('input', {
	  	'value'			: '',
	  	'autocomplete'  : 'off',
	  	'class' 		: 'item_ref', 
	  	'type'  		: 'text',
		'id'			: 'item_ref_' + num,
	  	'name' 			: 'item_ref[' + num + ']' });

	 input1.addEvent('change', speedy_order_change_reference.bindWithEvent(input1));
	 input1.addEvent('keydown', keypressspeedy);

	 var td1 = new Element('td').addClass('c0').adopt(input1);

	var td2 = new Element('td', {'class' : 'item_price'});
	var input25 = new Element('input', 
	  	{
	  		'class' : 'item_qte',
	  		'value' : '1',
	  		'type'  : 'text',
	  		'name'  : 'item_qte[' + num + ']',
	  		'id'  : 'item_qte_'+num
	  	}
	  );
		 input25.addEvent('change', speedy_changeqte.bindWithEvent(input25));
	td2.adopt(input25);
	
	  
	  var td3 = new Element('td', {'class' : 'item_price'}).setHTML('&nbsp;');
	  
	  var input5 = new Element('span',
		{
	  		'class'  : 'price_total', 
	  		'id'   : 'price_total_' + num
	  	}
	  );

	  var td4 = new Element('td', {'class' : 'item_price_lig'}).adopt(input5);
	  
	  var td5 = new Element('td', {'class' : 'item_response'}).setHTML('<div>&nbsp;</div>');
	  
	  var input4 = new Element('a', 
	  	{
	  		'class'  : 'item_supp', 
	  		'type'   : 'input',
	  		'name'   : 'item_supp[' + num + ']',
	  		'border' : '0',
            'href'   : '#',
	  		'onclick'    : 'return false;'
	  	}
	  ).setHTML('<img src="/templates/altima/images/img-supprimer00.gif" alt="Supprimer">');
	  
	  input4.addEvent('click',speedy_order_supp_line.bindWithEvent(input4));
	  
	  var td6 = new Element('td').addClass('c6').adopt(input4);	  
	  tr.adopt(td1).adopt(td2).adopt(td3).adopt(td4).adopt(td5).adopt(td6);	  
	  return tr;
}

/**
  * Met une ligne a blanc
  */
function speedy_order_blank_line(e){
  $('speedy_order_row_num_max').value=eval($('speedy_order_row_num_max').value+"+1");  
  e.replaceWith(speedy_order_blank_line_element($('speedy_order_row_num_max').value));
}

/**
  * Permet de controler si la ligne est vide
  * ou si elle est en erreur.
  */

function speedy_order_is_blank_line(e){
  // En l'etat actuel, l'AJAX retourne un span
  // en cas d'erreur et un div en cas de ligne remplie.
  // On peut donc considerer qu'une ligne remplie equivaut a un div.
  var listeDivs = e.getElementsByTagName('div');
  return (listeDivs.length==0);
}

/**
  * Permet d'ajouter une ligne vierge
  * au tableau
  */
function speedy_order_add_blank_line(){

  var speedy_order_row_num_max =  eval($('speedy_order_row_num_max').value+"+1");
  $('speedy_order_row_num_max').value = speedy_order_row_num_max;

  var tr = speedy_order_blank_line_element (speedy_order_row_num_max); 

  $$('#speedy_order tbody').adopt(tr);
}

/**
  * Supprime la ligne courante
  */
function speedy_order_supp_line(){
                                        
  // S'il n'y a pas qu'une seule ligne dans le tableau
  if ($$('#speedy_order tbody tr').length > 1){          
	  // Vérifiez qu'il y en a bien une qui n'est pas renseignee...
	  //TODO : pas fini !!	  
	  if (false){
	    // Si aucune non renseignee, on met a blanc la ligne courante
	  } else {
	    // Si une est non renseignee, on supprime la ligne courante
	    this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
        this.form.submit();
	  }            
  } else {
    // S'il n'y a qu'une seule ligne dans le tableau
    // on doit la vider de son contenu.... 
    speedy_order_blank_line(this.parentNode.parentNode);
  }
  calcultotalspeedy();        
  return false;
}

/**
  * Changement de references
  */
function speedy_order_change_reference(){    
    //Recuperation de la cellule a modifier 

    var cellules = this.parentNode.parentNode.childNodes;
                
    var cellule_response =  null;
    var cellule_price =  null;
                
    for (var i = 0; i < cellules.length; i++) 
    {
      // faire quelque chose avec chaque enfant en tant que children[i]
      // NOTE : la liste n'est pas une copie, l'ajout ou le retrait 
      // d'éléments modifiera la liste
      if (cellules[i].className  == "item_price"){
        cellule_price = cellules[i];
      } 
                                                  
      if (cellules[i].className  == "item_response"){
        cellule_response = cellules[i].getFirst();
      }                 
    }
        

    // Les pages chargées via AJAX doivent imperativement etre affectees
    // a un template se contentant de charger le mainbody.
                  
    var debut = this.name.indexOf('[');
    var fin   = this.name.lastIndexOf(']');
    var num   = this.name.substring(debut+1,fin);
	var dispo = 0;
	var product = 0;
	var sku = this.value;
	
	var ajaxRequest = new Ajax(
    	"/index.php?option=com_virtuemart&page=speedy_order.line&Itemid=32&task=dispo&num_ligne="+num+"&sku="+sku+"&no_html=1",
    	{
    		method: 'get', 

    		onSuccess: function(html_content)
			{
				var html_content = html_content.split(';');
				dispo=html_content[0];
				product=html_content[1];
				
				String.prototype.replaceAll = function(varIn,varOut) {
					if(this.indexOf(varIn)==-1) return this;
					return this.split(varIn).join(varOut);
				}
				
				sku = sku.replaceAll(" ","");
				$('item_ref_'+num).value=sku;
				
				if(dispo==0 && dispo!=="") { 
					$('item_ref_'+num).value='';
					RecupVariant(product,1);
				}
				else{
			
				    var ajaxRequest = new Ajax(
				    	"/index.php?option=com_virtuemart&page=speedy_order.line&Itemid=32&task=price&num_ligne="+num+"&sku="+sku+"&no_html=1",
				    	{
				    		method: 'get',

				    		onSuccess: function(html_content)
							{
								cellule_price.innerHTML=html_content;
								speedy_changeqte($("item_qte_"+num),1);
							}}
				    	);
				    ajaxRequest.request();
			
					var ajaxRequest = new Ajax(
				    	"/index.php?option=com_virtuemart&page=speedy_order.line&Itemid=32&num_ligne="+num+"&sku="+sku+"&no_html=1",
				    	{
				    		method: 'get',

				    		onSuccess: function(html_content)
							{
								cellule_response.setHTML(html_content);
							}}
				    	);
					ajaxRequest.request();
			
				}
				
			//fireEvent();
				
			//$("item_qte_"+num).fireEvent("onchange");
			    return num;
			}}
    	);
	 ajaxRequest.request();


}

function speedy_changeqte(qte,test){

	if(test!=1){		
		var debut = this.name.indexOf('[');
	    var fin   = this.name.lastIndexOf(']');
	    var id   = this.name.substring(debut+1,fin);
   	    qte = $("item_qte_"+id);
	    if(!/^[0-9]*$/.test(qte.value))
		qte.value = 1;
	 }else{
	 	var debut = qte.name.indexOf('[');
    	var fin   = qte.name.lastIndexOf(']');
	    var id   = qte.name.substring(debut+1,fin);
	    qte = $("item_qte_"+id);
	    if(!/^[0-9]*$/.test(qte.value))
		qte.value = 1;
    }

	/*qte = $("item_qte_"+id);

	if(!/^[0-9]*$/.test(qte.value))
		qte.value = 1;*/
	
	
	if($("price_"+id)){
	price = $("price_"+id).value;
	if(Number.toInt(qte.value))
		total = (price*qte.value).round(2);
	else
		total = 0;
	$("price_total_"+id).setHTML(total.toFixed(2) + ' &euro;');
	$("price_total_"+id).setProperty('value', total.toFixed(2));

	calcultotalspeedy();
	}
}

function speedy_order_onload (){
  var item_supp = $E('#speedy_order * input.item_supp');
  var item_ref  = $E('#speedy_order * input.item_ref');
  
  item_supp.addEvent( 'click'   , speedy_order_supp_line.bindWithEvent(item_supp));
  item_ref.addEvent(  'change' , speedy_order_change_reference.bindWithEvent(item_ref));
}

function calcultotalspeedy(){
	total = $("total_prix");
	spantotal = $('total_prix_span');
	pt = $$("span.price_total");
	count = 0;
	for(var i=0;i<pt.length;i++){
		if(Number.toInt(pt[i].getProperty('value')))
	 count += Number.toFloat(pt[i].getProperty('value'));
	}
	prix = count.round(2).toFixed(2);
	total.value = prix;
	prix = (prix+" ").replace(/\./,",<small>");
	spantotal.setHTML("Total TTC : "+ prix + " <small>&euro;</small></small>");
}
/*
if(!window.ie6){
	window.addEvent('domready', speedy_order_onload);
} else {
	window.addEvent('load', speedy_order_onload);
}*/

function keypressspeedy(e){
	if(e.keyCode==13){
		this.fireEvent("change");
	}

}

