// JavaScript Document

// fonction ajax de recuperation de contenu pour affichage sans reload
function file(fichier)
{
	if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return (false);
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4)
		return (xhr_object.responseText);
	else
		return (false);
}

/**********************************************************
	Formulaire
**********************************************************/
// fonction de parse des formulaires
function	FuncParseForm(form)
{
	var urlParam;
	for(i = 0; i < form.length; i++)
	{
		if (i == 0)
			urlParam = form.elements[i].name + '=' + escape(form.elements[i].value);
		else
			urlParam = urlParam + '&' + form.elements[i].name + '=' + escape(form.elements[i].value);
	}
	return (urlParam);
}
function isEmpty(param)
{
	if ((param.length == 0) || (param == null))
		return (true);
	else
		return (false);
}

/**********************************************************
	Fonction d'affichage du formulaire d'enregistrement
**********************************************************/
function loadRegister()
{
	if (result = file('templates/default/ajax/register.tpl'))
	{
		document.getElementById('containerLogin').innerHTML = result;	
	}
}
function loadLoginForm()
{
	if (result = file('templates/default/login.tpl'))
	{
		document.getElementById('containerLogin').innerHTML = result;	
	}
}
function loadForgottenPwdForm()
{
	if (result = file('templates/default/ajax/remindPwd.tpl'))
	{
		document.getElementById('containerLogin').innerHTML = result;	
	}
}


/**********************************************************
	Enregistrement des utilisateurs
**********************************************************/
function checkRegisterForm(form)
{
	if (result = file('pages/register.php?' + FuncParseForm(form)))
	{
		document.getElementById('errorResult').innerHTML = result;
	}	
}

/**********************************************************
	Identification des utilisateurs
**********************************************************/
function checkLoginForm(form)
{
	//alert('pages/login.php?' + FuncParseForm(form) + '&path=../');
	if (result = file('pages/login.php?' + FuncParseForm(form) + '&path=../'))
	{
		if (result == 'GG')
			window.location.href = "index.php?page=home";
		else
			document.getElementById('loginResult').innerHTML = 'Votre mail ou votre mot de passe est erron&eacute;';
	}	
}
function checkRemindForm(form)
{
	if (result = file('pages/ajax/remindPwd.php?' + FuncParseForm(form) + '&path=../../'))
	{
		if (result == 'GG')
			document.getElementById('loginResult').innerHTML = 'Vous allez recevoir sous peu un mail avec votre nouveau mot de passe';
		else
			document.getElementById('loginResult').innerHTML = 'Votre mail est erron&eacute; ou inexistant';
	}	
}
function logout()
{
	window.location.href = "pages/forms/logout.php";
}
/**********************************************************
	Fonctions applicables au compte
*********************************************************/
function updateAccount(form)
{
	document.getElementById('accountPersonalResult').innerHTML = "Traitement en cours ...";
	if (accountPersonal = file('pages/forms/updateAccount.php?' + FuncParseForm(form)))
		document.getElementById('accountPersonalResult').innerHTML = accountPersonal;
	else
		document.getElementById('accountPersonalResult').innerHTML = "Traitement &eacute;chou&eacute;";
}
function updateShipping(form)
{
	if (accountShipping = file('pages/forms/updateShipping.php?' + FuncParseForm(form)))
		document.getElementById('accountShippingResult').innerHTML = accountShipping;
	else
		document.getElementById('accountShippingResult').innerHTML = "Traitement &eacute;chou&eacute;";
}
/**********************************************************
	Fonctions applicables au panier
**********************************************************/
function afficheConfirm(texte){
	var availHeight;
	var availWidth;

	if(typeof(window.innerWidth) == 'number'){
		availHeight = window.innerHeight;
		availWidth = window.innerWidth;
	}else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){
		availHeight = document.documentElement.clientHeight;
		availWidth = document.documentElement.clientWidth;
	}else if(document.body && (document.body.clientWidth || document.body.clientHeight)){
		availHeight = document.body.clientHeight;
		availWidth = document.body.clientWidth;
	}
	if (self.pageYOffset){
		yOffset = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop){
		yOffset = document.documentElement.scrollTop;
	}
	else if (document.body){
		yOffset = document.body.scrollTop;
	}
	document.getElementById("confirmAjout").style.top = ((availHeight/2)+yOffset-60)+"px";
	document.getElementById("confirmAjout").style.left = ((availWidth/2)-200)+"px";
	document.getElementById("confirmAjout").style.display = '';
	document.getElementById("confirmAjout").innerHTML=texte+'<br /><br /><a href="#" onclick="document.getElementById(\'confirmAjout\').style.display=\'none\';return false;" class="popup"><span>Continuer mes achats</span></a><a href="?page=panier" class="popup"><span>Afficher mon panier</span></a><div class="clean"></div>';
}
function showCartShipping(checked){
	if(checked){
		document.getElementById("accountShipping").style.display = '';
	}else{
		document.getElementById("accountShipping").style.display = 'none';
	}
	document.getElementById("cartShip").value = '';
}
function cartShipping(form){
	document.getElementById('errorResult').innerHTML = '';
	if (result = file('pages/forms/cartShip.php?' + FuncParseForm(form)))
	{
		if(result==-1){
			message = "Impossible de cr&eacute;er la nouvelle adresse de livraison pour cette commande.";
		}else if(result==0){
			message = "Un champ n&eacute;cessaire n'a pas &eacute;t&eacute; rempli.";
		}else{
			infos=result.split('#');
			document.getElementById('cartShip').value=infos[0];
			document.getElementsByTagName('blockquote')[0].innerHTML=infos[1];
			message = "Votre adresse de livraison pour cette commande a &eacute;t&eacute; mise &agrave; jour.";
		}
		document.getElementById('errorResult').innerHTML = message;
	}
}
function addCart(product, size)
{
	if (cart = file ('pages/addCart.php?productId=' + product + '&size=' + size))
		afficheConfirm(cart);
}
function refreshCart()
{
	/*document.forms['panier'].action = "pages/forms/refreshCart.php";*/
	document.forms['panier'].postBack.value = 'refresh';
	document.forms['panier'].submit();
}
function deleteCart(product)
{
	/*document.forms['panier'].action = "pages/forms/deleteCart.php";*/
	document.forms['panier'].postBack.value = 'delete';
	document.forms['panier'].product.value = product;
	document.forms['panier'].submit();
}
function saveCart()
{
	document.forms['panier'].action = "pages/forms/saveCart.php";
	document.forms['panier'].submit();
}
function execCart()
{
	document.forms['panier'].action = "pages/forms/validCart.php";
	document.forms['panier'].submit();
}

/**********************************************************
	Fonctions applicables au contact
*********************************************************/
function sendMail(form)
{
	if (mail = file('pages/forms/mailUs.php?' + FuncParseForm(form)))
		document.getElementById('mailUsResult').innerHTML = mail;
}

/**********************************************************
	Zone privee
**********************************************************/
function loadOrders()
{
	var result = "";
	if (result = file('templates/default/ajax/order.tpl'))
	{
		/*if (sectionList = file('pages/adm/sectionList.php'))
			result = result.replace(/\{\$sectionList\}/g, sectionList);
		if (saleList = file('pages/adm/saleList.php'))
			result = result.replace(/\{\$saleList\}/g, saleList);
		if (typeList = file('pages/adm/typeList.php'))
			result = result.replace(/\{\$typeList\}/g, typeList);
		if (productList = file('pages/adm/productList.php'))
			result = result.replace(/\{\$productList\}/g, productList);*/
		document.getElementById('ajaxContent').innerHTML = "";
		document.getElementById('ajaxContent').innerHTML = result;
		document.getElementById('cart').style.display = 'none';
		document.getElementById('cartStatus').style.display = 'none';
	}
}

function loadMailing()
{
	var result = "";
	if (result = file('templates/default/ajax/mailing.tpl'))
	{
		document.getElementById('ajaxContent').innerHTML = "";
		document.getElementById('ajaxContent').innerHTML = result;
	}
}

	/**********************************************************
		Trraitements
	**********************************************************/
function getParentSection(category)
{
	var result = "";
	if (!isEmpty(category))
	{
		if (result = file('pages/ajax/categories.php?mode=getEdit&currentCategory=' + category))
		{
			document.getElementById('catEdit').innerHTML = "";
			document.getElementById('catEdit').innerHTML = result;
		}
	}
}
function editCategory(form)
{
	var result = "";
	if (result = file('pages/ajax/categories.php?' + FuncParseForm(form)))
	{
		document.getElementById('editCategoriesResult').innerHTML = "";
		document.getElementById('editCategoriesResult').innerHTML = result;
		document.forms['editCategories'].reset();
	}
}
function getEditSale(sale)
{
	if (!isEmpty(sale))
	{
		if (name = file('pages/ajax/getEditSale.php?mode=name&sale=' + sale))
			document.forms['editSales'].newSale.value = unescape(name);
		if (begin = file('pages/ajax/getEditSale.php?mode=begin&sale=' + sale))
			document.forms['editSales'].newSaleBegin.value = begin;
		if (end = file('pages/ajax/getEditSale.php?mode=end&sale=' + sale))
			document.forms['editSales'].newSaleEnd.value = end;
		if (send = file('pages/ajax/getEditSale.php?mode=send&sale=' + sale))
			document.forms['editSales'].newSaleSend.value = send;
	}
}
function getProductCategory(section)
{
	var category = "";
	if (!isEmpty(section))
	{
		if (category = file('pages/ajax/product.php?mode=getCategory&section=' + section))
		{
			document.getElementById('newCatList').innerHTML = "";
			document.getElementById('newCatList').innerHTML = category;
		}
	}
}
function addProduct(form)
{
	var result = "";
	if (result = file('pages/adm/product.php?' + FuncParseForm(form)))
	{
		document.getElementById('createProductsResult').innerHTML = "";
		document.getElementById('createProductsResult').innerHTML = result;
		document.forms['createProducts'].reset();
	}
}
function getQtForm(form, id, type)
{
	if (qtForm = file('pages/ajax/quantityForm.php?form=' + form + '&type=' + escape(type)))
	{
		document.getElementById(id + 'Qt').innerHTML = qtForm;
	}
}
function getTailles(form, type)
{
	if (tailles = file('pages/ajax/tailles.php?type=' + escape(type)))
	{
		form.currentTaille.innerHTML = tailles;
	}
}
function getEditTaille(idTaille)
{
	if (!isEmpty(idTaille))
	{
		if (taille = file('pages/ajax/getEditTaille.php?taille=' + idTaille))
			document.forms['editTailles'].newTaille.value = unescape(taille);
	}
}
function getEditClose(close)
{
	if (!isEmpty(close))
	{
		if (name = file('pages/ajax/getEditClose.php?mode=name&close=' + close))
			document.forms['editCloses'].newClose.value = unescape(name);
		if (description = file('pages/ajax/getEditClose.php?mode=description&close=' + close))
			document.forms['editCloses'].newCloseDesc.value = description;
		if (banniere = file('pages/ajax/getEditClose.php?mode=banniere&close=' + close))
			document.getElementById('erreurBan').innerHTML = banniere;
		if (image = file('pages/ajax/getEditClose.php?mode=image&close=' + close))
			document.getElementById('erreurImg').innerHTML = image;
	}
}
function askValue(object, speId)
{
	if (object.checked == true)
	{
		quantity = prompt("Quel est la quantité du produit pour cette taille ?");
		if (quantity > 0)
		{
			document.getElementById(speId).innerHTML = quantity;
			return (speId + "_" + quantity);
		}
		else if(quantity == "E")
		{
			document.getElementById(speId).innerHTML = quantity;
			return (speId + "_0");
		}
		else
		{
			document.getElementById(speId).innerHTML = 0;
			object.checked = false;
		}
	}
	else
	{
		document.getElementById(speId).innerHTML = 0;
		return (speId);
	}
}
function getEditProduct(product)
{
	if (!isEmpty(product))
	{
		if (name = file('pages/ajax/getEditProduct.php?mode=name&product=' + product))
			document.forms['editProducts'].newProduct.value = unescape(name);
		if (saleList = file('pages/ajax/getEditProduct.php?mode=sale&product=' + product))
			document.getElementById('editSales').innerHTML = saleList;
		if (categoryList = file('pages/ajax/getEditProduct.php?mode=category&product=' + product))
			document.getElementById('editCategories').innerHTML = categoryList;
		if (typeList = file('pages/ajax/getEditProduct.php?mode=type&product=' + product))
			document.getElementById('editTypes').innerHTML = typeList;
		if (desc = file('pages/ajax/getEditProduct.php?mode=desc&product=' + product))
			document.forms['editProducts'].newDesc.value = unescape(desc);
		if (noprice = file('pages/ajax/getEditProduct.php?mode=noprice&product=' + product))
			document.forms['editProducts'].newInitPrice.value = noprice;
		if (price = file('pages/ajax/getEditProduct.php?mode=price&product=' + product))
			document.forms['editProducts'].newPrice.value = price;
		if (qt = file('pages/ajax/quantityForm.php?form=edit&product=' + product))
			document.getElementById('editQt').innerHTML = qt;
	}
}
function editProduct(form)
{
	var result = "";
	if (result = file('pages/adm/product.php?' + FuncParseForm(form)))
	{
		document.getElementById('editProductsResult').innerHTML = "";
		document.getElementById('editProductsResult').innerHTML = result;
		document.forms['editProducts'].reset();
	}
	else alert("failed");
}
function deleteProduct(form)
{
	var result = "";
	if (result = file('pages/adm/product.php?' + FuncParseForm(form)))
	{
		document.getElementById('deleteProductsResult').innerHTML = "";
		document.getElementById('deleteProductsResult').innerHTML = result;
		document.forms['deleteProducts'].reset();
	}
	else alert("failed");
}
function getOrders()
{
	hideElmts("ajaxContent", "cartStatus$");
	/*if (orders = file('pages/adm/orderList.php?mode=cartList'))
		document.getElementById("cart").innerHTML = orders;*/
	document.getElementById("cart").style.display = "block";
}
function showOrder(usr, time)
{
	hideElmts("cart", "order_");
	document.getElementById("order_" + usr + "_" + time).style.display = "block";
}
function showOrderStatus()
{
	hideElmts("ajaxContent", "cart$");
	/*if (orders = file('pages/adm/orderList.php?mode=cartStatus'))
		document.getElementById("cartStatus").innerHTML = orders;*/
	document.getElementById("cartStatus").style.display = "block";
}
function getStatus(usr, time)
{
	hideElmts("cart", "status_");
	/*if (orders = file('pages/adm/orderList.php?mode=userStatus&user=' + usr + '&time=' + time + '&color=' + color))
		document.getElementById("status_" + usr + "_" + time).innerHTML = orders;*/
	document.getElementById("status_" + usr + "_" + time).style.display = "block";
}
function getEditSubject(subject)
{
	if (!isEmpty(subject))
	{
		if (sujet = file('pages/ajax/getEditSubject.php?mode=sujet&subject=' + subject))
			document.forms['editSubjects'].newSubject.value = unescape(sujet);
		if (mail = file('pages/ajax/getEditSubject.php?mode=mail&subject=' + subject))
			document.forms['editSubjects'].newMail.value = unescape(mail);
	}
}
/*******************************
	Cache tous les élément avec l'id elmt
	dans le bloc block
*******************************/
function hideElmts(block, elmt)
{
	var mBlock = document.getElementsByTagName("div");
	var expr = new RegExp("^(" + elmt + ")", "g");
	for (i = 0; i < mBlock.length; i++)
	{
		if (expr.test(mBlock[i].id))
			mBlock[i].style.display = 'none';
	}
}
function zoom(elmt, isDisplayable)
{
	if (isDisplayable == true)
		document.getElementById(elmt).style.display = 'block';
	else
		document.getElementById(elmt).style.display = 'none';
}

// - fonction reductions
function changeValidation(coupon_id,nb)
{
	req = new XMLHttpRequest();
	req.onreadystatechange = function()
	{
		if(req.readyState == 4)
		{
			document.getElementById('result_ajax'+nb).innerHTML = req.responseText;
		}
	}
	appel="pages/ajax/changeValidation.php?id="+coupon_id;
	req.open("GET",appel,true);
	req.send(null);
}
function changeUtilisation(coupon_id,nb)
{
	req = new XMLHttpRequest();
	req.onreadystatechange = function()
	{
		if(req.readyState == 4)
		{
			document.getElementById('result_ajax_'+nb).innerHTML = req.responseText;
		}
	}
	appel="pages/ajax/changeUtilisation.php?id="+coupon_id;
	req.open("GET",appel,true);
	req.send(null);
}
var totalreduc = 0;
var nbcoupon = 0;
var total = 0;
function validCouponUse(checked,value,id,subtotal,cartcost)
{
// éléments en commentaires : limitation du nombre de coupons à utiliser pour une commande. Il est fixé ici à trois mais peut être changé dans le test : "if(nbcoupons>3) !!!
	var inputs = document.getElementById('reductions').getElementsByTagName('input');
	for(i=0; i<inputs.length; i++){
		if(inputs[i].value!=id && inputs[i].checked){
			inputs[i].checked=false;
		}
	}
	if(checked==1)
	{
		nbcoupon = 1;
		action = "add";
	}
	else if(checked==0)
	{
		nbcoupon = 0;
		action = "sub";
	}
	/*if(nbcoupon>3)
	{
		document.getElementById('result_ajax').innerHTML = "Vous n'avez le droit d'utiliser que trois coupons par commande.";
		document.getElementById('unchecked_checkbox'+id).innerHTML = "<input name='"+id+"' type='checkbox' onClick='validCouponUse(this.checked,"+value+","+id+")' />";
		nbcoupon -= 1;
	}
	else
	{*/
		if(action=="add")
		{
			totalreduc = value;
		}
		if(action=="sub")
		{
			totalreduc = 0;
		}
		
		total = subtotal-totalreduc+cartcost;
		if(total<5)
		{
			total = 5;
		}
		document.getElementById('result_total_reduc').innerHTML = totalreduc+" &euro;";
		document.getElementById('total').innerHTML = total+" &euro;";
		document.form_reduc.total_to_send.value = total;
		document.form_reduc.total_reduction_to_send.value = totalreduc;
		document.form_reduc.nb_coupons.value = nbcoupon;
	//}
}
function changeValue()
{
	req = new XMLHttpRequest();
	req.onreadystatechange = function()
	{
		if(req.readyState == 4)
		{
			document.getElementById('return_ajax_change_value').innerHTML = req.responseText;
		}
	}
	appel="pages/ajax/changeValue.php?value="+document.changeDefaultValue.defaultValue.value;
	req.open("GET",appel,true);
	req.send(null);
}

//	var cible = new Date("March 16, 2008 05:00:00");
function decompte(timeBreak)
{
	var mms_jour = 24 * 60 * 60 * 1000;
	var mms_heure = 60 * 60 * 1000;
	var mms_minute = 60 * 1000;
	var mms_seconde = 1000;

	var cible = new Date();
	cible.setTime(timeBreak);
	
	var aujourdhui = new Date();

	var change_j = -7;
	var change_h = -7;
	var change_m = -7;

	var diff_mms = cible.getTime() - aujourdhui.getTime();

	diff_jours = Math.floor(diff_mms / mms_jour);
	diff_mms -= diff_jours * mms_jour;

	diff_heures = Math.floor(diff_mms / mms_heure);
	diff_mms -= diff_heures * mms_heure;

	diff_minutes = Math.floor(diff_mms / mms_minute);
	diff_mms -= diff_minutes * mms_minute;

	var diff_secondes = Math.floor(diff_mms / mms_seconde);

	if (diff_secondes<0)
	{
		document.write('Actualiser la page, la vente est ouverte');
	}
	else 
	{
		/*document.getElementById("jours").innerHTML = diff_jours;
		document.getElementById("heures").innerHTML  = diff_heures;
		document.getElementById("minutes").innerHTML  = diff_minutes;
		document.getElementById("secondes").innerHTML = diff_secondes;*/
		document.write(diff_jours + "j, " + diff_heures + "h, " + diff_minutes + "min, " + diff_secondes + "s")
	}
	
	setTimeout(function(){decompte(timeBreak);},1000);
}