if(typeof AO !== "object") AO={};
	
AO.AutoPredajnaUser=function(){
	
	var orderCrc;
	var predajId, statusId, stepId;	
	var acceptBtn, stornoBtn;
	var stateMsg, statusMsg;
	
	var stornoRezervaciaBlock=false; // jan storno block
	var stornoCompleteLink; // jan storno block
	
	
	var predajna_dialog=null; // dialog reference
	
	var init_dialog = function (){
							
		predajna_dialog.dialog({
				width:650, 
				height:400, 				
				autoOpen:false,
				buttons: {
					Súhlasím: AO.AutoPredajnaUser.accept,
					Nesúhlasím: closeDialog
				}
		}); 
		
		
		var butt = $('div.ui-dialog-buttonpane button:first');
		
		$('div.ui-dialog-buttonpane button:first').addClass('button butt-green');	
		$('div.ui-dialog-buttonpane button:last').addClass('button butt-red');	
		
		closeDialog();
		
	}
	
	var setDialogContent = function(html)
	{
		predajna_dialog.html(html);
	};
	
	var setDialogDimmensions = function(width,height)
	{
		predajna_dialog.parent().parent().width(width);
		predajna_dialog.parent().parent().height(height);
		
		openDialog();
	};
	
	var setDialogTitle = function(txt)
	{	
		var p=predajna_dialog.parent();
			
		$("span.ui-dialog-title").html(txt);
	};
	
	var openDialog = function()
	{
		// predajna_dialog.dialog("enable");
		if(statusId==3){
			predajna_dialog.dialog("open");
		}
	};
		
	var closeDialog = function()
	{
		// predajna_dialog.dialog("disable");
		predajna_dialog.dialog("close");
	};
	
	
	var setStatus = function (status){
		
		switch(status){
			case 3:
				msg="nepotvrdená";
				cls="status_msg_bad";
			break;		
			case 0:
				msg="otvorená";
				cls="status_msg_bad";											
			break;						
			case 2:
				msg="stornovaná";
				cls="status_msg_bad";
			break;
			case 1:
				msg="ukončená";
				cls="status_msg_ok";
			break;
			default:
				msg="";
				cls="";
			break;
				
		}
		stateMsg.addClass(cls);		
		stateMsg.html(msg);
	}
	
	var disable = function(status){
		
		switch(status){
			case 'accept':						
				acceptBtn.removeClass('butt-green').addClass('butt-gray');				
			break;
			case 'storno':								
				stornoBtn.removeClass('butt-red').addClass('butt-gray');								
			break;
			case 'all':				
				acceptBtn.removeClass('butt-green').addClass('butt-gray');				
				stornoBtn.removeClass('butt-red').addClass('butt-gray');
			break;
		}		
	}
	
	var renderAccept = function(responseText, statusText){
		
		var response = responseText.data;
		var result = responseText.result;				
		//if(!result)  alert('Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part);			
		if(result){
			disable('accept');
			statusId=0;
			setStatus(0);			
			statusMsg.html('Objednávka bola potvrdená.');
		}else{
			statusMsg.html('Objenávku sa nepodarilo potvrdiť. Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part);
		}
	}
	
	var renderStorno = function(responseText, statusText){
		
		var response = responseText.data;
		var result = responseText.result;				
		//if(!result)  alert('Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part);			
	
		if(result){
			disable('storno');
			disable('accept');
			statusId=2;
			setStatus(statusId);
			statusMsg.html('Objednávka bola stornovaná.');
		}else{
			statusMsg.html('Objednávku sa nepodarilo stornovať. Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part);
		}
		
	}
	
	return {
		
		init : function(pId, step, status, crc){
			
			acceptBtn = $('#potvrdit_step_1');
			stornoBtn = $('#storno_butt');
			stateMsg = $('#objednavka_stav');
			statusMsg = $('#status_msg');
			predajna_dialog=$("#predajna_dialog2");
			
			init_dialog();
			
			orderCrc=crc;
			stepId=step;
			statusId=status;
			predajId=pId;
			
			// alert('status: '+statusId+' step: '+stepId);
			
			setStatus(statusId);
			/* status je nepotvrdena*/
			if(statusId == 3){
				
				//acceptBtn.click(this.accept);
				acceptBtn.click(openDialog);
				acceptBtn.removeClass('butt-gray').addClass('butt-green');
			}else{
				disable('accept');
			}
			
			/* status nie je storno a ukoncena*/
			if(statusId!=2 && statusId!=1){
				stornoBtn.click(this.storno);	
				stornoBtn.removeClass('butt-gray').addClass('butt-red');
			}else{
				disable('storno');
			}
			
		},
		accept : function (){
			
			
			var params = {
				_server: 'ao',
				_pack: 'autoPredajna',
				_action: 'commit_objednavka',
				predaj_id: predajId,
				crc:orderCrc
			}
			
			if(statusId==3){	
				
				//var result = window.confirm('Potvrdením objednávky súhlasíte s obchodnými podmienkami spoločnosti CarDealer s.r.o. \n\n Želáte si objednávku potvrdiť?');
				
				//if(result)							
					$.post(AO.Common.settings.BASE_URL, params, renderAccept, "json");
					closeDialog();			
			}
			
		},
		storno : function (){
			
			var params = {
				_server: 'ao',
				_pack: 'autoPredajna',
				_action: 'storno_predaj',
				predaj_id: predajId,
				crc:orderCrc		
			}	
			
			if(statusId!=2 && statusId!=1)	{	
				
				var result = window.confirm('Naozaj chcete stornovať objednávku? \n Operácia je nezvratná.');
				
				if(result)		
					$.post(AO.Common.settings.BASE_URL, params, renderStorno, "json");
			}
		},
		
		
		
		// ##############################################
		//  REZERVACIA -> objednavka
		//  needs AutoPredajna.js
		// ##############################################
		
		setUpUserRezervacia : function(objednavka_tab_index,predaj_id,stornoRedir,objednavkaRedir)
		{
			predajId=predaj_id;
			stornoCompleteLink=stornoRedir;
						
			AO.AutoPredajna.setPredajnaMode("userRezervacia");
			
			// tab switch functionality, objednavka is in AutoPredajna.js
			AO.AutoPredajna.setObjednavkaTabIndex(objednavka_tab_index);
			AO.AutoPredajna.setUpUserPredajnaCommon(objednavkaRedir);
			
			AO.AutoPredajna.setUpObjednavkaForm();
			
			// storno
			var storno_button=$("#predajna_storno_butt");
			
			storno_button.click(AO.Common.Util.createHandler(this.stornoRezervaciaHandler,this));
						
		},
		
		
		
		setUpUserStornoRezervacia : function()
		{
			// block objednavka
			AO.AutoPredajna.setEnabledObjednajForms(false);
		},
		
		
		stornoRezervaciaHandler : function(e)
		{
			e.preventDefault();
			this.stornoRezervacia();
		},
		
		stornoRezervacia : function(e)
		{
			if(stornoRezervaciaBlock)
				return;
			
			var go=confirm("Skutočne chcete stornovať záujem?");
			
			if(!go)
				return;
						
			stornoRezervaciaBlock=true;
			
			var postData={
				_action : "storno_predaj",
				_pack : "autoPredajna",
				_server : "ao",
				predaj_id : predajId
			};			
			
			$.post(AO.Common.settings.BASE_URL, postData, AO.Common.Util.createHandler(this.stornoRezervaciaComplete,this), "json");						
						
		},
		
		stornoRezervaciaComplete : function(d)
		{
			if(d.result)
			{
				window.location.href=stornoCompleteLink;
			}else
			{
				alert("Storno rezervácie neprebehlo úspešne!");
			}
			
			stornoRezervaciaBlock=true;
		}
		
	}
	
	
}();
