// JavaScript Document
var width_popup_ajout_panier 	= 405;
var height_popup_ajout_panier 	= 240;

/* Init du viewer des opes haut de page */
window.addEvent('domready',function(){
	
	/**
	 * Init viewer ope
	 */
	if($('container_list_ope_haut_page')){
		new viewer($$('#container_list_ope_haut_page .item_ope)') , {
			mode: 'alpha',
			interval: 12000
		}).play(true);
	}
	
	/**
	 * Parramètrage des champs quantité
	 */ 
	initFieldQuantity();
	
	/**
	 * Initialise le calcul de produit dans la fiche
	 */
	initCalculAmountProduit();
});

function initCalculAmountProduit(){
	$$('.field_accessoire_quantity').addEvent('keyup', function(){
		calculAmountProductTotal();
	});
	if($('qty')){
		$('qty').addEvent('keyup', function(){
			calculAmountProductTotal();
		});
	}
	if($('choix_couleur')){
		$('choix_couleur').addEvent('change', function(){
			calculAmountProductTotal();
		});
	}
	if( $('amountTotalProduct') ){
		calculAmountProductTotal();
	}
}

function calculAmountProductTotal(){	
	var listFieldAccessoiresAmount = $$('.field_accessoire_amount');	
	var amountUnitCouleur = 0;
	if($('choix_couleur').value){
		amountUnitCouleur = parseFloat( $('couleurAmount_' + $('choix_couleur').value).value );;
	}	
	var amountUnitProduct = parseFloat( $('productUnitAmount').value );
	var quantiyProduct = 0;
	if($('qty').value){
		quantiyProduct = parseInt( $('qty').value );
	}
	var amountCouleur = amountUnitCouleur * quantiyProduct;
	var amountProduct = amountUnitProduct * quantiyProduct;
	var amountTotalOptions = 0;
	for(var i=0;i<listFieldAccessoiresAmount.length;i++){
		var fieldId = listFieldAccessoiresAmount[i].id ;
		var accessoireWfcode = fieldId.substring( fieldId.lastIndexOf('_', fieldId.length) + 1, fieldId.length);
		var quantityAccessoire = 0
		if($('accessoire_qty_'+accessoireWfcode).value){
			quantityAccessoire = parseInt($('accessoire_qty_'+accessoireWfcode).value);
		}
		var amountAccessoire = 0;
		if(listFieldAccessoiresAmount[i].value){
			amountAccessoire = parseFloat(listFieldAccessoiresAmount[i].value);
		}
		amountTotalOptions += amountAccessoire * quantityAccessoire;
	}
	$('amountTotalOptions').innerHTML = (Math.round( amountTotalOptions * 100) ) /100;
	$('amountProduct').innerHTML = (Math.round( amountProduct * 100) ) / 100 ;
	$('amountCouleur').innerHTML = (Math.round( amountCouleur * 100) ) / 100 ;
	$('amountTotalProduct').innerHTML = (Math.round( ( amountCouleur + amountProduct + amountTotalOptions ) * 100) ) /100;
}

/* initialisation des champs quantité de la fiche produit */
function initFieldQuantity(){
	
	$$('.field_type_quantity').addEvent('click',function(){
		if( (this.value == 0) ){this.value = ''};
	});
	
	$$('.field_type_quantity').addEvent('keydown',function(evt){
		if(evt.event.keyCode) { 
			if( !(evt.event.keyCode >= 44 && evt.event.keyCode <= 57 ) && !(evt.event.keyCode >= 96 && evt.event.keyCode <= 105 ) && !(evt.event.keyCode == 46)&& !(evt.event.keyCode == 8) && !(evt.event.keyCode == 9)){
				return false;
			}
		}; 
		if(evt.event.which) {
			if( !(evt.event.which >= 44 && evt.event.which <= 57 ) && !(evt.event.which >= 96 && evt.event.which <= 105 ) && !(evt.event.which == 46)&& !(evt.event.which == 8) && !(evt.event.which == 9)){
				return false;
			}
		}
		return true;
	});
	
	$$('.field_type_quantity').addEvent('blur',function(){
		if( !(Number(this.value)) ){this.value = 0};
	});
	
}

function form_del_error(object){
	if (object){
		object.style.borderColor = '#E0E0E0';
		if ($(object.id+'_error_message')){
			$(object.id+'_error_message').style.display = 'none';
		}
	}
}

function form_del_error_div(object){
	if ($(object+'_error_message')){
		$(object+'_error_message').style.display = 'none';
	}
}

function form_del_error_tab(tab_object_id){
	for (i=0; i<tab_object_id.length; i++){
		object = $(tab_object_id[i]);
	
		if (object){
			if ($(object+'_error_message')){
				$(object+'_error_message').style.display = 'none';
			}
			$(object).style.borderColor = '#E0E0E0';
		}
	}
}

function prepareCheckFieldForm(f){	
	var checkBoxElements 	= [];
	var radioElements 		= [];
	
	for(i=0;i<f.elements.length;i++){
		if(f.elements[i].type == 'radio'){
			elemFound = false;
			elemFoundNum = null;
			for(j=0;j<radioElements.length;j++){
				if(f.elements[i].name == radioElements[j][0]){
					elemFound = true;
					elemFoundNum = j;
				}
			}
			if(elemFound){
				if (f.elements[i].checked){
					radioElements[elemFoundNum][1] = true;
				}
			} else {
				radioElements.push(new Array(f.elements[i].name,f.elements[i].checked));
			}
		}
		if(f.elements[i].type == 'checkbox'){
			elemFound = false;
			elemFoundNum = null;
			for(j=0;j<checkBoxElements.length;j++){
				if(f.elements[i].name == checkBoxElements[j][0]){
					elemFound = true;
					elemFoundNum = j;
				}
			}
			if(elemFound){
				if (f.elements[i].checked){
					checkBoxElements[elemFoundNum][1] = true;
				}
			} else {
				checkBoxElements.push(new Array(f.elements[i].name,f.elements[i].checked));
			}
		}
	}
	
	for(i=0;i<radioElements.length;i++){
		if (radioElements[i][1] == false){
			createHiddenFieldInputValue1(f, radioElements[i][0]);
		}
	}
	
	for(i=0;i<checkBoxElements.length;i++){
		if (checkBoxElements[i][1] == false){
			createHiddenFieldInputValue1(f, checkBoxElements[i][0]);
		}
	}
}

function createHiddenFieldInputValue1(form, name){
	var hidden_input_field = document.createElement('input');
	hidden_input_field.type = 'hidden';
	hidden_input_field.name = name+'_novalue';
	hidden_input_field.value = 1;	
	form.appendChild(hidden_input_field);
}

function getCheckFieldValueForm(form, fieldName){	
	var checkBoxElements 	= [];
	var radioElements 		= [];
	
	for(i=0;i<form.elements.length;i++){
		if(form.elements[i].type == 'radio'){
			elemFound = false;
			elemFoundNum = null;
			for(j=0;j<radioElements.length;j++){
				if(form.elements[i].name == radioElements[j][0]){
					elemFound = true;
					elemFoundNum = j;
				}
			}
			if(elemFound){
				if (form.elements[i].checked){
					radioElements[elemFoundNum][1] = true;
					radioElements[elemFoundNum][2] = form.elements[i].value;
				}
			} else {
				if (form.elements[i].checked){
					radioElements.push(new Array(form.elements[i].name,form.elements[i].checked, form.elements[i].value));
				} else {
					radioElements.push(new Array(form.elements[i].name,form.elements[i].checked, null));
				}
			}
		}
		if(form.elements[i].type == 'checkbox'){
			elemFound = false;
			elemFoundNum = null;
			for(j=0;j<checkBoxElements.length;j++){
				if(form.elements[i].name == checkBoxElements[j][0]){
					elemFound = true;
					elemFoundNum = j;
				}
			}
			if(elemFound){
				if (form.elements[i].checked){
					checkBoxElements[elemFoundNum][1] = true;
					checkBoxElements[elemFoundNum][2] = form.elements[i].value;
				}
			} else {
				if (form.elements[i].checked){
					checkBoxElements.push(new Array(form.elements[i].name,form.elements[i].checked, form.elements[i].value));
				} else {
					checkBoxElements.push(new Array(form.elements[i].name,form.elements[i].checked, null));
				}
			}
		}
	}
	
	
	for(i=0;i<radioElements.length;i++){
		if (radioElements[i][0] == fieldName){
			return radioElements[i][2];
		}
	}
	
	for(i=0;i<checkBoxElements.length;i++){
		if (checkBoxElements[i][0] == fieldName){
			return checkBoxElements[i][2];
		}
	}
}


/* Fonctions de preload dream */
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}



// args : string moncontroletexte, int nbcar, string moncontroledecompte 
// return : aucun 
// Affecte à certains évènements d'un textarea, le contrôle de la longueur de son contenu 
function LimiterTextArea(nom_controletexte, nbcar, nom_controledecompte) 
{ 
	var moncontroletexte = document.getElementById(nom_controletexte);

	var moncontroledecompte = document.getElementById(nom_controledecompte);

	if (moncontroletexte && moncontroledecompte)
	{

		moncontroletexte.onclick = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)}; 
		moncontroletexte.onblur = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)}; 
		moncontroletexte.onkeyup = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)}; 
		moncontroletexte.onkeypress = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)}; 

		// *** Affichage du nombre de caractères restant 
		if(moncontroledecompte.type)
			moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar) + ' caractères restants';			// Pour un input de formulaire		
		else
			moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar) + ' caractères restants';	// Pour un élément HTML	

	}
} 

// TextAreaEstRempli 
// args : textarea moncontroletexte, int nbcar, element_HTML moncontroledecompte 
// return : bool 
// Renvoie vrai si le nombre de caractères maximum du textarea n'est pas atteint 
function TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte) 
{ 
	if (moncontroletexte) 
	{ 
		if (moncontroletexte.value.length <= nbcar) 
		{ 
			//alert("pas rempli"); 
			// mes actions ... 

			// *** Affichage du nombre de caractères restant
			if(moncontroledecompte.type)
				moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar) + ' caractères restants';
			else
				moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar) + ' caractères restants';

			return true; 
		} 
		else 
		{ 
			//alert("rempli"); 
			// mes actions ... 

			// Affichage du nombre de caractères restant 
			moncontroletexte.value = moncontroletexte.value.substr(0, nbcar); 

			// *** Affichage du nombre de caractères restant
			if(moncontroledecompte.type)
				moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar) + ' caractères restants';
			else
				moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar) + ' caractères restants';
				
			return false; 
		} 
	} 
} 

// NbCarRestant 
// args : textarea moncontroletexte, int nbcar 
// return : int 
// Renvoie le nombre de caractère à saisir 
function NbCarRestant(moncontroletexte, nbcar) 
{ 
	if (moncontroletexte.value.length)
		return new Number(nbcar - moncontroletexte.value.length); 
	else
		return new Number(nbcar);
} 

/*
<body> 
	<form name="frmPage" action="Limiter.htm" method="POST"> 
		<textarea id="commentaire" name="commentaire" class="limiter"></textarea> 
		
		<!-- Avec un INPUT de formulaire -->
		<!--<input type="text" id="controle_decompte" name="controle_decompte" value="">-->

		<!-- Ou avec un DIV -->
		<div id="controle_decompte" name="controle_decompte" class="decompte"></div>
	
		<script language="Javascript" type="text/javascript"> 
			LimiterTextArea('commentaire', 10, 'controle_decompte'); 
		</script> 
		<input type="reset" id="annuler" name="annuler" value="Annuler" />
	</form> 
</body> 
*/
