/**
 * Librairie de fonction JavaScript
 */

/**
 * Open a popup window
 */
function newwin(url, scroll, largeur, hauteur, top, left, resizable)
{
	if ( top == null )
		top = 0;
	
	if ( left == null )
		left = 0;
    
	if ( resizable == null )
		resizable = 1; 

	top += 10;
	left += 10;

	if ( largeur == 0 )
		largeur = window.screen.availWidth;
	
	if ( hauteur == 0 )
		hauteur = window.screen.availHeight;

	window.open(url,'','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=' + scroll + ',resizable=' + resizable + ',width=' + largeur + ',height=' + hauteur + ',top=' + top + ',left=' + left + ',copyhistory=0,dependent=1')
}

// compte le nombre de caractre d'un type texte
function count_chars(obj,max_chars,obj_cpt)
{
  var value = obj.value;
	var current_length = value.length;

	reste_chars = max_chars - current_length;

	obj_cpt.value = reste_chars;

	if( current_length >= max_chars )
	  alert(max_chars + " caractres dpasser !!!\nTous les caractres au del du " + max_chars + "me seront tronqus !!!");
}

// transfert une option d'une liste  choix simple ou multiple vers une autres liste similaire
function add(obj_org,obj_dest)
{
  for(k=0; k < obj_org.length; k++)
  {
		if(obj_org.options[k].selected)
		{
		  var myOption = document.createElement("OPTION");

		  myOption.text  = obj_org.options[k].text;
		  myOption.value = obj_org.options[k].value;

		  obj_dest.options[obj_dest.length] = myOption;
		  obj_org.options[k] = null;
			k--;

			delete myOption;
		}
  }
}

function remove(obj)
{
  for(k=0; k < obj.length; k++)
  {
		if(obj.options[k].selected)
		{
		  obj.options[k] = null;
			k--;
		}
  }
}

// selectionne toutes les options d'une liste  choix multiple
function select_all(obj)
{
  for(var k=0; k < obj.length; k++)
	  obj.options[k].selected = true;
}

// amlioration de la fonction prcdente
function selectList(val,obj)
{
  if(document.getElementById(obj).options == undefined)
    return false;

  for(var k=0; k < document.getElementById(obj).options.length; k++)
    document.getElementById(obj).options[k].selected = val;
}

// selectionne une option d'une liste  choix simple, ou la premire correspondance d'une liste  choix multiple
function selectValue(obj,val)
{
  for(var k=0; k < obj.length; k++)
  {
    if(obj.options[k].value == val)
    {
	    obj.options[k].selected = true;
	    break;
	  }
	}
}

// quivalent de la foncion str_pad de PHP
function strPad(str,pad_length,pad_string,pad_type)
{
  if( (str == null) || (pad_length == undefined) )
    return str;

  if(pad_string == null)
    pad_string = " ";

  if(pad_type == null)
    pad_type = "RIGHT";

  var add_string = "";

  for(var k=str.length; k < pad_length; k++)
    add_string += pad_string;

  switch(pad_type)
  {
    case "LEFT":
      return add_string + str;
      break;
    case "RIGHT":
      return str + add_string;
      break;
    default:
      break;
  }
}

// vrifie si l'URL d'appel d'un popup est une page prcise
function check_parent_url(string_url)
{
  var url_parent = opener.location.href;

  if( url_parent.substring( url_parent.lastIndexOf('/')+1 , url_parent.indexOf('?') ) == string_url)
    return true;

  return false;
}

// Remplace la virgule par un point
function remove_virgule(obj)
{
  var prix = obj.value;
  var prix_2 = "";

	for(var k=0; k < prix.length; k++)
	{
	  if(prix.substring(k,k+1) == ",")
		  prix_2 += ".";
	  else
		  prix_2 += prix.substring(k,k+1);
	}

	obj.value = prix_2;
}

// Calcul le prix HT à partir d'un prix TTC
function calcul_ht(prix, obj)
{
	var prix_ht;

	if ( isNaN(prix) )
	{
		obj.value = 0;
	}
	
	prix_ht = prix / 1.196;
	prix_ht = Math.round(prix_ht*100) / 100;
	obj.value = prix_ht;
	
}

// calcul la nouvelle marge en fonction du prix d'achat HT négocier et du prix de vente négocier
function calcul_marge(pvttc, pa, divName)
{
	var marge;

	if ( isNaN(pvttc) )
	{
		divName.value = 0;
	}

	pvht = pvttc / 1.196;
	pvht = Math.round(pvht*100) / 100;

	marge = ((pvht-pa) / pvht) * 100;
	marge = (Math.floor(marge*10)) / 10;
	divName.value = marge;
	
}

// Calcul le prix TTC  partir d'un prix HT
function calcul_ttc(prix, obj)
{
	var prix_ttc;
  
	if ( isNaN(prix) )
	{
		obj.value = 0;
	}

	prix_ttc = prix * 1.196;
	prix_ttc = Math.round(prix_ttc);
	obj.value = prix_ttc;
}

// Calcul la marge  partir du prix de vente HT et du prix d'achat HT
/*function calcul_marge(prix_vente_ht,prix_achat_ht,obj)
{
  if( (prix_vente_ht > 0) && (prix_achat_ht > 0) )
	{
    var marge;
    marge = Math.round(((prix_vente_ht - prix_achat_ht) / prix_vente_ht) * 100);

		if(marge <= 0)
		  obj.value = "0";
		else
 	    obj.value = marge;
	}
	else if(prix_achat_ht == 0)
	  obj.value = "100";
}
*/
function calcul_prix_vente(marge,prix_achat_ht,obj)
{
  if( prix_achat_ht > 0 )
	{
    var prix_vente;
    prix_vente = parseFloat(prix_achat_ht) + Math.round( (prix_achat_ht * marge) / 100 );

		if(prix_vente <= 0)
		  obj.value = "0";
		else
 	    obj.value = prix_vente;
	}
	//else if(prix_achat_ht == 0)
	//  obj.value = "100";
}

function check_email(email)
{
	if( (email.indexOf("@",1) > -1) && (email.length > 2) && (email.indexOf(".",email.indexOf("@",1)+1) > 1) )
	{
		return true;
	}
	else
	{
		return false;
	}
}

function afficheProduit(id, display, evt, receiveDiv)
{
	var offsetX = 0;
	var offsetY = 0;
	
	if ( (receiveDiv != undefined) && (receiveDiv != '') )
	{	
		offsetX = parseInt(receiveDiv.offsetLeft);
		offsetY = parseInt(receiveDiv.offsetTop);
	}
	
	if ( document.documentElement )
	{
		x = evt.clientX + document.documentElement.scrollLeft;
		y = evt.clientY + document.documentElement.scrollTop;
	}
	else // le reste
	{
		x = evt.pageX - 10;
		y = evt.pageY;
	}

	if ( x <= 0 || y <= 0 )
	{
		return false;
	}
	
	x -= offsetX;
	y -= offsetY;

	element = document.getElementById(id);
	
	x += 2;
	y += 5;
	
	//self.status = x + ' > ' + self.innerWidth + ' - ' + parseInt(element.style.width);

	var el_width = 0;
	
	if (element.firstChild != undefined && element.firstChild.tagName == 'IMG')
	{
		el_width = parseInt(element.firstChild.width);
	}
	else
	{
		el_width = parseInt(element.style.width);
	}
	
	var el_height = 0;
	
	if (element.firstChild != undefined && element.firstChild.tagName == 'IMG')
	{
		el_height = parseInt(element.firstChild.height);
	}
	else
	{
		el_height = parseInt(element.style.height);
	}
	
	//self.status = el_width + ' / ' + el_height;
	
	//self.status = y + ' > ' + self.outerHeight + ' + ' + self.scrollY + ' - ' + el_height;
	
	if (x > (self.innerWidth - el_width))
	{
		x = self.innerWidth - el_width - 40;
	}
	
	if (y > (self.innerHeight + self.scrollY - el_height))
	{
		y -= el_height + 15;
	}
	
	//self.status= x;

	element.style.left 	= x + "px";
	element.style.top 	= y + "px";
	
	element.style.display = display;
	
	return true;
}

//Calcul le total d'une commande
/*
function calculCommande(j, devis)
{
	totalcommande = document.getElementById('totalCommande');
	total = 0;
	i = 1;
	j = Number(j);

	while(i < (j + 1))
	{
		if (document.getElementById('qte' + i).value != '')
		{
			//total += parseFloat(document.getElementById('qte' + i).value) * parseFloat(document.getElementById('prix' + i).value);
			document.getElementById('sous_total' + i).value = document.getElementById('qte' + i).value * document.getElementById('prix' + i).value;
			total += document.getElementById('sous_total' + i).value;
		}
		i++;
	}

	if (devis)
	{
		remise = document.getElementById('remise');
		moderemise = document.getElementById('moderemise');
		remisebrut = document.getElementById('remisebrut');
		if(moderemise.value == '%')
		{
			total = total - (total * (remise.value / 100));
			remisebrut.value = (total * (remise.value / 100));
		}
		else if(moderemise.value == '')
		{
			total = total - remise.value;
			remisebrut.value = remise.value;
		}
	}

	totalcommande.value = total;
}
*/


/**
* Fonctions de calculs
*/
function calc_remise_ttc(type, i, frm)
{
	if( isNaN(frm.elements["prix_t_ttc[]"][i].value) )
	{
		frm.elements["rem_t_ttc[]"][i].value = 0;
		return true;
	}
/*
	switch(type)
	{
		case "eur":
			frm.elements["rem_t_ttc[]"][i].value =  parseFloat(frm.elements["prix[]"][i].value);
			frm.elements["rem_t_ttc[]"][i].value = Math.round(frm.elements["rem_eur[]"][i].value * 100) / 100;
			break;
	}
*/

	return true;
}

function calc_s_total(i, frm, type)
{
	var qte = parseFloat(frm.elements["qte[]"][i].value);
	
	if ( type == 'ht')
	{
		var prix_u 			= parseFloat(frm.elements["prix_u_ht[]"][i].value);	// Valeur		
		var remise_t 		= parseFloat(frm.elements["rem_t_ht[]"][i].value);		// Valeur
		var el_sous_total	= frm.elements["prix_t_ht[]"][i];						// Objet
		
		if ( frm.elements["prime_u_ht[]"] != undefined )
		{
			var prime_u 	= parseFloat(frm.elements["prime_u_ht[]"][i].value);	// Valeur
		}
	}
	else
	{
		var prix_u 			= parseFloat(frm.elements["prix_u_ttc[]"][i].value);		// Valeur		
		var remise_t 		= parseFloat(frm.elements["rem_t_ttc[]"][i].value);		// Valeur
		var el_sous_total	= frm.elements["prix_t_ttc[]"][i];						// Objet
		
		if ( frm.elements["prime_u_ttc[]"] != undefined )
		{
			var prime_u 	= parseFloat(frm.elements["prime_u_ttc[]"][i].value);	// Valeur
		}
	}

	if ( isNaN(qte) )
	{
		qte = 0;
		//return false;
	}
	
	if ( isNaN(prix_u) )
	{
		prix_u = 0;
	}
	
	if ( isNaN(prime_u) )
	{
		prime_u = 0;
	}
	
	if ( isNaN(remise_t) )
	{
		remise_t = 0;
	}
	
	el_sous_total.value = (qte * prix_u) + (qte * prime_u) - remise_t;
	el_sous_total.value = parseInt(Math.round(el_sous_total.value * 100)) / 100;

	if( isNaN(el_sous_total.value) )
	{
		el_sous_total.value = 0;
	}
	
	return true;
}

function calc_total(frm)
{
	var	total_ttc 	= 0;
	var total_ht 	= 0;
	
	for( var k=0; k < frm.elements["qte[]"].length; k++)
	{
		if ( isNaN(frm.elements["qte[]"][k].value) )
		{
			continue;
		}
		
		calc_s_total(k, frm, 'ttc');
		calc_s_total(k, frm, 'ht');

		if( (frm.elements["prix_t_ttc[]"][k].value != "") && !isNaN( frm.elements["prix_t_ttc[]"][k].value ) )
		{
			total_ttc += parseFloat(frm.elements["prix_t_ttc[]"][k].value);
		}
		
		/*
		if( (frm.elements["prime_u_ttc[]"] != undefined) && (frm.elements["prime_u_ttc[]"][k].value != "") && !isNaN( frm.elements["prime_u_ttc[]"][k].value ) && (frm.elements["prime_u_ttc[]"][k].value > 0) )
		{
			total_ttc += (parseFloat(frm.elements["prime_u_ttc[]"][k].value) * parseFloat(frm.elements["qte[]"][k].value));
		}
		*/		
		
		if( (frm.elements["prix_t_ht[]"][k].value != "") && !isNaN( frm.elements["prix_t_ht[]"][k].value ) )
		{
			total_ht += parseFloat(frm.elements["prix_t_ht[]"][k].value);
		}
		
		/*
		if( (frm.elements["prime_u_ht[]"] != undefined) && (frm.elements["prime_u_ht[]"][k].value != "") && !isNaN( frm.elements["prime_u_ht[]"][k].value ) && (frm.elements["prime_u_ht[]"][k].value > 0) )
		{
			total_ht += (parseFloat(frm.elements["prime_u_ht[]"][k].value) * parseFloat(frm.elements["qte[]"][k].value));
		}
		*/
	}
	
	// Star delivery fee
	/*
	id_fee = 0;
	
	Form.getInputs(frm, "radio", "options[delivery]").each(function(i){
		if ( i.checked ) {
			id_fee = i.value;
		}		
	});
	
	if ( $("opt_del_" + id_fee + "_specific_fdp") != undefined ) {
		switch ( $("taxe").value ) {
			case "ht":
				total_ht	+= parseFloat($("opt_del_" + id_fee + "_specific_fdp").value);
				total_ttc	= (Math.round(parseFloat(total_ht) * 1.196 * 100)) / 100;
				break;
				
			case "ttc":
				total_ttc	+= parseFloat($("opt_del_" + id_fee + "_specific_fdp").value);
				total_ht	= (Math.round(parseFloat(total_ttc) * 1.196 * 100)) / 100;
				break;
				
			default:
				break;
		}
	}
	// End delivery fee
	
	// Assurance option
	Form.getInputs(frm, "checkbox","ass[]").each(function(i){
		if ( i.checked ) {
			total_ttc	+= parseFloat( $(i.id + "_value").value );
			total_ht	+= parseFloat( $(i.id + "_value").value );
		}
	});
	*/

	total_ttc 	= parseInt( Math.round(total_ttc * 100) ) / 100;
	total_ht 	= parseInt( Math.round(total_ht * 100) ) / 100;	

	if ( frm.elements["totalCommandeTTC"] != null )
	{
		frm.elements["totalCommandeTTC"].value = total_ttc;
		frm.elements["totalCommandeHT"].value = total_ht;
		frm.elements["delta"].value = parseInt(Math.round( (total_ttc - total_ht) * 100)) / 100;
	}
	else
	{
		if ( frm.elements["taxe"].value == "ht" )
		{
			frm.elements["totalCommande"].value = total_ht;
		}
		else
		{
			frm.elements["totalCommande"].value = total_ttc;
		}
	}
}

function calc_ht(obj)
{
	obj.value = obj.value.replace(/,/g, ".");
	
	if( !isNaN(obj.value) && (obj.value != "") )
	{
		return (Math.round(parseFloat(obj.value) / 1.196 * 100)) / 100;
	}

	return 0;
}

function calc_ttc(obj)
{
	obj.value = obj.value.replace(/,/g, ".");
	
	if( !isNaN(obj.value) && (obj.value != "") )
	{
		return (Math.round(parseFloat(obj.value) * 1.196 * 100)) / 100;
	}

	return 0;
}

function set_price(i, frm, type)
{
	if ( type == 'ht')
	{
		var el_prix_org		= frm.elements["prix_u_ttc[]"][i];
		var el_prix_dest	= frm.elements["prix_u_ht[]"][i];
	}
	else
	{
		var el_prix_org		= frm.elements["prix_u_ht[]"][i];
		var el_prix_dest	= frm.elements["prix_u_ttc[]"][i];
	}
	
	if ( type == 'ht')
	{
		el_prix_dest.value = calc_ht(el_prix_org);
	}
	else
	{
		el_prix_dest.value = calc_ttc(el_prix_org);
	}

	calc_total(frm);
}

function set_sous_total(i, frm, type)
{
	if ( type == 'ht')
	{
		var el_prix_org		= frm.elements["prix_t_ttc[]"][i];
		var el_prix_dest	= frm.elements["prix_t_ht[]"][i];
	}
	else
	{
		var el_prix_org		= frm.elements["prix_t_ht[]"][i];
		var el_prix_dest	= frm.elements["prix_t_ttc[]"][i];
	}
	
	if ( type == 'ht')
	{
		el_prix_dest.value = calc_ht(el_prix_org);
	}
	else
	{
		el_prix_dest.value = calc_ttc(el_prix_org);
	}
}

/*
function set_ttc(frm)
{
	var total = 0;

	for( var k=0; k < frm.elements["qte[]"].length; k++)
	{
		frm.elements["prix[]"][k].value = calc_ttc(frm.elements["prix[]"][k]);
		calc_remise("eur", k, frm);
	}

	calc_total(frm);
}
*/
/**
* Fin fonction calculs
*/

function get_date_for_popup(val_date,delim)
{
  var adate = val_date.split(delim);

  //var day   = eval("document.getElementById('"+ select_date + "[day]').options[document.getElementById('"+ select_date + "[day]').selectedIndex].value");
  //var month = eval("document.getElementById('"+ select_date + "[month]').options[document.getElementById('"+ select_date + "[month]').selectedIndex].value");
  //var year  = eval("document.getElementById('"+ select_date + "[year]').options[document.getElementById('"+ select_date + "[year]').selectedIndex].value");

  //alert("d=" + adate[0] + "&m=" + adate[1] + "&y=" + adate[2]);

  return "d=" + ((adate[0] != undefined)?adate[0]:"") + "&m=" + ((adate[1] != undefined)?adate[1]:"") + "&y=" + ((adate[2] != undefined)?adate[2]:"");
}

function updateThumbPreview(selectObj)
{
	var thumb = selectObj.options[selectObj.selectedIndex].style.backgroundImage;
	selectObj.style.backgroundImage = thumb;
}

function filterTxtInput(objtxt)
{
	/*
	re = new RegExp('[abcdefghijklmnopqrstuvwxyz0123456-]');
	alert( re.exec(objtxt.value) );
	*/
	
	return true;
}

var objTimeout='';
	
function launchTimedFunc()
{
	if ( objTimeout != '' )
	{
		clearTimeout(objTimeout);
	}
	
	args = new Array();
	
	for ( var k=1; k < launchTimedFunc.arguments.length; k++ )
	{
		args.push(launchTimedFunc.arguments[k]);
	}
	
	//self.status = launchTimedFunc.arguments[0] + "('" + args.join("','") + "')";
	
	objTimeout = setTimeout(launchTimedFunc.arguments[0] + "('" + args.join("','") + "')", ajax_wait_time);
}

function verifPassword(pwd1,pwd2,ok)
{
	if (pwd1 == pwd2)
        {
                $(ok).innerHTML = '<img src="'+app_baseurl+'bo/img/icons/silk/accept.png" alt="Mot de passe correct" /> Mot de passe correct!';
	}
	else
	{
		$(ok).innerHTML = '<img src="'+app_baseurl+'bo/img/icons/silk/cross.png" alt="Mot de passe incorrect" /> Le mot de passe ne correspond pas!';
	}
}

function bookmark(title,url)
{
	if (window.sidebar) // firefox
	{
		window.sidebar.addPanel(title, url, "");
	}

	if (window.opera && window.print) // opera
	{ 
		var elem = document.createElement('a');
		elem.setAttribute('href', url);
		elem.setAttribute('title', title);
		elem.setAttribute('rel', 'sidebar');
		elem.click();
	}

	if (document.all) // ie
	{ 
		window.external.AddFavorite(url, title);
	}
}

function get_location()
{
	var el = document.forms["frmPaiement"].elements["paiement"];

	for ( k=0; k < el.length; k++ )
	{
		if ( el[k].checked )
		{
			return el[k].value;
		}
	}

	return "";
}

/**
* Fonction de vérification de la saisie d'une adresse mail
*/
function check_mail(adresse)
{
	var place = adresse.indexOf("@",1);
  	var point = adresse.indexOf(".",place+1);
	if ((place > -1)&&(adresse.length >2)&&(point > 1))
	{
		return(true);
	}
	else
	{
		alert('Veuillez indiquer une adresse e-mail valide');
		return(false);
	}

}
