// browser flag
var browser=0;// 1-IE, 2-Gecko
// time to answer 
var responseInterval=5;
// working flag - if order is active flag is true
// flag is seting to false by getresponse callback functio when returned status is REQ_OK
var working=false;

function $(id){return document.getElementById(id);}

function Start(){
	if(navigator.appVersion.indexOf("MSIE") != -1)
		browser=2;
	else
		browser=1;		
	getCities();		
}

/*
HTML_AJAX.onOpen=function(){;} 

 HTML_AJAX.onError=function(e){
	msg=$('error').innerHTML+"\n\n\n";
	for(var i in e){
		msg+=i+' : '+e[i]+"\n";
	}
	$('error').innerHTML=msg;
}*/



var TestServerCallbacks={
	getcities: function(result){
		var sel=$('cities');
		for(var i=0; i<result.length; i++){
			//alert(result[i]['id']+'  '+result[i]['city'])
			var op=document.createElement('option');
			op.value=result[i]['id'];
			op.text=result[i]['city'];				
			if(browser == 1)
				sel.appendChild(op);
			else	
				sel.add(op);
		}
	},
	getfirms: function(result){
		var sel=$('firms');
		for(var i=0; i<result.length; i++){
		//alert(result[i]['id']+" "+result[i]['firm']);
			op=document.createElement('option');
			op.value=result[i]['id'];
			op.text=result[i]['firm'];
			if(browser==1)
				sel.appendChild(op);
			else	
				sel.add(op);
		}
	},
	openrequest: function(result){
		if(result['status']=='error'){
			// DONE: czyszczenie danych zamówienia, reset, może anulowanie, żeby
			// wykasować dane sesji, chyba nie?
			$('pagetitle').innerHTML=result['pagetitle'];
			$('response').innerHTML=result['message'];		
			$('requestStatus').className='div-hide';
			$('requestsButtons').style.display='none';//Name='div-hide';//.display			
						
		}else if(result['status']=='ok'){
/*			alert(result['status']);
			alert(result['miasto']);
			alert(result['firma']);
			alert(result['lokalizacja']); */
			$('pagetitle').innerHTML=result['pagetitle'];
			var req=$('requestform');
			var resdata=$('responsedata');
			resdata.className="div-show";
			req.className="div-hide";
			working=true;
			setTimeout("UpdateResponse()", 1000);
		}
	},
	getresponse: function(result){
		if(result['status']=='new'){ // nieobsłużone
			$('response').innerHTML=result['message']; // standardowa wiadomośc zwracana przez php, że zamówienie jest jeszzce nieobsłużone
						
		}else if(result['status']=='firmaconfirmed'){
			working=false;			
			$('requestStatus').className='div-hide';
			$('response').innerHTML=result['message'];			
			$('btnConfirmRequest').style.display="inline";//className='div-show';
			$('btnConfirmRequest').style.height='auto';
		}else if(result['status']=='firmacancelled'){
			working=false;
			$('response').innerHTML=result['message'];
			$('pagetitle').innerHTML=result['pagetitle'];
			$('requestStatus').className='div-hide';
			$('requestsButtons').style.display='none';//Name='div-hide';//.display
		}
	},
	confirmrequest: function(result){
		//$('btnConfirmRequest').style.display="none";//className='div-show';
		//if(result['status'=='ok'])
		working=false;
		$('pagetitle').innerHTML=result['pagetitle'];
		$('response').innerHTML=result['message'];
		
		$('requestStatus').className='div-hide';
		$('requestsButtons').style.display='none';//Name='div-hide';//.display		
		//$('btnConfirmRequest').style.height='0px';
	},
	cancelrequest: function(result){
/* 		if(result['status']=='ok'){
		// DONE: obsługa anulowania zamówienia
			$('pagetitle').innerHTML=result['pagetitle'];
			$('response').innerHTML=result['message'];
		}else if(result['status']=='error'){
			$('pagetitle').innerHTML='Błąd';
			$('response').innerHTML=result['message'];
		}
 */		
 		working=false;
 		$('pagetitle').innerHTML=result['pagetitle'];
		$('response').innerHTML=result['message'];		
		$('requestStatus').className='div-hide';
		$('requestsButtons').style.display='none';//Name='div-hide';//.display
		
	}
}


function getCities(){
	server.getcities();
}

function getFirms(){
	var sel=$('firms');
	while(sel.length>0){
		sel.remove(0);
	}
	server.getfirms($('cities').value);
}

function sendRequest(){
	var flag=true;
	if( this.document.getElementById("cities").value <= 0){
		alert("Wybierz miasto");
		flag=false;
	}
	if(this.document.getElementById("cities").value <= 0){
		alert("Wybierz firmę");
		flag=false;
	}
	if(this.document.getElementById("token").value ==''){
		alert("Wpisz kod potwierdzający.");
		flag=false;
	}
	if(this.document.getElementById("lokalizacja").value == ''){
		alert("Wpisz lokalizację (gdzie ma przyjechac taksówka).");
		flag=false;
	}
	if(flag){
		server.openrequest(
			this.document.getElementById("cities").value,
			this.document.getElementById("firms").value,
			this.document.getElementById("token").value,
			this.document.getElementById("lokalizacja").value		
		);
	}
}

function UpdateResponse(){
	  responseInterval--;
	  	if(responseInterval==0){	 
		  responseInterval=5;
		  server.getresponse();
		}
		document.getElementById("second").innerHTML=responseInterval;
  if(working)
    setTimeout("UpdateResponse()", 1000);	
}

function CancelRequest(){
	// DONE: obsługa zamówienia po stronie javascript
	if(confirm('Anulować zamówienie?'))	
		server.cancelrequest();
}

function ConfirmRequest(){
	// DONE: obsługa zamówienia po stronie javascript
	server.confirmrequest();
}

var server=new clientrequest(TestServerCallbacks);
