/**
  *	$Id: shop.js 45870 2009-02-06 10:38:48Z patrick $
  **/

function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

//function number_format(number, decimal_places, decimal_point, thousand_point) {
//    // resultat final
//    result = "";
//
//    // partie entiere
//    fl = Math.floor(number).toString();
//    // ajout du separateur des centaines
//    var j = 1;
//    for (i = fl.length -1; i >= 0; i--, j++) {
//        result = fl.charAt(i) + result;
//
//        if (j % 3 == 0 && i > 0) {
//            result = thousand_point + result;
//        }
//    }
//
//    // ajout du separateur des décimales
//    if (decimal_places > 0) {
//        result += decimal_point;
//    }
//
//    // recupération des décimales
//    decimal_part = number - Math.floor(number);
//    final_part = "";
//    if (decimal_part == 0) {
//        for (i = 0; i<decimal_places; i++) {
//            final_part += "0";
//        }
//    } else {
//        final_part = Math.floor(decimal_part * Math.pow(10,decimal_places));
//    }
//
//    return (result + final_part)
//}

function number_format(number, decimal_places, decimal_point, thousand_point) {
    var n = number, prec = decimal_places, dec = decimal_point, sep = thousand_point;
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    sep = sep == undefined ? ',' : sep;
 
    var s = n.toFixed(prec),
        abs = Math.abs(n).toFixed(prec),
        _, i;
 
    if (abs > 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;
        _[0] = s.slice(0,i + (n < 0)) +
        _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec || '.');
    } 
    return s;
}


function update_price() {

	 if(document.getElementById('renew_message')){     
	    if(document.getElementById('renew_message').className == 'form_visible'){
	    	document.getElementById('renew_message').className = 'form_not_visible';
	    }
	 }
	 if(document.getElementById('change_message')){     
	    if(document.getElementById('change_message').className == 'form_visible'){
	    	document.getElementById('change_message').className = 'form_not_visible';
	    }
	 }
    total = parseFloat(document.getElementById("products_original_price").value);
    with (document.forms['price']) {
    
      for (i = 0; i < elements.length; i++) {

        re = /^linked_[0-9]{1,4}$/;
        
        if (re.test(elements[i].name)) {
            total += parseInt(elements[i].value) * parseFloat(document.getElementById(elements[i].name + "_price").value);
        }
        
        re = /^options\[\]$/;
        if (re.test(elements[i].name)) {
          var value = parseFloat(document.getElementById("option_" + elements[i].value + "_price").value);
          if (document.getElementById("option_" + elements[i].value + "_prefix").value == "+") {
            total += value;
          } else {
            total -= value;
          }
        }
      }
      
      document.getElementById('products_price').value = trim(document.getElementById('symbol_left').value + ' ' + number_format(total, document.getElementById('decimal_places').value, document.getElementById('decimal_point').value, document.getElementById('thousand_point').value) + ' ' + document.getElementById('symbol_right').value);
      
    }
}


function update_prices(products_id){
	 if(document.getElementById('renew_message')){     
	    if(document.getElementById('renew_message').className == 'form_visible'){
	    	document.getElementById('renew_message').className = 'form_not_visible';
	    }
	 }
	 if(document.getElementById('change_message')){     
	    if(document.getElementById('change_message').className == 'form_visible'){
	    	document.getElementById('change_message').className = 'form_not_visible';
	    }
	 }
   
    ids = products_id.split("_");
 
 	var prod = 0;
 	for(j = 0; j < ids.length ; j++){
 		prod = ids[j];
 		update(prod.toString());
 	}
}

function update(j) {
	//Verif
	/*
	if(!document.getElementById('products_original_price_' + j) || !document.getElementById('products_price_' + j)){
		return;
	}	*/
	
    total = parseFloat(document.getElementById('products_original_price_' + j).value);

    with (document.forms['price_change']) {
      for (i = 0; i < elements.length; i++) {
        re = /^linked_[0-9]{1,4}$/;
        if (re.test(elements[i].name)) {
            total += parseInt(elements[i].value) * parseFloat(document.getElementById(elements[i].name + "_price").value);
        }
        re = /^options\[\]$/;
        if (re.test(elements[i].name)) {
          var value = parseFloat(document.getElementById('option_' + elements[i].value + '_price_' + j).value);
          if (document.getElementById('option_'+ elements[i].value + '_prefix_' + j).value == "+") {
            total += value;
          } else {
            total -= value;
          }
        }
      }
      document.getElementById('products_price_' + j).value = trim(document.getElementById('symbol_left_' + j).value + ' ' + number_format(total, document.getElementById('decimal_places_' + j).value, document.getElementById('decimal_point_' + j).value, document.getElementById('thousand_point_' + j).value) + ' ' + document.getElementById('symbol_right_' + j).value);
    }
}


function update_new_product_id(new_id , message , id_product_name , id_form_message){
	//On inclue l'id du produit choisit
    
    	if(new_id != ''){
    		with (document.forms['price_change']) {
      			document.getElementById('new_product_id').value = new_id;
      		}
    	}

    old_message = document.getElementById(id_product_name);
    remplacerTexte(old_message,message);
    if(document.getElementById(id_form_message).className == 'form_not_visible'){
    	document.getElementById(id_form_message).className = 'form_visible';
    }
}

var interv;
var encours=0;

function start_update_quotas(action_quota , quota_max){
	interv = setInterval("update_quotas('" + action_quota  + "','"  + "quota_max" + "')",200);
	encours = 1;
}

function stop_update_quotas(){
	if(encours == 1){
		clearInterval(interv);
	}
}

function update_quotas(action_quota , quota_max){
	encours = 1;
	with (document.forms['disk_managment']) {   
		// Récupération des valeurs
		str_quota_www_sql = document.getElementById('new_quota_www_sql').value,
		str_quota_mail = document.getElementById('new_quota_mail').value;
		str_quota_dispo = document.getElementById('quota_rest').value;
		
		quota_www_sql = parseInt(str_quota_www_sql);
		quota_mail = parseInt(str_quota_mail);
		quota_dispo = parseInt(str_quota_dispo);
		
		if (isNaN(quota_www_sql)) {
			quota_www_sql = '';
		}
		
		if (isNaN(quota_mail)) {
			quota_mail = '';
		}
		
		if (isNaN(quota_dispo)) {
			quota_dispo = '';
		}
    	
    	switch(action_quota){
    		case 'change_mail' :
    		
    			quota_mail_update = quota_mail;
    			new_quota_rest = quota_max - (quota_www_sql + quota_mail);
    		
    		break;
    		
    		case 'change_www_sql' :
    		
    			quota_www_sql_update = quota_www_sql;
    			new_quota_rest = quota_max - (quota_www_sql + quota_mail);
    		
    		break;
    		
    		case 'decrease_www_sql':
    			quota_www_sql_update = quota_www_sql - 5;
    			new_quota_rest = quota_dispo + 5;
    		break;

    		case 'increase_www_sql':
    			if(quota_dispo == 0 || (quota_www_sql + quota_mail) >= quota_max){
    				return;
    			}
    			quota_www_sql_update = quota_www_sql + 5;
    			new_quota_rest = quota_dispo - 5;
    		break;
    		
    		case 'decrease_mail':
    			quota_mail_update = quota_mail - 5;
    			new_quota_rest = quota_dispo + 5;
    		break;
    		
    		case 'increase_mail':
    			if(quota_dispo == 0 || (quota_www_sql + quota_mail) >= quota_max){
    				return;
    			}
    			quota_mail_update = quota_mail + 5;
    			new_quota_rest = quota_dispo - 5;
    		break;
    		
    		case 'valider': 
    			// Bouton  Appliquer
    			var access = true;
    			//On vérifie si ce sont bien des chiffres qui ont été rentré
    			if(isNaN(str_quota_www_sql) || isNaN(str_quota_mail) || isNaN(str_quota_dispo)){
    				access = false	
    			}
    			
    		 	if(access == false){
    				document.getElementById('quota_not_valid').className = 'form_visible';
    				document.getElementById('quota_valid').className = 'form_not_visible';
    		    	return;
    			}else if(access == true){
    		    	document.getElementById('quota_valid').className = 'form_visible';
    		    	document.getElementById('quota_not_valid').className = 'form_not_visible';
    		    	return;
    			}
    		break;	
    		
    		default:
    			// Init de l'affichage
    			document.getElementById('quota_valid').className = 'form_not_visible';
    		    document.getElementById('quota_not_valid').className = 'form_not_visible';
    			return;
    		break;
    	}
    
    	/*if(new_quota_rest > quota_max){
    		return;
    	}*/
    	
    	if(action_quota == 'decrease_www_sql' || action_quota =='increase_www_sql' || action_quota == 'change_www_sql'){
    		// Test pour ne pas passer dans les quotas négatif
    		if(quota_www_sql_update < 0){
    			return;
    		}
    		
    		// On cache les messages et boutons de validation du formualaire
    		document.getElementById('quota_valid').className = 'form_not_visible';
    		document.getElementById('quota_not_valid').className = 'form_not_visible';
   			
    		// On applique les nouvelles valeurs
       		document.getElementById('new_quota_www_sql').value = quota_www_sql_update;
    		document.getElementById('quota_rest').value = new_quota_rest;
    	}
    	
    	if(action_quota == 'decrease_mail' || action_quota == 'increase_mail' || action_quota == 'change_mail'){
    		// Test pour ne pas passer dans les quotas négatif
    		if(quota_mail_update < 0){
    			return;
    		}
    	
    		// On cache les messages et boutons de validation du formualaire
			document.getElementById('quota_valid').className = 'form_not_visible';
			document.getElementById('quota_not_valid').className = 'form_not_visible';
    		
    		// On applique les nouvelles valeurs
			document.getElementById('new_quota_mail').value = quota_mail_update;
			document.getElementById('quota_rest').value = new_quota_rest;
    	}
    }
}

/*
function displayInfos(id , nb){
	nb_id = parseInt(nb);
	for(i = 0;i < nb_id ; i++){
		document.getElementById(id + i).style.display = (document.getElementById(id + i).style.display == 'none')? '' : 'none';
	}
}
*/
/******** FONCTION AJAX POUR LA GESTION DES MESSAGES**********/
function remplacerTexte(e1,texte){
 if(e1 != null){
  effacerTexte(e1);
  var nouveauNoeud = document.createTextNode(texte);
  e1.appendChild(nouveauNoeud);
 }
}

function effacerTexte(e1){
 if(e1 != null){
  if(e1.childNodes){
   for(var i = 0 ; i < e1.childNodes.length; i++){
    var noeudFils = e1.childNodes[i];
    e1.removeChild(noeudFils);
   }
  } 
 }
}


function getTexte(e1){
 var texte = '';
 if (e1 != null){
  if(e1.childNodes) {
   for(var i = 0 ; i < e1.childNodes.length; i++){
    var noeudFils = e1.childNodes[i];
    if(noeudFils.nodeValue != null){
     texte = texte + noeudFils.nodeValue;
    }
   } 
  }
 }
return texte;
}

