//
// ================================================================================
// ojo/
// ================================================================================

function trim(str,mode) {
	mode = mode.toUpperCase();
	var trimLen = 0;
	if( mode.indexOf('L')>-1 ) {
		for(var i=0;i<str.length;i++) { 
			if( /\s/.test(str.substr(i,1)) ) trimLen++; 
			else break;
		}
		if(trimLen>0) str = str.substr(trimLen);
		trimLen = 0;
	}
	if( mode.indexOf('R')>-1 ) {
		for( i=str.length-1;i>=0;i--) { 
			if( /\s/.test(str.substr(i,1)) ) trimLen++; 
			else break;
		}
		if(trimLen>0) str = str.substr(0,str.length-trimLen);
	}
	return str;
}




function checkMailAddr(value) {
	/* 
	 * rule
	 *
	 *        /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	 *
	 */

	var addr = value.split("@");
	if(addr.length==1 || addr.length>2) return false;
	var dom = addr[1].split(".");
	if(dom.length == 1) return false;
	var domLen = dom.length
	if(domLen>2 && (dom[domLen-1]).length==0) domLen--;
	if(dom[domLen-1].length<2 || dom[domLen-1].length>3) return false;
	for(var i=0;i<domLen;i++) { if(dom[i].length==0) return false; }

	var acc = addr[0].split(".");
	for(i=0;i<acc.length;i++) { if(acc[i].length==0) return false; }
	var okChars = "abcdefghijklmnopqrstuvwxyz";
	okChars += okChars.toUpperCase()+"0123456789-";
	var testString = acc.join("")+dom.join("");
	if(testString.length==0) return false;
	i=0;
	while( i<testString.length ) { 
		if(okChars.indexOf(testString.substr(i,1))==-1 ) return false;
		i++;
	}
	return true;
}

//
// ================================================================================
// 



window.status = "JS - chargement";


var owAddBasket = null;
var owPrintBC = null;


function splashAddBasket(f,ref) {
	if(owAddBasket==null||owAddBasket.closed) {
		owAddBasket = window.open('about:blank','wab','width=318,height=100,menubar=0,location=0,toolbar=0,scrollbar=0,resizable=0,status=0');
	} else {
		owAddBasket.location = 'about:blank';
	}
	owAddBasket.document.writeln('Veuillez patienter...');
	owAddBasket.location = './publications/publications-owAjouterAuPanier.php?visiteur='+f.visiteur.value+'&enc_ref='+ref;
	owAddBasket.focus();
}


function splashPrintBC(visit_ID) {
	
	if(owPrintBC==null||owPrintBC.closed) {
		owPrintBC = window.open('about:blank','bon_de_commande','width=800,height=600,menubar=0,location=0,toolbar=0,scrollbar=0,resizable=0,status=0');
	} else {
		owPrintBC.location.href = 'about:blank';
	}
	owPrintBC.focus();
	owPrintBC.document.writeln('Veuillez patienter...');
	if(document.forms['publications_caisse']) {
		var f=document.forms['publications_caisse'];
		f.method = 'POST'; 
		f.target = 'bon_de_commande'; 
		f.action = './publications/publications-owPrintBC.php';
		f.submit();
		setTimeout("SynchrSplashPrintBC('"+visit_ID+"')",1000);

	} else {
		owPrintBC.document.writeln('Erreur page source.');
	}
	owPrintBC.focus();
	// owPrintBC.location = './publications/publications-owPrintBC.php?visiteur='+visit_ID
}

function SynchrSplashPrintBC(visit_ID) {
	if(document.forms['publications_caisse']) {
		var f=document.forms['publications_caisse'];
		f.method = 'POST'; 
		f.target = '_self';
		f.action = './information.php?calc_x=1';
		f.submit();
	} else {
		alert("Erreur page source");
	}
}


function formatNumber(inp, dec) {
	var str = new String(Math.round(parseFloat(inp) * Math.pow(10,dec)));
	while (str.length <= dec) { str = "0" + str; }
	var dotpos = str.length - dec;
	return str.substring(0,dotpos) + "." + str.substring(dotpos, str.length);

}


function calcBasket(f) {
	var grandTotal = 0;
	var rowIndex = 0;
	for(var i=0;i<f.elements.length;i++) {
		if(f.elements[i].name.indexOf('PQTE')==0) {
			rowIndex = parseInt(f.elements[i].name.substr(f.elements[i].name.length-1))
			f.elements['PSTOTAL'+rowIndex].value = (parseInt(f.elements['PQTE'+rowIndex].value) * parseFloat(f.elements['PPU'+rowIndex].value));
			grandTotal += parseFloat(f.elements['PSTOTAL'+rowIndex].value);
		}
	}

	f.elements['TOTAL_TTC'].value = formatNumber(grandTotal + parseFloat(f.elements['PSTOTAL'+(++rowIndex)].value) + parseFloat(f.elements['PSTOTAL'+(++rowIndex)].value),2);
}


function updateCTBA_InfosSubTotal(val,chkb,subTotalIndex) {
	if(chkb.checked) chkb.form.elements['PSTOTAL'+subTotalIndex].value = val;
	else chkb.form.elements['PSTOTAL'+subTotalIndex].value = '0.00';
	calcBasket(chkb.form);

}

function updateFraisPort(sel,subTotalIndex) {
	if(sel.options[sel.selectedIndex].value=='0') {
		alert("Vous devez sélectionner les frais de port correspondant à votre adresse de livraison.");
	} else {
		sel.form.elements['PPU'+subTotalIndex].value = sel.options[sel.selectedIndex].value;
		sel.form.elements['PSTOTAL'+subTotalIndex].value = sel.options[sel.selectedIndex].value;
		sel.form.elements['frais_port_code'].value = sel.options[sel.selectedIndex].name.substr(6);
		calcBasket(sel.form);
	}
}




function handleCustomerTypeChange(f) {
	if(!capable) return;
	if(f.IS_COMPANY[0].checked && !el1_on) {
		expandBase('el1', true);
		el1_on = !el1_on;
	} else if(f.IS_COMPANY[1].checked && el1_on) {
		expandBase('el1', true);
		el1_on = !el1_on;
	}
	if(el3_on) {
		if(el1_on&&!el2_on) {
			expandBase('el2', true);
			el2_on = !el2_on;
		} else if(!el1_on&&el2_on) {
			expandBase('el2', true);
			el2_on = !el2_on;
		}
	}
}

function handleShowBillingAddress(f) {
	if(!capable) return;
	expandBase('el3', true);
	el3_on = !el3_on;
	if(el1_on&&!el2_on) {
		expandBase('el2', true);
		el2_on = !el2_on;
	}
	f.USE_FACT_ADR.value= (el3_on?'O':'N');
}



function filterClickedButtons(f) {
	f.action = 'information.php?'+submitClicked.name+'_x=1';
	f.target = '_self';
	f.submit();
	return;
}


function old_filterClickedButtons(f) {

	if(submitClicked.name=='valider') {
		if( verifPanier(f)) {
			f.action = 'information.php?'+submitClicked.name+'_x=1';
			f.target = '_self';
			f.submit();
			f.action="filterClickedButtons(document.forms.publications_caisse);";
		}
	} else {
		f.action = 'information.php?'+submitClicked.name+'_x=1';
		f.target = '_self';
		f.submit();
		f.action="filterClickedButtons(document.forms.publications_caisse);";
	}

}


function verifPanier(f) {
	var ret = false;
	var al = '';
	var alfp = '';
	var fieldsPrefixes = new Array("livr","fact");
	var checkFieldsList = new Array("raison_sociale", "activite", "nom", "prenom", "adresse", "code_postal", "ville", "pays", "tel", "email");
	var checkFieldsNames = new Array("Raison sociale", "Activite", "Nom", "Prénom", "Adresse", "Code postal", "Ville", "Pays", "Tél.", "E-mail");

	var frais_port_code = "";

	var nb_prefx  = (f.USE_FACT_ADR.value=='N'?1:2);
	var fields_from = (f.elements['IS_COMPANY'][0].checked?0:3);
	var nb_errs   = 0;
	var UEexoTVAmsg = "";

	if(f.elements['frais_port'].options[f.elements['frais_port'].selectedIndex].value=='0') {
		alfp += "Vous n'avez pas choisi de zone de livraison !\n\n";
		nb_errs++;
	} else {
		frais_port_code = f.elements['frais_port'].options[f.elements['frais_port'].selectedIndex].value.substr(0,5);
	}


	var err_block_hdr_livr = false;
	var err_block_hdr_fact = false;
	for(var i=0;i<nb_prefx;i++) {
		for(var j=fields_from;j<checkFieldsList.length;j++) {
			f.elements[fieldsPrefixes[i]+'_'+checkFieldsList[j]].value = trim(f.elements[fieldsPrefixes[i]+'_'+checkFieldsList[j]].value,"LR");
			if(f.elements[fieldsPrefixes[i]+'_'+checkFieldsList[j]].value=='') {
				f.elements[fieldsPrefixes[i]+'_'+checkFieldsList[j]].style.backgroundColor = '#C5E26B';
				if(i==0&&!err_block_hdr_livr) {
					err_block_hdr_livr = true;
					al += "-- Adresse de livraison ------------\n";
				} else if(i==1&&!err_block_hdr_fact) {
					err_block_hdr_fact = true;
					al += "\n-- Adresse de facturation ------------\n";
				}
				nb_errs++;
				al += ' '+checkFieldsNames[j]+"\n";
			}
		}
	}

	if(!checkMailAddr(f.elements['livr_email'].value)) { 
		alfp += "Veuillez vérifier l'adresse e-mail des coordonnées de livraison.\n"; 
		nb_errs++;
	}
	if(nb_prefx==2) {
		if(!checkMailAddr(f.elements['fact_email'].value)) { 
			alfp += "Veuillez vérifier l'adresse e-mail des coordonnées de facturation.\n"; 
			nb_errs++;
		}
	}


	if(al.length>0) { alfp += "\n\n"; }

	if(nb_errs>0) {
		var almsg = "\n"+(alfp.length>0?alfp:'');
		if(al.length>0) almsg += 'Le'+(nb_errs>1?'s':'')+' champ'+(nb_errs>1?'s':'')+' suivant '+(nb_errs>1?'sont':'est')+' obligatoire'+(nb_errs>1?'s':'')+' !\n\n'+al; 
		alert(almsg);
	} else {
		if(f.elements['cgv_lues'].checked) {
			if(f.elements['IS_COMPANY'][0].checked && 'Z2___' == frais_port_code) {
				f.elements['livr_tva_intra'].value = trim(f.elements['livr_tva_intra'].value,'LR');
				if(''==f.elements['livr_tva_intra'].value) {
					UEexoTVAmsg = "\n\n\nRemarque\n\nPaiement sans éxonération de T. V. A. ?\n\n\n";
					ret = window.confirm(UEexoTVAmsg);
					if(!ret) {
						f.elements['livr_tva_intra'].style.backgroundColor = "#FAFBD7";
						f.elements['livr_tva_intra'].focus();
					}
				} else {
					ret = true;
				}
			} else {
				ret = true;
			}

		} else {
			if('calc'!=submitClicked.name) {
				alert('Vous devez déclarer avoir lu les condidions générales de vente !');
			} else {
				ret = true;
			}
		}
	}


	return ret;
}



function checkRecalc(f) {
	var ret = false;
	var warn_livr_tva_intra = false;
	var nb_errs   = 0;
	var alfp = '';
	var frais_port_code = '';

	if(f.elements['frais_port'].selectedIndex==0) {
		alfp += "Vous n'avez pas choisi de zone de livraison !\n\n";
		f.elements['frais_port'].focus();
		nb_errs++;
	} else {
		frais_port_code = f.elements['frais_port'].options[f.elements['frais_port'].selectedIndex].value.substr(0,5);
		if(frais_port_code!=f.elements['livr_pays'].options[f.elements['livr_pays'].selectedIndex].value.substr(0,5)) {
			f.elements['livr_pays'].options[0].checked;
			f.elements['livr_pays'].selectedIndex = 0;
		}
	}


	if(f.elements['IS_COMPANY'][0].checked && 'Z2___' == frais_port_code) {
		f.elements['livr_tva_intra'].value = trim(f.elements['livr_tva_intra'].value,'LR');
		if( ''==f.elements['livr_tva_intra'].value ) {
			var UEexoTVAmsg = "\n\n\nAttention!\n\nLe champ T.V.A. intra communautaire de l'adresse de livraison est vide ;\n";
			UEexoTVAmsg += "vous ne pouvez bénéficier de l'éxonération de T. V. A.\n\nVoulez vous continuer ?\n\n\n";
			if(!confirm(UEexoTVAmsg)) {
				warn_livr_tva_intra = true;
				f.elements['livr_tva_intra'].style.backgroundColor = "#FAFBD7";
				f.elements['livr_tva_intra'].focus();
				ret = false;
			}
		}
	}

	if(nb_errs>0) {
		var almsg = (alfp.length>0?alfp:'');
		alert(almsg);
	} else {
		ret = (warn_livr_tva_intra?false:true);
	}

	return ret;
}


function _synchrCTBA_Infos(sel) {
	var f = sel.form;
	var fp = f.elements['frais_port'];
	var lp = f.elements['livr_pays'];
	if( 'AA___'!=sel.value.substr(0,5) ) {
		fp.selectedIndex = 0;
		fp.options[0].selected = true;
		lp.selectedIndex = 0;
		lp.options[0].selected = true;
	}
}


function syncLivrPays(sel) {

	f = sel.form;
	var fp = sel;
	var lp = f.elements['livr_pays'];
	var ci = f.elements['ctba_infos'];

	var ctba_infos_code = ci.value.substr(0,5);
	var frais_port_code = fp.options[fp.selectedIndex].value.substr(0,5);
	var pays_port_code  = lp.options[sel.selectedIndex].value.substr(0,5);
	var do_recalc = false;
	
	if('AA___'!=ctba_infos_code) { ci.value="AA___	0.00"; ctba_infos_code="AA___"; }

	if(frais_port_code != pays_port_code) {
		lp.selectedIndex = 0;
		lp.options[0].selected = true;
		var recalc_msg = "Souhaitez-vous recalculer le montant de votre commande ?     \n\n";
		do_recalc = confirm("\n\n\n"+recalc_msg+"\n\n\n");
		if(do_recalc) {
			submitClicked = document.getElementById('calc');
			if( checkRecalc(f) ) {
				f.submit();
			}
		}
	}
}


function checkLivrZone(sel) {
	var alert_msg = "";
	var warn_msg0 = "";
	var warn_msg1 = "";
	var f = sel.form;
	var fp = f.elements['frais_port'];
	var ci = f.elements['ctba_infos'];

	var ci_tarif        = ci.value.substr(0,5);
	if('AA___'!=ci_tarif) { ci.value="AA___	0.00"; ci_tarif="AA___"; }

	var frais_port_code = fp.options[fp.selectedIndex].value.substr(0,5);
	var pays_port_code  = sel.options[sel.selectedIndex].value.substr(0,5);

	warn_msg0 += "\n- le tarif CTBA INFOS ne correspond pas au \n";
	warn_msg0 += "  pays de livraison.\n";
	warn_msg1 += "\n- la zone de livraison ne correspond pas au \n";
	warn_msg1 += "  pays de livraison.\n";
	
	if('Z1___'==pays_port_code || 'Z3___'==pays_port_code) {
		if('CA___'==ci_tarif) {
			alert_msg += warn_msg0;
		}
	} else {
		if('BA___'==ci_tarif) {
			alert_msg += warn_msg0;
		}
	}

	if(frais_port_code != pays_port_code) {
		alert_msg += warn_msg1;
		fp.focus();
	}
	if(alert_msg.length>0) {
		sel.selectedIndex = 0;
		sel.options[0].selected = true;
		alert("\n\n\nAttention !\n"+alert_msg+"\n\n\n")
	}
}

function sBubble(oSrc) {
	var o = getL('Bubble_'+oSrc.name);
	var os = o.style?o.style:o.document.style;
	os.visibility = o.style?'':'show';
	
}

function hBubble(oSrc) {
	var o = getL('Bubble_'+oSrc.name);
	var os = o.style?o.style:o.document.style;
	os.visibility = o.style?'hidden':'hide';
}

function getL(lName) {
	if(document.getElementById) return document.getElementById(lName);
	if(document.all) return document.all[lName];
	if(document.layers) return document.layers[lName];
}

function volatileCookie(cookieName,cookieValue) {
	document.cookie = cookieName+"="+escape(cookieValue);
}

function dayExpireCookie(cookieName,cookieValue,nDays) {
	var today = new Date();
	var expire = new Date();
	if (nDays==null || nDays==0) nDays=1;
	expire.setTime(today.getTime() + 3600000*24*nDays);
	document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
}



var el1_on = true; // c
var el2_on = false; // bc
var el3_on = false; // ba


var submitClicked = '';

window.status = "JS - chargé";
setTimeout("window.status=''",1000);



