// menu
var timeout=500;
var closetimer=0;

function menu_show() {
	menu_canceltimer();
	//$('#menu_slide').css('visibility', 'visible');
	$('#menu_slide').fadeIn('fast');
}

function menu_hide() {
	//$('#menu_slide').css('visibility', 'hidden');
	$('#menu_slide').fadeOut('fast');
}

function menu_timer() {
	 closetimer = window.setTimeout(menu_hide, timeout);
}

function menu_canceltimer() {
	if(closetimer) {
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

$(document).ready(function() {
	$('.menu1st').bind('mouseover', menu_show);
	$('.menu1st').bind('mouseout',  menu_timer);
	$('#menu_slide').bind('mouseover', menu_show);
	$('#menu_slide').bind('mouseout',  menu_timer);
	
	$('.pic img').each(function() {
		$(this).cjObjectScaler({
			method: 'fit', fade: 1
		});
	});
});


/*!#################
		Facebook
#################*/
var fbTimer=0;
var fbTimeout=500;

function fbShowTop() {
	$('#fb_ctnr').removeClass('bottom').addClass('top');
	fbShow();
}

function fbShowBtm() {
	$('#fb_ctnr').removeClass('top').addClass('bottom');
	fbShow();
}

function fbShow() {
	fbCancelTimer();
	if($('#fb_ctnr:animated').get().length) { //still animating
		$('#fb_ctnr').stop().animate({height: '427px',opacity: '1'},0);
	} else {
		$('#fb_ctnr').show();
		$('#fb_ctnr').animate({height: '427px'},500);
	}
}

function fbHide() {
	fbTimer=0;
	$('#fb_ctnr').fadeOut(500).animate({height: '0px'},0);
}

function fbSetTimer() {
	if(!fbTimer)
		fbTimer=window.setTimeout(fbHide,fbTimeout);
}

function fbCancelTimer() {
	if(fbTimer) {
		window.clearTimeout(fbTimer);
		fbTimer=0;
	}
}

$(document).ready(function() {
	$('#fb_toplink').bind('mouseover', fbShowTop);
	$('#fb_toplink').bind('mouseout',  fbSetTimer);
	$('#fb_btmlink').bind('mouseover', fbShowBtm);
	$('#fb_btmlink').bind('mouseout',  fbSetTimer);
	$('#fb_ctnr').bind('mouseover', fbShow);
	$('#fb_ctnr').bind('mouseout',  fbSetTimer);
});

/*!########################
	community (fiche article)
########################*/
function communityExpand() {
	$('#article .community').removeClass('closed');}
function communityClose() {
	$('#article .community').addClass('closed');}

$(document).ready(function() {
	$('#article .community').bind('mouseover',communityExpand);
	$('#article .community').bind('mouseout',communityClose);
});

/*!####################
			login/logout
####################*/
function login(usr,pwd) {
	if( (usr!='') && (usr!='Email') && (pwd!='') ) {
		$.get('/ajax/login.php', { lgn: usr, pwd: pwd },
			function(data) {
				if(data.substring(0,1)=='0') {
					if(Errno=='err_login')  MsgBoxErr_close();
					$('#lgn_ctnr').fadeOut('slow',function() {
						$('#lgn_ctnr').html(data.substring(1));
						$('#lgn_ctnr').fadeIn('slow');
					});
					refetchCartDetails();
					reviewRefetch();
				} else {
					//MsgBoxErr_show('err_login',580,140,data.substring(1));
					MsgBoxErr_show('err_login',$('#header').offset().left+580,$('#header').offset().top+140,data.substring(1));
					//alert('Erreur ' + data.substring(1));
				}
			}
		);
	}
}

function logout() {
		$.get('/ajax/login.php', { lgn: 'logout' },
			function(data) {
				if(data.substring(0,1)=='0') {
					$('#lgn_ctnr').fadeOut('slow',function() {
						$('#lgn_ctnr').html(data.substring(1));
						bindLogControls();
						$('#lgn_ctnr').fadeIn('slow');
					});
					refetchCartDetails();
					reviewRefetch();
				} else alert('Erreur ' + data.substring(1));
			}
		);
}

function bindLogControls() {
	$('#hdr_input_pass_clear').show();

	$('#hdr_input_pass_clear').focus(function() {
		$('#hdr_input_pass_clear').hide();
		$('#hdr_input_pass').focus();
	});
	$('#hdr_input_pass').blur(function() {
		if($('#hdr_input_pass').val()=='') {
			$('#hdr_input_pass_clear').val('Mot de passe');
			$('#hdr_input_pass_clear').show();
		}
	});

	$('#hdr_input_mail').focus(function() {
		if($('#hdr_input_mail').val()=='Email') {
			$('#hdr_input_mail').val('');
		}
	});
	$('#hdr_input_mail').blur(function() {
		if($('#hdr_input_mail').val()=='') {
			$('#hdr_input_mail').val('Email');
		}
	});
	
	$('#hdr_input_mail').keydown(function(event) {
		if (event.keyCode==13) {
			login($('#hdr_input_mail').val(),$('#hdr_input_pass').val());
		}
	});
	$('#hdr_input_pass').keydown(function(event) {
		if (event.keyCode==13) {
			login($('#hdr_input_mail').val(),$('#hdr_input_pass').val());
		}
	});
}

$(document).ready(function() {
	bindLogControls();
	$(document).click(function(e){
		mX=e.pageX;
		mY=e.pageY;
	
		if((mX<$('#srch').offset().left)||(mX>$('#srch').offset().left+$('#srch').width()+4))
			searchHide();
		if((mY<$('#sbox').offset().top)||(mY>$('#srch').offset().top+$('#srch').height()+4))
			searchHide();
   });
});

/*!###################
	gesion des erreurs
####################*/
var Errno='',Infono='';
var mX,mY;

function MsgBoxErr_show(err,x,y,desc) {
	if(Errno=='') {
		$('#MsgBoxErr').css('top',y);
		$('#MsgBoxErr').css('left',x);
		$('#MsgBoxErr .err_desc').html(desc);
		$('#MsgBoxErr').fadeIn('slow');
	} else { //deja une erreur
		if(Errno==err) { //la même 
			$('#MsgBoxErr').hide();
			$('#MsgBoxErr').css('top',y);
			$('#MsgBoxErr').css('left',x);
			$('#MsgBoxErr .err_desc').html(desc);
			$('#MsgBoxErr').fadeIn('slow');
		}
		else { //une autre
			$('#MsgBoxErr').hide();
			$('#MsgBoxErr').css('top',y);
			$('#MsgBoxErr').css('left',x);
			$('#MsgBoxErr .err_desc').html(desc);
			$('#MsgBoxErr').fadeIn('slow');
		}
	}
	Errno=err;
}

function MsgBoxErr_close() {
	Errno='';
	$('#MsgBoxErr').fadeOut('slow');
}

function MsgBoxInfo_show(err,x,y,desc) {
	if(Infono=='') {
		$('#MsgBoxInfo').css('top',y);
		$('#MsgBoxInfo').css('left',x);
		$('#MsgBoxInfo .err_desc').html(desc);
		$('#MsgBoxInfo').fadeIn('slow');
	} else { //deja une info
		if(Infono==err) { //la même 
			$('#MsgBoxInfo').hide();
			$('#MsgBoxInfo').css('top',y);
			$('#MsgBoxInfo').css('left',x);
			$('#MsgBoxInfo .err_desc').html(desc);
			$('#MsgBoxInfo').fadeIn('slow');
		}
		else { //une autre
			$('#MsgBoxInfo').hide();
			$('#MsgBoxInfo').css('top',y);
			$('#MsgBoxInfo').css('left',x);
			$('#MsgBoxInfo .err_desc').html(desc);
			$('#MsgBoxInfo').fadeIn('slow');
		}
	}
	Infono=err;
}

function MsgBoxInfo_close() {
	Infono='';
	$('#MsgBoxInfo').fadeOut('slow');
}

/*!#################
			panier
##################*/
function refetchCart() {
	$.get('/ajax/add.php', { fetch: 1 }, function(data) {
		if(data.substring(0,1)=='0') {
			if(Errno=='err_fetchCart')  MsgBoxErr_close();
			refillCart(data.substring(1));
		} else {
			MsgBoxErr_show('err_fetchCart',mX+10,mY+10,data.substring(1));
		}
	});
}

function refillCart(data) {
	$('#CartList').fadeOut('fast',function() {
			$('#CartList').html(data);
			$('#CartList').fadeIn('fast');
	});
}

function CartAdd(art) {
	//alert('ajout de ' + art);
	$.get('/ajax/add.php', { ref: art },
		function(data) {
			if(data.substring(0,1)=='0') {
				if(Errno=='err_addart')  MsgBoxErr_close();
				if(data.substring(1,2)=='0') {
					if(data.substring(2,3)=='c')
						window.location='/panier/';
					refillCart(data.substring(3));
				} else {
					len=parseFloat(data.substring(2,8));
					refillCart(data.substring(8+len));
					cartInfoShow(data.substring(8,8+len));
				}
				refetchCartDetails();
			} else {
				MsgBoxErr_show('err_addart',mX+10,mY+10,data.substring(1));
			}
		});
}

function cartShippingMod() {
	$.get('/ajax/cartMod.php', { shipping: $('#portSelect').val() },
	function(data) {
		if(data.substring(0,1)=='0') {
			if(Errno=='err_cartmod')  MsgBoxErr_close();
			$('.cartPage').html(data.substring(1));
			$('.cartPage .pic img').each(function() {
				$(this).cjObjectScaler({
				method: 'fit', fade: 1
			});});
		} else {
			MsgBoxErr_show('err_cartmod',mX+10,mY+10,data.substring(1));
		}
	});
}

function cartMod(ref,qt) {
	$.get('/ajax/cartMod.php', {ref: ref,qt: qt },
	function(data) {
		if(data.substring(0,1)=='0') {
			if(Errno=='err_cartmod')  MsgBoxErr_close();
			refetchCart();
			$('.cartPage').html(data.substring(1));
			$('.cartPage .pic img').each(function() {
				$(this).cjObjectScaler({
				method: 'fit', fade: 1
			});});
		} else {
			MsgBoxErr_show('err_cartmod',mX+10,mY+10,data.substring(1));
		}
	});
}

function refetchCartDetails() {
	if($('.cartPage').html()!=null) {
		$.get('/ajax/cartMod.php', {refetch: 1},
		function(data) {
			if(data.substring(0,1)=='0') {
				if(Errno=='err_cartmod')  MsgBoxErr_close();
				$('.cartPage').html(data.substring(1));
				$('.cartPage .pic img').each(function() {
					$(this).cjObjectScaler({
					method: 'fit', fade: 1
				});});
			} else MsgBoxErr_show('err_cartmod',mX+10,mY+10,data.substring(1));
	});
	}
}

function cartInfoShow(data) {
	$('#cartinfo').html(data);
	$('#cartinfo .pic img').cjObjectScaler({method: 'fit', fade: 1});
	$('#cartinfoBG').hide();
	$('#cartinfo').css('width','0px');
	$('#cartinfoBG').fadeIn(500);
	$('#cartinfo').animate({ 'width': 500 }, 500);
}

function cartInfoToCart() {
	if($('#chkCartInfo').is(':checked'))
		$.get('/ajax/settings.php', {alwayscart: 'on'},function(data){window.location='/panier/';});
	else window.location='/panier/';
}

function cartInfoClose() {
	if($('#chkCartInfo').is(':checked'))
		$.get('/ajax/settings.php', {nevercart: 'on'},function(data){$('#cartinfoBG').fadeOut(500);});
	else $('#cartinfoBG').fadeOut(500);
}

/*!###################
			mail
####################*/
var mailRef='';

function mailTo() {
	$('#mailto_ctnr :input').attr('disabled','disabled');
	$('#mailTips').html('');
	$('#mailto_mail').val($('#mailto_mail').val().toLowerCase());
	$('#mailto_ctnr :input').removeClass('error');
	$('#mailTips').removeClass('mailTipsError');

	if (!(/[a-z0-9!#$%&'*+\u002F=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\u002F=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b/.test($('#mailto_mail').val()))) {
		$('#mailto_mail').addClass('error',500);
		$('#mailTips').html($('#mailTips').html() + 'Format Email non valide.' + '<br/>');
		$('#mailTips').addClass('mailTipsError',500);
		$('#mailto_ctnr :input').removeAttr('disabled');
	} else { //envoyer
		$.post('/ajax/mailTo.php',{email: $('#mailto_mail').val(), msg: $('#mailto_msg').val(), ref: mailRef},function(data){
			if(data.substring(0,1)=='0') {
				$('#mailTips').html(data.substring(1));
				$('#mailTips').addClass('mailTipsSuccess',500);
			} else { //erreur
				$('#mailTips').html(data.substring(1));
				$('#mailTips').addClass('mailTipsError',500);
				$('#mailto_ctnr :input').removeAttr('disabled');
			}
		});
	}
}

function mailClose() {
	$('#cartinfoBG').fadeOut(500);
}

function mailShow(ref) {
	$.get('/ajax/mailTo.php',{ref: ref},function(data){
		if(data.substring(0,1)=='0') { //ok
			if(Errno=='err_mailTo')  MsgBoxErr_close();
			if(Infono=='info_mailTo')  MsgBoxInfo_close();
			
			$('#cartinfo').html(data.substring(1));
			$('#mailto_btnCancel').click(mailClose);
			$('#mailto_btnSend').click(mailTo);
			mailRef=ref;
			$('#cartinfo .pic img').cjObjectScaler({method: 'fit', fade: 1});
			$('#cartinfoBG').hide();
			$('#cartinfo').css('width','0px');
			$('#cartinfoBG').fadeIn(500);
			$('#cartinfo').animate({ 'width': 500 }, 500);
		} else {
			if(data.substring(0,1)=='i') MsgBoxInfo_show('info_mailTo',mX+10,mY+10,data.substring(1));
				else MsgBoxErr_show('err_mailTo',mX+10,mY+10,data.substring(1));
		}
	});
}

/*!######################
			alarmes
#######################*/
var alarmRef="";

function setAlarm() {
	$('#alarm_ctnr :input').attr('disabled','disabled');
	$('#alarmTips').html('');
	$('#alarmTips').removeClass('alarmTipsError');

	$.get('/ajax/setAlarm.php',{cmd: 'set', ref: alarmRef},function(data){
		if(data.substring(0,1)=='0') {
			$('#alarmTips').html(data.substring(1));
			$('#alarmTips').addClass('alarmTipsSuccess',500);
		} else { //erreur
			$('#alarmTips').html(data.substring(1));
			$('#alarmTips').addClass('alarmTipsError',500);
			$('#alarm_ctnr :input').removeAttr('disabled');
		}
	});
}

function offerAlarm(ref) {
	$.get('/ajax/setAlarm.php',{ref: ref},function(data){
			if(data.substring(0,1)=='0') { //ok
			if(Errno=='err_alarm')  MsgBoxErr_close();
			if(Infono=='info_alarm')  MsgBoxInfo_close();
			
			$('#cartinfo').html(data.substring(1));
			$('#alarm_btnCancel').click(alarmClose);
			$('#alarm_btnSend').click(setAlarm);
			alarmRef=ref;
			$('#cartinfo .pic img').cjObjectScaler({method: 'fit', fade: 1});
			$('#cartinfoBG').hide();
			$('#cartinfo').css('width','0px');
			$('#cartinfoBG').fadeIn(500);
			$('#cartinfo').animate({ 'width': 500 }, 500);
		} else {
			if(data.substring(0,1)=='i') MsgBoxInfo_show('info_alarm',mX+10,mY+10,data.substring(1));
				else MsgBoxErr_show('err_alarm',mX+10,mY+10,data.substring(1));
		}
	});
}

function alarmClose() {
	$('#cartinfoBG').fadeOut(500);
}


/*!###################
		enregistrement
###################*/
function regShow() {
	$('#regFields :input').val('');
	$('#regFields :input').removeAttr('disabled');
	$('#regFields :input').removeClass('error');
	$('#regTips').removeClass('regTipsError');
	$('#regTips').removeClass('regTipsSuccess');
	$('#regTips').html('Remplissez le formulaire et cliquez sur le bouton valider pour vous enregistrer.');

	$('#regBG').hide();
	$('#register').css('width','0px');
	$('#regBG').fadeIn(500);
	$('#register').animate({ 'width': 500 }, 500);
}

function regClose() {
	$('#regBG').fadeOut(500);
}

function regTips(n) {
	$('#regTips').html($('#regTips').html() + n + '<br/>');
	//$('#regTips').addClass('regTipsError',500);
}

function checkEmpty(o,n) {
	if ( !o.val().length ) {
		o.addClass('error',500);
		regTips(n);
		o.focus();
		return false;
	} else {
		return true;
	}
}

function checkRegexp(o,regexp,n) {
	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass('error',500);
		regTips(n);
		o.focus();
		return false;
	} else {
		return true;
	}
}

function regValidate() {
	var valid=true;
	$('#regTips').html('');
	$('#regEmail').val($('#regEmail').val().toLowerCase());
	$('#regFields :input').removeClass('error');
	$('#regTips').removeClass('regTipsError');

	valid&=checkRegexp($('#regEmail'),/[a-z0-9!#$%&'*+\u002F=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\u002F=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[a-z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b/,"Format Email non valide.");
	valid&=checkRegexp($('#regTel'),/^([0-9-\+() .])*$/,"Format n° de téléphone invalide.");
	if(($('#regPass').val()!=$('#regPass2').val())||($('#regPass').val()=='')) {
		$('#regPass').addClass('error',500);
		$('#regPass2').addClass('error',500);
		if($('#regPass').val()=='')
			regTips("Mot de passe doit être renseigné")
		else regTips("Mot de passe et confirmation doivent être identiques.")
		valid=false;}
	valid&=checkEmpty($('#regNom'),"Nom doit être renseigné.");
	valid&=checkEmpty($('#regPrenom'),"Prenom doit être renseigné.");
	valid&=checkEmpty($('#regAdr'),"Adresse doit être renseigné.");
	valid&=checkEmpty($('#regCP'),"Code postal doit être renseigné.");
	valid&=checkEmpty($('#regVille'),"Ville doit être renseigné.");
	valid&=checkEmpty($('#regPays'),"Pays doit être renseigné.");
	if(!valid) $('#regTips').addClass('regTipsError',500);
	return(valid);
}

$(document).ready(function() {
	$('#regFields :input').removeAttr('disabled');
	$('#regBtnCancel').click(function() {
		regClose();
	});
	$('#regBtnSubmit').click(function() {
		$('#regFields :input').attr('disabled','disabled');
		if(regValidate()) {
			$.post('/ajax/register.php', { regEmail: $('#regEmail').val(), regPass: $('#regPass').val(), regPass2: $('#regPass2').val(), regNom: $('#regNom').val(), regPrenom: $('#regPrenom').val(), regAdr: $('#regAdr').val(), regCP: $('#regCP').val(), regVille: $('#regVille').val(), regPays: $('#regPays').val(), regTel: $('#regTel').val(), regMlist: $('#regMlist').is(':checked') }, function(data) {
				if(data.substring(0,1)=='0') {
					$('#regTips').html(data.substring(1));
					$('#regTips').addClass('regTipsSuccess',500);
					login($('#regEmail').val(),$('#regPass').val());
				} else {
					$('#regTips').html(data.substring(1));
					$('#regTips').addClass('regTipsError');
					$('#regFields :input').removeAttr('disabled');
				}
			});
		} else $('#regFields :input').removeAttr('disabled');
	});
});

/*!################
	Recherche
################*/
var srchDisplayed=false;

$(document).ready(function() {
	$('#sbox').focus(function() {
		if($('#sbox').val()=='Rechercher')
			$('#sbox').val('');});
	$('#sbox').blur(function() {
		if($('#sbox').val()=='')
			$('#sbox').val('Rechercher');});
});

$(document).ready(function() {
	$('#sbox').keyup(function (event) {
		if(event.keyCode!=13)
			search();
	});
	$('#sbox').focus(function () {
		if(($('#sbox').val()!="")&&($('#sbox').val()!="Rechercher")) {
			if(!srchDisplayed) {
				$('#srch').fadeIn('fast',function(){});
				srchDisplayed=true;
			}
		}
	});
});

function search() {
	if($('#sbox').val()=="") {
		$('#srch').fadeOut('fast',function(){});
		srchDisplayed=false;
	} else {
		$.get('/ajax/search.php', {sstr: $('#sbox').val() }, function(data) {
			if(data.substring(0,1)=='0') {
				if(Errno=='err_search')	MsgBoxErr_close();
				$('#srch').html(data.substring(1));
				$('#srch .pic img').cjObjectScaler({method: 'fit', fade: 1});
				if(!srchDisplayed) {
					$('#srch').fadeIn('fast',function(){});
					srchDisplayed=true;
				}
			} else {
				//alert('Erreur recherche:\n' + data);
				MsgBoxErr_show('err_search',$('#header').offset().left+310,$('#header').offset().top+110,data.substring(1));
			}
		});
	}
}

function searchHide() {
	srchDisplayed=false;
	$('#srch').fadeOut('fast',function(){});
}

/*!###################
		devises
###################*/
$(document).ready(function() {
	$('#devise_select').change(function(){
		$.get('/ajax/settings.php',{devise: $('#devise_select').val()},function(data){
			window.location.reload();
		});
	});
});


/*!###################
		notes articles
####################*/
var refArt="";
var baseNote=0;

function reviewsOut() {
	for(x=1;x<6;x++) {
		if(x<=baseNote) $('#v'+x).attr('src','/pict/art/art_usrnote1.png');
			else $('#v'+x).attr('src','/pict/art/art_usrnote0.png');
	}
}

function reviewsIn(d) {
	for(x=1;x<6;x++) {
		if(x<=d) $('#v'+x).attr('src','/pict/art/art_usrnote1.png');
			else $('#v'+x).attr('src','/pict/art/art_usrnote0.png');
	}
}

function review(ref,note) {
	$.get('/ajax/review.php',{ref: refArt,note: note},function (data) {
		if(data.substring(0,1)=='0') {
			if(Errno=='err_review')	MsgBoxErr_close();
			baseNote=parseInt(data.substring(1,2));
			$('#avis').html(data.substring(2));
			bindReviewConstrols();
		} else MsgBoxErr_show('err_review',mX,mY,data.substring(1));
	});
}

function reviewRefetch() {
	if($('#avis').html()!=null) {
		$.get('/ajax/review.php',{cmd: 'refetch',ref: refArt},function (data) {
			if(data.substring(0,1)=='0') {
				if(Errno=='err_review')	MsgBoxErr_close();
				baseNote=parseInt(data.substring(1,2));
				$('#avis').html(data.substring(2));
				bindReviewConstrols();
			} else MsgBoxErr_show('err_review',mX,mY,data.substring(1));
		});
	}
}

function bindReviewConstrols() {
	$('#v1').hover(function(){reviewsIn(1);},function(){reviewsOut();});
	$('#v2').hover(function(){reviewsIn(2);},function(){reviewsOut();});
	$('#v3').hover(function(){reviewsIn(3);},function(){reviewsOut();});
	$('#v4').hover(function(){reviewsIn(4);},function(){reviewsOut();});
	$('#v5').hover(function(){reviewsIn(5);},function(){reviewsOut();});
	$('#v1').click(function(){review(refArt,1);});
	$('#v2').click(function(){review(refArt,2);});
	$('#v3').click(function(){review(refArt,3);});
	$('#v4').click(function(){review(refArt,4);});
	$('#v5').click(function(){review(refArt,5);});
}

$(document).ready(function() {
	bindReviewConstrols();
});

