// ajax.js

	var response = "";
	var	MAX_TIMES_BEFORE_ANOTHER_SUBMITION;

	function makeAsyncAjaxCall(url ) {

        req = getXmlHttpObject();
        req.open( "POST", url, true );
        req.onreadystatechange = ajaxFinish;
         
        //Do the Ajax call
        try{
            req.send();
        } catch (e){
            //showMessage(errorMsg );
         }
         return true;

	}

	function makeSyncronizedCall( url , functionRef) {
      
        req = getXmlHttpObject();
        req.open( "POST", url, true );
        req.onreadystatechange = functionRef;
         
        //Do the Ajax call
        try{
            req.send();
        } catch (e){
            //showMessage(errorMsg );
         }
         return response;
	
	}

	function ajaxFinishSyncronizedCall(){

		if (req.readyState == 4) { // Complete
	      if (req.status == 200) { // OK response
			response = req.responseText;
			
		  }
		}
	}
	
	function ajaxFinish(){

		if (req.readyState == 4) { // Complete
	      if (req.status == 200) { // OK response
			//alert(req.responseText)
		
		  }
		}
	}
	
	function afterPaymentSuccess(time) {
		var url = "keepAlive.do?time=" + time;
		req = getXmlHttpObject();
        req.open( "POST", url, true );
        req.onreadystatechange = function() {
        	if (req.readyState == 4) { // Complete
        		if (req.status == 200) {  // OK response
        			var resText = req.responseText;					
					var index = resText.indexOf("number of sumbition tries = ");
					if (index > -1) {
						checkForm();
					}
				}
			}
        }
        //Do the Ajax call
        try{
            req.send();
        } catch (e){
            //showMessage(errorMsg );
        }
	}
	
	function getAnswer(answerIndex) {
		var url = "getQuisAnswer.do?answer="+answerIndex;
		req = getXmlHttpObject();
        req.open( "POST", url, true );
        req.onreadystatechange = function() {
        	var qDiv = document.getElementById("question");
			if (req.readyState == 4) { // Complete
        		if (req.status == 200) {  // OK response
        			var resText = req.responseText;
					qDiv.innerHTML = resText;
					if (resText.indexOf("stopTimer") > -1) {
						stopTimer();	
					}
				}
			}
        }
        //Do the Ajax call
        try{
            req.send();
        } catch (e){
            //showMessage(errorMsg );
        }
	}
	
	
	function updateFlightsList() {		
		var fromElement = document.getElementById("depAirport");
		var toElement = document.getElementById("destAirport");
		var url = "getFlightsToRoute.do";
		url += "?fromCity=" + fromElement.value;
		url += "&toCity=" + toElement.value;
		
		req = getXmlHttpObject();
        req.open( "POST", url, true );
        req.onreadystatechange = function() {
        	if (req.readyState == 4) { // Complete
        		if (req.status == 200) {  // OK response
        			var resXml = req.responseText;		
					var fligtsElement = document.getElementById("flightNumber");			
					for (var i=0; i<fligtsElement.options.length; i++) {     	
				    	fligtsElement.options[i] = null;
				    }
			      	fligtsElement.options.length=0;	      	
			      	var index = 0;
			      	while (resXml.length > 30) {
			      		var begin = resXml.indexOf("<FLIGHT_NUMBER>");
			      		var end = resXml.indexOf("</FLIGHT_NUMBER>");
			      		var flightNumber = resXml.substring(begin+15, end);	      		
			      		resXml = resXml.substring(end+16);
			      		fligtsElement.options[index++] = new Option(flightNumber,flightNumber);
			      	}	
        		}
        	}
        }
        //Do the Ajax call
        try{
            req.send();
        } catch (e){
            //showMessage(errorMsg );
         }       			
	}


	
	function makeSyncJ2Call() {
		var result = "";
		var cardNumber = document.getElementById("pnrCredCardNumberI");
		var expMonth = document.getElementById("pnrCredCardExpMonthI");
		var expYear = document.getElementById("pnrCredCardExpYearI");
		var url = "makeJ2Request.do";
		url += "?ccNumber=" + cardNumber.value;
		url += "&ccExpDateYear=" + expYear.value;
		url += "&ccExpDateMonth=" + expMonth.value;
		
		req = getXmlHttpObject();
        req.open( "POST", url, false );
        req.onreadystatechange = function() {
        	if (req.readyState == 4) { // Complete
        		if (req.status == 200) {  // OK response
        			var resXml = req.responseText;
        			result = resXml;		
					alert(result);
					alert("after");
					//var fligtsElement = document.getElementById("flightNumber");			
					//for (var i=0; i<fligtsElement.options.length; i++) {     	
				   // 	fligtsElement.options[i] = null;
				    //}
			      	//fligtsElement.options.length=0;	      	
			      	//var index = 0;
			      	//while (resXml.length > 30) {
			      	//	var begin = resXml.indexOf("<FLIGHT_NUMBER>");
			      	//	var end = resXml.indexOf("</FLIGHT_NUMBER>");
			      	//	var cardType = resXml.substring(begin+15, end);	      		
			      	//	resXml = resXml.substring(end+16);
			      	//	fligtsElement.options[index++] = new Option(flightNumber,flightNumber);
			      	//}	
        		}
        	}
        }
        //Do the Ajax call
        try{
            req.send();
        } catch (e){
            //showMessage(errorMsg );
         }
         return result;
	}
	
	
	function getConnectionCityList(inputType, beginWith, language) {
		var optionsList = makeSyncronizedCall("http://localhost:9080/newBooking/getConnectionCity.do?inputType="+inputType + "&beginWith=" + beginWith);
		var begin = optionsList.indexOf("<option");
		var end = optionsList.indexOf("</select>");
		if (begin < end) {
			return optionsList.substring(begin, end);
		} else {
			return "";
		}
	}

	 /**
	   * Get the contents of the URL via an Ajax call
	   * url - to get content from (e.g. /struts-ajax/sampleajax.do?ask=COMMAND_NAME_1)
	   * nodeToOverWrite - when callback is made
	   * nameOfFormToPost - which form values will be posted up to the server as part
	   *					of the request (can be null)
	   */
	function getXmlHttpObject(){
	
	      var objXMLHttp=null;
	
	      try{
	
	       // Opera 8.0+, Firefox, Safari
	        objXMLHttp = new XMLHttpRequest();
	
	      } catch (e){
	           // Internet Explorer Browsers
	        try{
	         objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
	        } catch (e) {
	
	             try{
	            objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
	            } catch (e){
	           // Something wrong
	            }
	         }//end of catch
	
	     }//end of catch
	
	      return objXMLHttp;
	
	}
