

if(typeof(opt) == 'undefined') {var opt = {}};





opt.searchPratica = function() {

	

	//Clear table result

	opt.clearResult();

	

	var theUrl = "http://tlp.opentur.it/cgi-bin/rqrouting.shl?numpratica=" + opt.getParams();

	

	opt.writeStatus("Ricerca in corso...");

	

	document.getElementById("debug").value = "chiamo: " + theUrl;

	dojo.io.bind({

       url: theUrl,

       handler: opt.callBack

	          

     });

}



opt.clearResult = function() {

	var tbl = document.getElementById("resulTable");

	while (tbl.tBodies[0].rows.length > 0) {

        tbl.tBodies[0].deleteRow(0); 

	}    

	

	opt.writeStatus("");

}



opt.callBack =  function (type, data, evt) {

	

	var xmlDoc = dojo.dom.createDocumentFromText(data);

	var elDebug = document.getElementById("debug");

	elDebug.value = "Risposta Ricevuta";

	elDebug.value = data;

	

	

	if(opt.isWebServiceError(xmlDoc)) {

	    return false;

	}

	

	var rows = "";

	var oneTra = xmlDoc.getElementsByTagName("OneTra");

	//alert(dojo.dom.innerXML(xmlDoc));

	if(oneTra) {

		for(var i=0; i< oneTra.length; i++) {

			rows += opt.createRow(oneTra[i]);			

		}

	}

	

	//write status

	var bookNum = opt.getSingleElement(xmlDoc, "BookNum");

	opt.writeStatus("Pratica numero: " + bookNum);

}



opt.getParams = function() {
	var params = "";
	var nrPratica = document.getElementById("nrPratica").value;
	params += nrPratica;
	var codTO = document.getElementById("codTO");
	if(codTO) {
		params += "&codTO=" + codTO.value;
	}

	return params;	

}



opt.isWebServiceError = function(xmlDoc) {

   

    if(opt.getSingleElement(xmlDoc, "ErrorDescr")) {

        var statusBar = document.getElementById("statusBar");

        statusBar.innerHTML = opt.getSingleElement(xmlDoc, "ErrorDescr");

        return true;

    }else{

        return false;

    }

}



opt.createRow = function(elOneTra) {

   	

   	

	var traDepDate = opt.getSingleElement(elOneTra,"TraDepDate");

	if(traDepDate) {

	    var depYear = traDepDate.substr(0,4);

	    var depMon  = traDepDate.substr(4,2);

	    var depDay  = traDepDate.substr(6,2);

	    traDepDate = depDay + "/" + depMon + "/" + depYear;

	}

	var traDepCityDes = opt.getSingleElement(elOneTra,"TraDepCityDes");

	var traDepTime = opt.getSingleElement(elOneTra,"TraDepTime");

	if(traDepTime) {

        var hh = traDepTime.substr(0,2);

        var mm = traDepTime.substr(2,2);

        traDepTime = hh + ":" + mm;   	    

	}

	var traArrTime = opt.getSingleElement(elOneTra,"TraArrTime");

	if(traArrTime) {

	    var hhArr = traArrTime.substr(0,2);

        var mmArr = traArrTime.substr(2,2);

        traArrTime = hhArr + ":" + mmArr;   	   

	}

	var traCarr = opt.getSingleElement(elOneTra,"TraCarr");

	var traNum = opt.getSingleElement(elOneTra,"TraNum");

	var traCarrDes = opt.getSingleElement(elOneTra,"TraCarrDes");

	var traArrCityDes = opt.getSingleElement(elOneTra,"TraArrCityDes");

	

	var flightNumber = traCarr + "-" + traNum;

		

	addRowDOM("resultBody",traCarrDes, flightNumber, traArrTime, traArrCityDes, traDepTime, traDepCityDes, traDepDate)

}



  

opt.writeStatus = function(str) {

	 var statusBar = document.getElementById("statusBar");

	 statusBar.innerHTML = str;

}  

  

opt.getSingleElement = function(node,tagName) {

	if(!node) {return false;}

	var el = node.getElementsByTagName(tagName).item(0);

	if(el && el.hasChildNodes()) {

		return el.firstChild.nodeValue;

	}else{

		return false;

	}

}  



opt.toDate = function(str) {

	var theDate;

	if(typeof(str) == "date") {

		theDate = str;

	}else{

		theDate = new Date(Date.parse(str));

		if(theDate == "Invalid Date") {

			//Return the Epoch

			theDate = new Date("1 January 1970 00:00:00");

		}

	}

	return theDate;

}





function addRowDOM(tableID) { 

// pass every cell content as a futher arg

  var table = document.getElementById(tableID);

  if (arguments.length > 1) {

    var row = table.insertRow(table.rows.length);
    for (var i = arguments.length - 1; i >= 1; i--) {
        var cell = row.insertCell(arguments.length - 1 - i);
        cell.appendChild(document.createTextNode(arguments[i]));
    }

  }
}


























