 /*
 * Ce script gere la validation des tickets multiples au coup par coup:
 */

var simple_url2 = "/simple-code_check2.php?";

var current_form = "";

var tkt_debug = 0;

// traitement de la reponse du serveur:
function checkResponse2(status,resp)
{
	if (tkt_debug) alert('checkResponse');
	var node;
	var msg_err = document.getElementById(current_form + '_msg_error');
	var msg_er2 = document.getElementById(current_form + '_msg_error2');
	var msg_ok  = document.getElementById(current_form + '_msg_ok');
	var msg_ok2 = document.getElementById(current_form + '_msg_ok2');
	msg_err.innerHTML = "&nbsp;";
	msg_ok.innerHTML  = "&nbsp;";
	msg_er2.style.display = "none";

	var form = document.getElementById(current_form);
	var tiknu = form.tiknu.value;
	tiknu = parseInt(tiknu);
	if (tkt_debug) {
		alert("tiknu:" + tiknu);
		alert("status=" + status);
		alert("response=" + resp);
	}
	var cur_ticket = eval("form.ticket" + tiknu);
	var cur_input  = eval("form.tik" + tiknu);

	if (status == 200) {
		// analyse la chaine retournee:
		results = resp.split(":");
		if (results[0] == "1") {
			// pas d'erreur:
			// passe au ticket suivant ou bien soumet l'ensemble des tickets
			// lors de la soumission finale:
			var tikcount = form.tikcount.value;
			if (tkt_debug) alert("tikcount:" + tikcount);

			tikcount = parseInt(tikcount);
			if (tiknu >= tikcount) {
				if (tkt_debug) alert("full submit");
				return true;
			}

			// Affiche le message de reussite de validation d'un ticket:
			if (tiknu == 1) {
				msg_ok.innerHTML = "1er";
			}
			else {
				msg_ok.innerHTML = tiknu + "eme";
			}
			msg_ok.innerHTML += " code valide :)";

			msg_ok2.style.display = "";

			// la ligne courante est modifiee ainsi:
			// - le champ <input> est readonly	
			// - le bouton [Valider] disparait
			// - on affiche un "OK" a la place
						
			cur_input.setAttribute("readonly","");
			node = document.getElementById(current_form + "_ticket_lab" + tiknu);
			node.style.display = "none";
			node = document.getElementById(current_form + "_ticket_submit" + tiknu);
			node.style.display = "none";
			node = document.getElementById(current_form + "_ticket_cr" + tiknu);
			node.style.display = "";

			// on incremente le numero du ticket courant:
			tiknu++;
			form.tiknu.value = tiknu;
			if (tkt_debug) alert(tiknu);
			// la ligne de saisie du ticket courant est affichee:
			var new_ticket = document.getElementById(current_form + "_ticket" + tiknu);
						
			new_ticket.style.display = "";
			
			if (tiknu == 1)
				form.tik1.focus();
			if (tiknu == 2)
				form.tik2.focus();
			if (tiknu == 3)
				form.tik3.focus();
		}
		else {
			// erreur:
			cur_input.value = "";
			msg_err.innerHTML = results[1] + "&nbsp;:(";
			msg_err.style.display = "";
			msg_er2.style.display = "";
			msg_ok.style.display = "none";
			msg_ok2.style.display = "none";
		}
	}
	else {
		// une erreur ici !
		msg_err.innerHTML = "Erreur du serveur Web :(";
		cur_input.value = "";
	}

	return false;
}

// callback si appel asynchrone:
function handleHTTPResponse() 
{
	if (http.readyState == 4) {
		checkResponse(http.status,http.responseText);
	}
}

// adaptation en fonction du navigateur:
function getHTTPObject()
{
	var xmlhttp;

	if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		var aVersions = [ "MSXML2.XMLHttp.5.0", 
			"MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0",
			"MSXML2.XMLHttp.2.0" ];

		for ( i = 0 ; i < aVersions.length ; i++ ) {
			try {
				xmlhttp = new ActiveXObject(aVersions[i]);
				return xmlhttp;
			}
			catch (oError) {
			}
		}
		//xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		alert("Votre navigateur ne peut valider les tickets");
	}
	
	return xmlhttp;
}

// creation de l'objet HTTP':
var http = getHTTPObject();

// fonction de verification des tickets intermediaires:
function checkSingleTicket(form_name)
{
	if (tkt_debug) alert('checksingleticket');

	// construire la liste des parms ici:
	var form = document.getElementById(form_name);
	if (tkt_debug) alert(form);

	var tiknu = form.tiknu.value;
	if (tkt_debug) alert("tiknu=" + tiknu);

	var ticket = eval("form.tik" + tiknu + ".value");
	if (tkt_debug) alert("ticket=" + ticket);

	var cid = form.cid.value;
	if (tkt_debug) alert("cid=" + cid);

	var msg = document.getElementById(form_name + '_msg_ok');
	msg.innerHTML = "Merci de patienter...";
	if (tkt_debug) alert("msg=" + msg.innerHTML);

	var ajout = "";
	if (form.tik1 != undefined && form.tik1.value != '')
		ajout += "&tik1=" + form.tik1.value;
	if (form.tik2 != undefined && form.tik2.value != '')
		ajout += "&tik2=" + form.tik2.value;	
	if (form.tik3 != undefined && form.tik3.value != '')
		ajout += "&tik3=" + form.tik3.value;

	if (tkt_debug) alert(simple_url2+"tik="+ticket+"&cid="+cid+ajout);
	current_form = form_name;
	http.open("GET",simple_url2 + "tik=" + ticket + "&cid=" + cid + ajout,false);

	//http.onreadystatechange = handleHTTPResponse;
	http.send(null);

	return checkResponse2(http.status,http.responseText);
}


function sf(){document.getElementById("tik2").focus();}
function sf2(){document.getElementById("tik1").focus();}


// EOF
