// AJAX SubSystem : User-End

// Ajax Object
function createRequestObject() 
{
    var ro;
    var browser = navigator.appName;
    if (browser == "Microsoft Internet Explorer") {
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();

// Add item to list
function addToList(user, item, type, force)
{
	if (force == false) {
		http.open('get', '/ajax.ctrl.php?action=addqueue&user=' + user + '&item=' + item + "&type=" + type + "&force=0");
	} else {
		http.open('get', '/ajax.ctrl.php?action=addqueue&user=' + user + '&item=' + item + "&type=" + type + "&force=1");	
	}
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;
			if (response == 1) {
				document.getElementById('successText').innerHTML = 'L\'item a &eacute;t&eacute; ajout&eacute; avec succes &agrave; votre zapliste.';
				document.getElementById('itemSuccess').style.display = '';
				setTimeout("hideMsgBox()", 3000);
			} else if (response == 2) { 
				document.getElementById('successText').innerHTML = 'D&eacute;sol&eacute;, l\'item est d&eacute;j&agrave; dans votre zapliste.';
				document.getElementById('itemSuccess').style.display = '';
				setTimeout("hideMsgBox()", 3000);
			} else if (response == 3) {
				document.getElementById('successText').innerHTML = 'D&eacute;sol&eacute;, votre zapliste est pleine (maximum 150)';
				document.getElementById('itemSuccess').style.display = '';
				setTimeout("hideMsgBox()", 3000);
			} else if (response == 4) {
				addToList(user, item, type, 1);
			} else {
				alert(response);	
			}
		}
	}
	http.send(null);
}

// Hide Message Box For Adding To Queue
function hideMsgBox()
{
	document.getElementById('itemSuccess').style.display = 'none';
}

// Add item to shopping cart
function addToCart(item, type, user, kind)
{
	http.open('get', '/ajax.ctrl.php?action=addcart&user=' + user + '&item=' + item + "&type=" + type + "&kind=" + kind);	
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;
			if (response == 3) {
				alert('L\'item ne peut etre ajoute car un probleme subsiste avec votre carte de credit.');	
			} else if (response == 2) {
				alert('Item en rupture de stock');	
			} else if (response == 4) {
				alert('Une limite d\'une copie par client s\'applique.');
				return false;
			} else {
				// All good
				document.getElementById('saledivlayer').style.display = 'none';
				document.getElementById('saledone').innerHTML = response;
				document.getElementById('saledone').style.display = '';
			}
		}
	}
	http.send(null);
}

// Load buy Box
function loadBuyBox(div, item, type)
{
	http.open('get', '/salebox.php?id=' + item + '&type=' + type);
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;
			document.getElementById('backlayer').style.display = '';
			document.getElementById('saledone').style.display = 'none';
			document.getElementById('saledivlayer').innerHTML = response;
			document.getElementById('saledivlayer').style.display = '';
		}
	}
	http.send(null);
}

// Submit Review
function submitReview()
{
	id = document.getElementById('reviewform').product.value;
	name = document.getElementById('reviewform').name.value;
	title = document.getElementById('reviewform').title.value;
	text = document.getElementById('reviewform').text.value;
	
	http.open('get', '/ajax.ctrl.php?action=submitreview&id=' + id + '&name=' + name + '&title=' + title + '&text=' + text);	
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;
			alert('Merci pour votre critique.');
			document.getElementById('new_entry_empty').style.display = '';
			document.getElementById('new_entry_empty').innerHTML = 'Your review will look like this when approved<br><br><b>' + title + '</b><br>' + text + '<br><br>-' + name;
		}
	}
	http.send(null);
}

// Record user Rating
function userRating(vote, id, uid)
{
	http.open('get', '/update_ratings.php?uid=' + uid + '&pid=' + id + '&rating=' + vote);	
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			return true;
		}
	}
	http.send(null);
}

// Show all categories
function getAllCats(div, reload)
{
	if (document.getElementById(div).style.display == "") {
		document.getElementById('showallcats').innerHTML = '<a href="javascript:getAllCats(\'allcats\', \'1\');"><img src="/images/buttons/bt_plus.gif" align="absmiddle" /></a> <a href="javascript:getAllCats(\'allcats\', \'1\');">Tous les cat&eacute;gories</a>';	
	} else {
		document.getElementById('showallcats').innerHTML = '<a href="javascript:getAllCats(\'allcats\', \'1\');"><img src="/images/buttons/bt_minus.gif" align="absmiddle" /></a> <a href="javascript:getAllCats(\'allcats\', \'1\');">Tous les cat&eacute;gories</a>';		
	}
	
	if (reload == undefined) {
		http.open('get', '/ajax.ctrl.php?action=getcats');	
		http.onreadystatechange = function() {
			if (http.readyState == 4) {
				var response = http.responseText;
				document.getElementById(div).innerHTML = response;
				new Effect.BlindDown('allcats_li');
			}
		}
		http.send(null);
	} else {
		if (document.getElementById('allcats_li').style.display == '') {
			new Effect.BlindUp('allcats_li');
		} else {
			new Effect.BlindDown('allcats_li');
		}
	}
}

// Show all childs for a given parent
var doreload = 0;
var lastone = 0;
function getAllChilds(id, div)
{
	if (document.getElementById(div).style.display == "") {
		document.getElementById('btn_img').innerHTML = '<img src="/images/buttons/bt_plus.gif" align="absmiddle" />';	
	} else {
		document.getElementById('btn_img').innerHTML = '<img src="/images/buttons/bt_minus.gif" align="absmiddle" />';		
	}

	http.open('get', '/ajax.ctrl.php?action=getchilds&id=' + id);	
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;
			document.getElementById(div).innerHTML = response;
			if (document.getElementById(div).style.display == '') {
				new Effect.BlindUp(div);
			} else {
				new Effect.BlindDown(div);
			}
		}
	}
	http.send(null);
}

// Check if user is already taken and if email is already in use
function checkUserAndMail(pass, passconf)
{
	var user = document.getElementById('form1').username.value;
	var email = document.getElementById('form1').email.value;
	
	http.open('get', '/ajax.ctrl.php?action=checkusermail&user=' + user + '&mail=' + email + '&pass=' + pass + '&passconf=' + passconf + '&actiontype=1');	
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;
			if (trim(response) == 1) {
				document.getElementById('form1').submit();
				return true;
			} else {
				if (trim(response) == 2) {
					document.getElementById('errordiv').innerHTML = 'Le nom d\'utilisateur est d&eacute;j&agrave; utilis&eacute;.';
					new Effect.Appear('errordiv');
					return false;
				} else if (trim(response) == 3) {
					document.getElementById('errordiv').innerHTML = 'L\'adresse courriel est d&eacute;j&agrave; utilis&eacute;e pour un autre compte.';
					new Effect.Appear('errordiv');
					return false;
				} else if (trim(response) == 4) {
					document.getElementById('errordiv').innerHTML = 'L\'adresse courriel est sur la liste noire. La cr&eacute;ation d\'un compte est refus&eacute;.';
					new Effect.Appear('errordiv');
					return false;
				} else if (trim(response) == 5) {
					document.getElementById('errordiv').innerHTML = 'Le nom d\'utilisateur est sur la liste noire. La cr&eacute;ation d\'un compte est refus&eacute;.';
					new Effect.Appear('errordiv');
					return false;
				} else if (trim(response) == 6) {
					document.getElementById('errordiv').innerHTML = 'Le syst&egrave;me n\'est pas en mesure de v&eacute;rifier l\'existence de l\'utilisateur, veuillez v&eacute;rifier les informations.';
					new Effect.Appear('errordiv');
					return false;
				} else {
					document.getElementById('errordiv').innerHTML = 'Ce compte est d&eacute;j&agrave; actif.';
					new Effect.Appear('errordiv');
					return false;
				}
			}
		}
	}
	http.send(null);
}

// Check credit card information before posting form
function checkCredit()
{
	var number = document.getElementById('form1').cc_number.value;
	var type = document.getElementById('form1').cc_type.value;
	var month = document.getElementById('form1').cc_exp_month.value;
	var year = document.getElementById('form1').cc_exp_year.value;
	var security = document.getElementById('form1').cc_security.value;
	
	http.open('get', '/ajax.ctrl.php?action=checkCC&card=' + number + '&type=' + type + '&year=' + year + '&month=' + month + '&security=' + security);
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;
			
			if (trim(response) == 2) {
				document.getElementById('errordiv').innerHTML = 'Le num&eacute;ro de carte est invalide.';
				new Effect.Appear('errordiv');	
				return false;
			} else if (trim(response) == 3) {
				document.getElementById('errordiv').innerHTML = 'Votre carte de cr&eacute;dit est expir&eacute;e.';
				new Effect.Appear('errordiv');	
				return false;
			} else if (trim(response) == 4) {
				document.getElementById('errordiv').innerHTML = 'Le code de securit&eacute; est requis.';
				new Effect.Appear('errordiv');	
				return false;
			} else if (trim(response) == 1) {
				document.getElementById('form1').submit();
			}
		}
	}
	http.send(null);
}

// Try activation code (return error if it doesn't work)
function tryActivation(uid)
{
	var code = document.getElementById('form1').code.value;
	
	http.open('get', '/ajax.ctrl.php?action=tryactivation&code=' + code + '&user=' + uid);
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;

			if (trim(response) == 1) {
				document.getElementById('form1').submit();
			} else {
				document.getElementById('msgdiv').className = 'error';
				document.getElementById('msgdiv').innerHTML = 'Le code d\'activation n\'est pas valide.';
				return false;
			}
		}
	}
	http.send(null);
}

// Check redeem code for validity
function checkRedeem(promo)
{	
	http.open('get', '/ajax.ctrl.php?action=checkpromo&promo=' + promo);
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;

			if (trim(response) == 1) {
				return true;
			} else {
				document.getElementById('errordivtop').innerHTML = 'Le code de promotion est invalide.';
				new Effect.Appear('errordivtop');
				return false;
			}
		}
	}
	http.send(null);
}

// Check confirmation password
function checkConfPass()
{
	var password = document.getElementById('form1').password.value;
	var location = document.getElementById('form1').location.value;

	if (password == "") {
		document.getElementById('errordiv').innerHTML = 'Vous devez inscrire un mot de passe.';
		new Effect.Appear('errordiv');
		return false;
	} else {
		http.open('get', '/ajax.ctrl.php?action=checkpcpass&pass=' + password);
		http.onreadystatechange = function() {
			if (http.readyState == 4) {
				var response = http.responseText;
	
				if (trim(response) == 1) {
					window.location = location;
					return false;
				} else {
					document.getElementById('errordiv').innerHTML = 'Le mot de passe est invalide.';
					new Effect.Appear('errordiv');
					return false;
				}
			}
		}
		http.send(null);
	}
}

// Set select has homepage
function setHomePage(id, uid)
{
	http.open('get', '/ajax.ctrl.php?action=homepage&id=' + id + '&	uid=' + uid);
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			var response = http.responseText;
			document.getElementById('homeset').className = 'defaultHome';
			document.getElementById('homeset').innerHTML = 'Ceci est votre page d\'accueil';
		}
	}
	http.send(null);
}
