var urlEP = 'espace_pro.php';
var param = '';
var clientStatus = 0;

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


function parseProperties(str) 
{
	return str.split('|') ;
}

//==============================================================================
function getToolbarCode() {
	code = "<table bgcolor=#F3EDB8 width=100% class=tableBordered><tr>";
	code += "<td width=50% class=titre id=client_name_id align=left>Client: </td>";
	code += "<td id=nb_items_caddy class=description align=left><b>Nombre d&rsquo;articles:&nbsp;0</b></td>";
	code += "<td id=amount_caddy class=description align=left><b>Montant:&nbsp;0 &euro;</b></td>";
	code += "<td onclick=\"postRequest('epShowCaddy',true);\" align=left><img src=images/cart.jpg title=Panier></td>";
	code += "<td onclick=\"postRequest('epDisconnect',true);\"align=right><img src=images/deconnexion.gif title=Deconnexion>";
	// code += "</td><td width=5%>&nbsp;</td>" ;
	code += "</tr></table>";
	return code;
}

//=============================================================================================
function postJsonRequest(actionId) {
	dojo
	.xhrPost( {
		url : urlEP,
		load : function(response, ioArgs) {
		callBack(actionId, response);
		return response;
	},
	error : function(response, ioArgs) {
		dojo.byId("content_section").innerHTML = "postJsonRequest: An error occurred, with response: "
			+ response;
		return response;
	},
	content : {
		action : actionId
	},
	handleAs : "text"
	});
}

//=============================================================================================
function postFormJsonRequest(formId, actionId, hasToCallback) {
	dojo
	.xhrPost( {
		url : urlEP,
		load : function(response, ioArgs) {
		if (hasToCallback)
			formCallBack(formId, actionId, response);
		return response;
	},
	error : function(response, ioArgs) {
		dojo.byId("content_section").innerHTML = "postFormJsonRequest: An error occurred, with response: "
			+ response;
		return response;
	},
	form : formId,
	content : {
		action : actionId
	},
	handleAs : "text"
	});
}

//=============================================================================================
function postRequest(actionId, hasToCallback) {
	dojo
	.xhrPost( {
		url : urlEP,
		load : function(response, ioArgs) {
		dojo.byId("content_section").innerHTML = response;
		if (hasToCallback)
			callBack(actionId, response);
		return response;
	},
	error : function(response, ioArgs) {
		dojo.byId("content_section").innerHTML = "postRequest: An error occurred, with response: "
			+ response;
		return response;
	},
	content : {
		action : actionId
	},
	handleAs : "text"
	});
}

//=============================================================================================
function postFormRequest(formId, actionId, hasToCallback) {
	dojo
	.xhrPost( {
		url : urlEP,
		load : function(response, ioArgs) {
		dojo.byId("content_section").innerHTML = response;
		if (hasToCallback)
			formCallBack(formId, actionId, response);
		return response;
	},
	error : function(response, ioArgs) {
		dojo.byId("content_section").innerHTML = "postRequest: An error occurred, with response: "
			+ response;
		return response;
	},
	form : formId,
	content : {
		action : actionId
	},
	handleAs : "text"
	});
}

//=============================================================================================
function formCallBack(formId, actionId, response) {
	if (actionId == 'epDisconnect') {
		clientStatus = 0;
		updateToolbar();
		refreshLock(clientStatus) ;
	} else if (actionId == 'epLogin') {
		clientStatus = 1;
		updateToolbar();
		refreshLock(clientStatus) ;
		postJsonRequest('refreshClientInfo');
	} else if (actionId == 'refreshItem') {
		postRequest('epShowCaddy');
		postJsonRequest('refreshClientInfo');
	} else if (actionId == 'deleteItem') {
		postRequest('epShowCaddy');
		postJsonRequest('refreshClientInfo');
	} else if (actionId == 'useAsTemplate') {
		postRequest('epShowCaddy');
		postJsonRequest('refreshClientInfo');
	}

}

//=============================================================================================
function callBack(actionId, response) {
	if (actionId == 'epDisconnect') {
		clientStatus = 0;
		updateToolbar();
		refreshLock(clientStatus) ;
	} else if (actionId == 'epLogin') {
		clientStatus = 1;
		updateToolbar();
		refreshLock(clientStatus) ;
		postJsonRequest('refreshClientInfo');
	} else if (actionId == 'refreshClientInfo') {
		 var pList = parseProperties(response) ;
		 if (pList[0].indexOf('EN_COURS') >= 0) {
			dojo.byId('client_name_id').innerHTML = "<b>Client: "
				+ pList[1] + "</b>";
			dojo.byId('nb_items_caddy').innerHTML = "<b>Nombre d&rsquo;articles:&nbsp;"
				+ pList[2] + "</b>";
			dojo.byId('amount_caddy').innerHTML = "<b>Montant:&nbsp;"
				+ pList[3] + "&euro;&nbsp;HT</b>";
		} else {
			dojo.byId('client_name_id').innerHTML = "<b>Client: "
				+ pList[1] + "</b>";
			dojo.byId('nb_items_caddy').innerHTML = "Pas de commande en cours...";
			dojo.byId('amount_caddy').innerHTML = "";
		}
	} else if (actionId == 'sendCommand') {
		postJsonRequest('refreshClientInfo');
	}
}

//==============================================================================
function Trim(str) {
	while (str.charAt(0) == " " || str.charAt(0) == "\t") {
		str = str.substring(1);
	}
	while (str.charAt(str.length - 1) == " " || str.charAt(0) == "\t") {
		str = str.substring(0, str.length - 1);
	}
	return str;
}

//==============================================================================
function mainPageLoaded(status) {
	clientStatus = status;
	updateToolbar();
}

//==============================================================================
function updateToolbar() {
	if (clientStatus == 1) {
		showToolbar();
		postJsonRequest('refreshClientInfo', false);
	} else {
		hideToolbar();
	}
}

//==============================================================================
function refreshLock(status)
{
	if (status==0)
		dojo.byId("lockImg").src = "images/cadenas.gif" ;
	else
		dojo.byId("lockImg").src = "images/cadenas_ouvert.gif" ;
}

//==============================================================================
function showToolbar() {
	obj = document.getElementById('toolbar_section');
	if (null == obj)
		return;
	obj.innerHTML = getToolbarCode();
	obj.style.visibility = 'visible';
}

//==============================================================================
function hideToolbar() {
	obj = document.getElementById('toolbar_section');
	if (null == obj)
		return;
	obj.innerHTML = "";
	obj.style.visibility = 'hidden';
}

//==============================================================================
function changeBorder(ID, status) {
	//obj = document.getElementById(ID);
	//obj.border = status; // works only on FireFox, not I.E ....
}

//==============================================================================
function requestPopupOrder(id) {

	dojo
	.xhrPost( {
		url : 'order.php',
		load : function(response, ioArgs) {
		//dojo.byId("popup_order").innerHTML = response;
		showPopupOrder(response);
		return response;
	},
	error : function(response, ioArgs) {
		dojo.byId("content_section").innerHTML = "postRequest: An error occurred, with response: "
			+ response;
		return response;
	},
	content : {
		context : 'orderPopup',
		action : 'optionRequest',
		productID : id
	},
	handleAs : "text"
	});
}

//==============================================================================
function showPopupOrder(response) {
	obj = document.getElementById('popup_order');
	//obj.style.top = (screen.height / 2) - 125 + document.body.scrollTop;
	//obj.style.left = (screen.width / 2) - 225;
	obj.style.top = 100;
	obj.style.left = 400;
	obj.innerHTML = response;
	obj.style.visibility = 'visible';
}

//==============================================================================
function hidePopup(id) {
	obj = document.getElementById(id);
	obj.innerHTML = "";
	obj.style.visibility = 'hidden';
}

//==============================================================================
function okOrderPopup() {
	
	var nbOpts = document.getElementById("h_nbOptions").value;
	var i = 0;
	var quants = new Array();

	var pID = document.getElementById("h_productID").value;
	param = '';
	if (nbOpts == 0) {
		param = document.getElementById("quantite_0").value;
	} else {
		for (i = 0; i < nbOpts; i++) {
			quants[i] = document.getElementById("quantite_" + i).value;
			if (quants[i] == '')
				quants[i] = 0;
			if (i == 0)
				param += quants[i];
			else
				param += '_' + quants[i];
		}
	}
	hidePopup('popup_order');

	dojo
	.xhrPost( {
		url : 'order.php',
		load : function(response, ioArgs) {
		itemsToOrderAdded(response);
		return response;
	},
	error : function(response, ioArgs) {
		dojo.byId("content_section").innerHTML = "postRequest: An error occurred, with response: "
			+ response;
		return response;
	},
	content : {
		context : 'command',
		action : 'addItemsToOrder',
		productID : pID,
		nbOptions : nbOpts,
		quantite : param
	},
	handleAs : "text"
	});

}

//==============================================================================
//Ici afficher un ok ou un pas ok avec un timer de 2 secondes
function acknOkOrderPopup() {
	obj = document.getElementById('popup_order');
	obj.style.top = (screen.height / 2) - 125 + document.body.scrollTop;
	obj.style.left = (screen.width / 2) - 225;
	obj.innerHTML = ajaxRequest.getResponse();
	obj.style.visibility = 'visible';
}

//==============================================================================
function itemsToOrderAdded(response) {
	//obj = document.getElementById('popup_order');
	//obj.innerHTML = response;
	postJsonRequest('refreshClientInfo');
}

//==============================================================================
function popupimage(image_url, width, height) {

	var top_pos = (screen.height - height) / 2;
	var left_pos = (screen.width - width) / 2;

	width = width + 30;
	height = height + 20;

	image_window = window.open(image_url, "outputWindow",
			"menubar=no,scrollbars=no,resizable=no,top=" + top_pos + ",left="
			+ left_pos + ",width=" + width + ",height=" + height);
	image_window.focus();

}

//==============================================================================
//function de reload pour recharger le fichier /tmp/tmp.html
function createCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		var expires = "; expires=" + date.toGMTString();
	} else
		var expires = "";
	document.cookie = name + "=" + value + expires + "; path=/";
}

//==============================================================================
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for ( var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ')
			c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0)
			return c.substring(nameEQ.length, c.length);
	}
	return null;
}

//==============================================================================
function eraseCookie(name) {
	createCookie(name, "", -1);
}

//==============================================================================
function reloadIfNecessary() {
	if (readCookie('reload') != null) {
		eraseCookie('reload');
	} else {
		document.location.reload();
		createCookie('reload', 'false');
	}
}




