/*********************************************************/
/*           detect the browser for css needs            */
/*********************************************************/

var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

if (checkIt('konqueror')) {
	browser = "Konqueror";
	OS = "linux";
}
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible')) {
	browser = "Netscape Navigator"
	version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
	if (checkIt('linux')) OS = "linux";
	else if (checkIt('x11')) OS = "unix";
	else if (checkIt('mac')) OS = "mac"
	else if (checkIt('win')) OS = "windows"
	else OS = "an unknown operating system";
}

function checkIt(string) {
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}

//Importation de la CSS propre au navigateur et au système
importCss();

function importCss() {
	//alert('navig : '+browser+' - os : '+OS);
	if (browser=='Netscape Navigator') {
		//alert('netscape');
		if (OS == 'mac') {
			document.write("<link href=\"css/lmac-"+OS+"-safari.css\" type=\"text/css\" rel=\"stylesheet\">");
		} else {
			//alert('win');
			document.write("<link href=\"css/lmac-"+OS+".css\" type=\"text/css\" rel=\"stylesheet\">");
		}
	} else if (OS == 'mac') {
		document.write("<link href=\"css/lmac-"+OS+".css\" type=\"text/css\" rel=\"stylesheet\">");
		//if (isaform) document.write("<link href=\"css/base_nn4_noscroll.css\" type=\"text/css\" rel=\"stylesheet\">");
	}
}

/*********************************************************/
/*          ouverture et fermeture des elements          */
/*********************************************************/
function openSearch () {
	var s = new getObj("search");
	var fs = new getObj("fsearch");
	var d = new getObj("desc");
	var fd = new getObj("fdesc");
	
	if (s.style.display == 'inline') {
		s.style.display = 'none';
		fs.style.display = 'none';
		d.style.display = 'inline';
		fd.style.display = 'inline';
	} else {
		s.style.display = 'inline';
		fs.style.display = 'inline';
		d.style.display = 'none';
		fd.style.display = 'none';
	}
}

function changeStateSubMenu (nameToOpen, nameToClosed) {
	var m = new getObj(nameToOpen);
	var m2 = new getObj(nameToClosed);
	
	m.style.display = 'inline';
	m2.style.display = 'none';
}

function changeVisibilitySubMenu (nameToOpen, nameToClosed) {
	var m = new getObj(nameToOpen);
	var m2 = new getObj(nameToClosed);
	
	m.style.visibility = 'visible';
	m2.style.visibility = 'hidden';
}

function displayFontiMenu (name) {
	var m = new getObj(name);
	var im = new getObj('imgtradi');
	
	if (m.style.display == 'inline') {
		m.style.display = 'none';
		eval("img"+name+".src = 'images/fontiFlecheDroite.jpg'");
	} else {
		m.style.display = 'inline';
		eval("img"+name+".src = 'images/fontiFlecheBas.jpg'");
	}
}

function getObj (name) {
	 if (document.getElementById)
	 {
		this.obj = document.getElementById(name);
		this.style = document.getElementById(name).style;
	 }
	 else if (document.all)
	 {
		this.obj = document.all[name];
		this.style = document.all[name].style;
	 }
	 else if (document.layers)
	 {
		this.obj = getObjNN4(document,name);
		this.style = this.obj;
	 }
}

function getObjNN4(obj,name) {
	var x = obj.layers;
	var thereturn;
	for (var i=0;i<x.length;i++)
	{
		if (x[i].id == name)
		 	thereturn = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i], name);
		if (tmp) thereturn = tmp;
	}
	return thereturn;
}

function NewWindow(mypage, myname, w, h, scroll) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable';
	win = window.open(mypage, myname, winprops);
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

function openInfoWindow (mypage, w, h) {
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars=yes,resizable';
	win = window.open(mypage, 'infos', winprops);
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

/************************************/
/*       Quinzaine Littéraire       */
/************************************/
function changeMode(mode) {
	document.getElementById('searchMode').setAttribute('value', mode);
	var spanEt = document.getElementById('et');
	var spanOu = document.getElementById('ou');
	if(mode == 'or') {
		if(spanEt.getAttribute('class') != null) {
			spanEt.setAttribute('class', 'textB');
			spanOu.setAttribute('class', 'op2');
		} else {
			spanEt.style.display = 'none';
			document.getElementById('et1').style.display = 'inline';
			spanOu.style.display = 'none';
			document.getElementById('ou1').style.display = 'inline';
		}
	} else {
		if(spanEt.getAttribute('class') != null) {
			spanOu.setAttribute('class', 'textB');
			spanEt.setAttribute('class', 'op1');
		} else {
			document.getElementById('et1').style.display = 'none';
			spanEt.style.display = 'inline';
			document.getElementById('ou1').style.display = 'none';
			spanOu.style.display = 'inline';
		}
	}
}

/*  Ouverture fenetre pour visualisation d'une fiche  */
function fopen (idno) {
	winprops = 'height=500, width=650, top=20, left=20, scrollbars=yes, resizable=yes';
	eval("window.open('quinzLittView.php?idno='+idno, 'VisualisationArticle', '"+winprops+"')");
}

function openQuinzaine (page) {
	winprops = 'height=437, width=227, top=20, left=150, scrollbars=no, resizable';
	window.open('quinzLittImg/'+page, 'ViewList', winprops);
}

function displayTri () {
	document.getElementById('selectTri').style.display = 'inline';
}

function selectTri (tri) {
	document.forms.quinzLitt.tri.value = tri;
	document.forms.quinzLitt.submit();
	document.getElementById('selectTri').style.display = 'none';
}

function openPrintWindow () {
	winprops = 'height=450, width=650, top=20, left=150, scrollbars=yes, menubar=yes, resizable';
	window.open('quinzLittPrint.php', 'PrintResult', winprops);
}

/************ Bandeau d'actualité ************/
var clipTopH = 0;
var clipWidthHStart = 10;
var clipWidthH = clipWidthHStart;
var clipBottomH = 200;
var clipLeftH = 0;
var topperToStartH = 700;
var topperH = topperToStartH;
var lyrheightH = 100;
var timeH,amountH,theTimeH,theHeightH,DHTML,jump;

function prepNews() {
	if (document.getElementById('news') != null) {
		DHTML = (document.getElementById || document.all || document.layers)
		if (!DHTML) return;
		var x = new getObj('news');
		if (document.layers)
		{
			lyrheightH = x.style.clip.left;
			lyrheightH += 20;
			x.style.clip.top = clipTopH;
			x.style.clip.left = clipLeftH;
			x.style.clip.right = clipWidthH;
			x.style.clip.bottom = clipBottomH;
		}
		else if (document.getElementById || document.all)
		{
			lyrheightH = x.obj.offsetWidth;
			x.style.clip = 'rect('+clipTopH+' '+clipWidthH+' '+clipBottomH+' '+clipLeftH+')';
		}
	}
}

function scrollayerH(layername, amt, tim, posjump) {
	if (!DHTML) return;
	thelayer = new getObj(layername);
	if (!thelayer) return;
	amountH = amt;
	theTimeH = tim;
	jump = posjump;
	horizontalScroll();
}

function horizontalScroll() {
	if (!DHTML) return;
	clipWidthH += amountH;
	topperH -= amountH;
	if (topperH <= jump) {
		topperH = topperToStartH;
		clipLeftH = 0;
		clipWidthH = clipWidthHStart;
	}
	if (document.getElementById || document.all)
	{
		clipstring = 'rect('+clipTopH+' '+clipWidthH+' '+clipBottomH+' '+clipLeftH+')';
		thelayer.style.clip = clipstring;
		thelayer.style.left = topperH + "px";
		//return;
	}
	else if (document.layers)
	{
		thelayer.style.clip.top = clipTopH;
		thelayer.style.clip.bottom = clipBottomH;
		thelayer.style.top = topperH + "px";
	}
	time = setTimeout('horizontalScroll()', theTimeH);
}

/*********************************************/
function prixQuinzaine (price) {
	if (document.forms.typeQuinzaine.remise.checked) {
		document.forms.typeQuinzaine.prix.value = Math.floor(price-price*0.33);
	} else {
		document.forms.typeQuinzaine.prix.value = price;
	}
}

function addToBasket (article, formu, lang) {
	var a = false;
	if ("en" == lang) {
		a = confirm ("Add this article to your cart ?");
	} else {
		a = confirm (article + "\nSouhaitez-vous ajouter cet article à votre panier?");
	}
	if (a) {
		eval("document.forms.f" + formu + ".submit();");
	}
}

function addPromo () {
	document.forms.promoForm.submit();
}

function modifyBasket (quantity, formu, lang) {
	//if (action == 'add') {
	a = true;
	
	if (quantity == 0) {
		if ("en" == lang) {
			a = confirm ("Delete this article ?");
		} else {
			a = confirm ("Souhaitez-vous supprimer cet article ?");
		}
	}
	
	if (a) {
		eval("document.forms.f" + formu + ".quantity").value = quantity;
		eval("document.forms.f" + formu + ".submit();");
	}
	/*} else {
		eval("document.forms.f" + formu + ".quantity.value") = -1;
	}*/
}

/*function modifyBasket (article, formu) {
	var a = false;
	if (eval("document.forms.f" + formu + ".quantity.value") == 0) {
		a = confirm (article + "\nSouhaitez-vous supprimer cet article ?");
	} else {
		a = confirm (article + "\nConfirmez-vous la quantité ?");
	}
	
	if (a) {
		eval("document.forms.f" + formu + ".submit();");
	}
}*/

function openWinUpBasket (action, editor, ref) {
	winprops = 'height=50, width=300, top=20, left=20, scrollbars=yes, resizable=yes';
	eval("window.open('basketup.php?a="+action+"&ide="+editor+"&idp="+ref+"', 'UpdateBasket', '"+winprops+"')");
}

function refresh_main () {
	parent.opener.location = "main.php?db=lmac&tbl=indexsearch";
	parent.close();
}

function submitAddress () {
	var error = false;
	
	if (document.forms.command.name.value == "") {
		error = true; var span = document.getElementById('spanName'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanName'); span.style.color = "#000000";
	}
	if (document.forms.command.firstname.value == "") {
		error = true; var span = document.getElementById('spanFirstname'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanFirstname'); span.style.color = "#000000";
	}
	if (document.forms.command.address.value == "") {
		error = true; var span = document.getElementById('spanAddress'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanAddress'); span.style.color = "#000000";
	}
	if (document.forms.command.cp.value == "") {
		error = true; var span = document.getElementById('spanCp'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanCp'); span.style.color = "#000000";
	}
	if (document.forms.command.city.value == "") {
		error = true; var span = document.getElementById('spanCity'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanCity'); span.style.color = "#000000";
	}
	if (document.forms.command.country.value == "") {
		error = true; var span = document.getElementById('spanCountry'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanCountry'); span.style.color = "#000000";
	}
	if (document.forms.command.email.value == "") {
		error = true; var span = document.getElementById('spanEmail'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanEmail'); span.style.color = "#000000";
	}
	
	if (error) {
		alert('Veuillez remplir les champs indiqués en rouge');
	} else if (!emailCheck(document.forms.command.email.value)) {
		alert('Veuillez indiquer une adresse email valide');
	} else {
		if (document.forms.command.addfact.checked) {
			document.forms.command.action = 'commander.php';
		} else {
			document.forms.command.action = 'confirm.php';
		}
		document.forms.command.submit();
	}
}

function modifyAddress () {
	document.forms.command.action = 'commander.php';
	return;
}

function confirmCommand (lang) {
	if (document.forms.confirm.paiement.value == "#") {
		if (lang == "en") {
			alert('Please choose your payment method');
		} else {
			alert('Veuillez choisir un mode de paiement');
		}
	} else {
		document.forms.confirm.action = 'createCommand.php';
		document.forms.confirm.submit();
	}
}

function modifyCommand () {
	document.forms.confirm.action = 'basket.php';
}

function validCommand () {
	if (document.forms.confirm.conditions.checked) {
		if (document.forms.confirm.total.value == '') {
			alert('Veuillez sélectionner un mode d\'envoi');
		} else {
			modify='no';
			var s = new getObj("modePaiement");
			
			s.style.display = 'inline';
		}
	} else {
		alert('Vous devez accepter les conditions de ventes pour continuer');
	}
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:'\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		//alert("Email address seems incorrect (check @ and .'s)")
		return false
	}
	
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
	    // user is not valid
	    //alert("The username doesn't seem to be valid.")
	    return false
	}
	
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
	    // this is an IP address
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
		        //alert("Destination IP address is invalid!")
				return false
		    }
	    }
	    return true
	}
	
	// Domain is symbolic name
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		//alert("The domain name doesn't seem to be valid.")
	    return false
	}
	
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
	   // the address must end in a two letter or three letter word.
	   //alert("The address must end in a three-letter domain, or two letter country.")
	   return false
	}
	
	// Make sure there's a host name preceding the domain.
	if (len<2) {
	   //alert("This address is missing a hostname!")
	   return false
	}
	
	// If we've gotten this far, everything's valid!
	return true;
}

function submitMailing () {
	var error = false;
	var erMail= false;
	
	if (document.forms.mailing.mail.value == "" || !emailCheck(document.forms.mailing.mail.value)) {
		if (document.forms.mailing.mail.value != "") {
			erMail = true;
		}
		error = true; var span = document.getElementById('spanMail'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanMail'); span.style.color = "#000000";
	}
	if (document.forms.mailing.name.value == "") {
		error = true; var span = document.getElementById('spanName'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanName'); span.style.color = "#000000";
	}
	if (document.forms.mailing.firstname.value == "") {
		error = true; var span = document.getElementById('spanFirstname'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanFirstname'); span.style.color = "#000000";
	}
	/*if (document.forms.mailing.city.value == "") {
		error = true; var span = document.getElementById('spanCity'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanCity'); span.style.color = "#000000";
	}
	if (document.forms.mailing.country.value == "") {
		error = true; var span = document.getElementById('spanCountry'); span.style.color = "#FF0000";
	} else {
		var span = document.getElementById('spanCountry'); span.style.color = "#000000";
	}*/
	
	if (error) {
		if (erMail) {
			alert('L\'adresse email insérée n\'est pas valide');
		} else {
			alert('Veuillez remplir les champs indiqués en rouge');
		}
	} else {
		document.forms.mailing.submit();
	}
}
