/**
 * check_all.js
 * integre codes et tickets
 */
/***********************************************************************************************************************
 * FONCTIONS TICKETS
 **********************************************************************************************************************/
// création de l'objet HTTP':
var http = getHTTPObject();

var ticket_url = baseUrl+'/ticket_check.php?';
var ticketnu; // numéro du ticket en cours de validation

function ticket_check()
{
    // construire la liste des parms ici:
    var tiknu  = $("tiknu").value;
    var ticket = $("tik" + tiknu).value;
    var cid    = $("cid").value;

    if($('msg_ok')){
        var msg = $('msg_ok');
        msg.innerHTML = "Merci de patienter...";
    }

    var ajout = "";
    if ($("tik1") && $("tik1").value != '') ajout += "&tik1=" + $("tik1").value;
    if ($("tik2") && $("tik2").value != '') ajout += "&tik2=" + $("tik2").value;
    if ($("tik3") && $("tik3").value != '') ajout += "&tik3=" + $("tik3").value;

    var req = ticket_url + "tik=" + ticket + "&cid=" + cid + ajout;

    http.open("GET", req, false);
    http.send(null);
    return ticket_checkResponse(http.status,http.responseText);
}


// traitement de la réponse du serveur:
function ticket_checkResponse(status,resp)
{
    var node;
    var msg_err = $('ticket_msg_error');   msg_err.innerHTML = "&nbsp;";
    var msg_er2 = $('ticket_msg_error2');  msg_er2.style.display = "none";
    var msg_ok = $('ticket_msg_ok');       msg_ok.innerHTML = "&nbsp;";
    var msg_ok2 = $('ticket_msg_ok2');

    var tiknu = $('tiknu').value;
    tiknu = parseInt(tiknu);

    var cur_ticket = $("ticket" + tiknu);
    var cur_input = $("tik" + tiknu);

    if (status == 200) {
        // analyse la chaine retournée:
        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 = $('tikcount').value;
            tikcount = parseInt(tikcount);
            if (tiknu >= tikcount) {
                //alert("full submit");
                return true;
            }

            // Affiche le message de réussite 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 modifiée ainsi:
            // - le champ <input> est readonly
            // - le bouton [Valider] disparait
            // - on affiche un "OK" à la place
            cur_input.setAttribute("readonly","");

            if($("ticket_lab" + tiknu) ){
                node = $("ticket_lab" + tiknu);
                node.style.display = "none";
            }
            if($("ticket_submit" + tiknu) ){
                node = $("ticket_submit" + tiknu);
                node.style.visibility = "hidden";
            }
            if($("ticket_cr" + tiknu) ){
                node = $("ticket_cr" + tiknu);
                node.style.display = "";
            }
            // on incrémente le numéro du ticket courant:
            tiknu++;
            $('tiknu').value = tiknu;

            // la ligne de saisie du ticket courant est affichée:
            var new_ticket = $("ticket"+ tiknu);
            new_ticket.style.display = "";
            if (tiknu == 1) $("tik1").focus();
            if (tiknu == 2) $("tik2").focus();
            if (tiknu == 3) $("tik3").focus();
        } else {
            // erreur:
            msg_err.innerHTML = results[1] + "&nbsp;:(";
            cur_input.value = "";
            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;
}

function ticket_sf(){
    $("tik2").focus();
}
function ticket_sf2(){
    $("tik1").focus();
}

/***********************************************************************************************************************
 * FONCTIONS CODES
 **********************************************************************************************************************/
var code_url = "/code_check.php?";

function code_check()
{
	// construire la liste des parms ici:
	var code = $("cod").value;
	var msg = $('msg_ok');
	msg.innerHTML = "Merci de patienter...";

	var req = code_url + "cod=" + code;
	http.open("GET", req, false);

	http.send(null);

	return code_checkResponse(http.status,http.responseText);
}


// traitement de la réponse du serveur:
function code_checkResponse(status,resp)
{
	var node;
	var msg_err = $('code_msg_error');  msg_err.innerHTML = "&nbsp;";
	var msg_er2 = $('code_msg_error2'); msg_er2.style.display = "none";
	var msg_ok  = $('code_msg_ok');     msg_ok.innerHTML  = "&nbsp;";

	var cur_input  = $("cod");

	if (status == 200) {
        // analyse la chaine retournee:
		results = resp.split(":");
		if (results[0] == "1") {
			// pas d'erreur:
			return true;
		}

		// erreur:
		if (msg_err && results[1] != "") msg_err.innerHTML = results[1] + "&nbsp;:(";
		if (cur_input) cur_input.value = "";
		if (msg_er2) msg_er2.style.display = "";
		if (msg_ok) msg_ok.style.display = "none";
	} else {
		// une erreur ici !
		if (msg_err) msg_err.innerHTML = "Erreur du serveur Web :(";
		if (cur_input) cur_input.value = "";
	}
	return false;
}

/***********************************************************************************************************************
 * FONCTIONS DE BAS NIVEAU
 **********************************************************************************************************************/
// 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;
}


