var AO_public_carCardsFilter = function(){
		
	var form;		
	var make, make2, make3;
	var model, model2, model3;
	var acsr;
	var engine;		
	var filterCancel;	
	var filterSubmit;				

	var _multiFilter=0;
	
	var responseError = function(){
		alert('J6ON error');
		return;
	}		
				
	var reset = function (selectEl){		
		for(var i=0; i<selectEl.length; i++){
			var f = selectEl[i].get(0);
			f.options.length=0;
			f.options[0]=new Option('-', '');		
		}				
	}			
	
	var renderManager = function (cmd, response) {
		switch(cmd){								
			case 'model' :			renderModels(response.model);		break;			
			case 'model2' :			renderModels2(response.model);		break;			
			case 'model3' :			renderModels3(response.model);		break;			
			case 'nazov_vybavy' :	renderAcsr(response.nazov_vybavy);	break;
			case 'motor' :			renderEngine(response.motor);		break;
			default:				alert('no valid CMD '+ cmd +' in JSON');break;
		}			
	}
	
	var render = 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);			
		for(var cmd in response) renderManager(cmd, response);										
	}
	
	var render2 = 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);			
		
		for(var cmd in response) {
			if(cmd=='model') cmd='model2';
			renderManager(cmd, response);	
		}
	}
	
	var render3 = 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);			
		
		for(var cmd in response) {
			if(cmd=='model') cmd='model3';
			renderManager(cmd, response);	
		}
	}
		
	var renderModels = function (data){AO.Common.Util.generateOptions(model.get(0), data.options, data.value);}			
	var renderModels2 = function (data){AO.Common.Util.generateOptions(model2.get(0), data.options, data.value);}			
	var renderModels3 = function (data){AO.Common.Util.generateOptions(model3.get(0), data.options, data.value);}			
	var renderAcsr = function (data){AO.Common.Util.generateOptions(acsr.get(0), data.options, data.value);}	
	var renderEngine = function (data){AO.Common.Util.generateOptions(engine.get(0),  data.options, data.value);}	
					
	return {
		
		init : function(){			
						
			form = $('#carsCardListFilterForm');													
			filterSubmit = 	$("#filterSubmit");									
			filterCancel = 	$("#filterCancel");									
			
			make = $('#filter_idd_make');
			make.change(this.getModels);	
			
			if(_multiFilter){
				make2 = $('#filter_idd_make2');
				make2.change(this.getModels2);
				make3 = $('#filter_idd_make3');								
				make3.change(this.getModels3);
			}
						
			model = $('#filter_idd_model');	
			model.change(this.getAcsrEngine);	
					
			if(_multiFilter){
				model2 = $('#filter_idd_model2');			
				model2.change(this.getAcsrEngine);		
				model3 = $('#filter_idd_model3');
				model3.change(this.getAcsrEngine);											
			}
						
			acsr = $('#filter_idd_acsr');
			engine = $('#filter_idd_engine');																
																						
			filterSubmit.click(this.setFilter);	
			filterCancel.click(this.cancelFilter);	
			$('#active_filter_msg').click(this.cancelFilter);	
		},
		
		initTitleBox : function()
		{
			// alert("a");
			// just get models for make
			make = $('#filter_idd_make');
			make.change(this.getModelsTitle);	
			
			model = $('#filter_idd_model');				
		},
		
		getModels : function(){
			
			reset([model,acsr,engine]);						
			if(make.get(0).value=='') return;			
			
			var params = {
				_server: 'ao',
				_pack: 'autoKonfigurator',
				_action: 'get_model',
				mode: 'filter',
				znacka: make.get(0).value				
			}					
			$.post(AO.Common.settings.BASE_URL, params, render, "json");												
		},
		
		getModels2 : function(){
			
			reset([model2,acsr,engine]);						
			if(make2.get(0).value=='') return;			
			
			var params = {
				_server: 'ao',
				_pack: 'autoKonfigurator',
				_action: 'get_model',
				mode: 'filter',
				znacka: make2.get(0).value				
			}					
			$.post(AO.Common.settings.BASE_URL, params, render2, "json");												
		},
		
		getModels3 : function(){
			
			reset([model3,acsr,engine]);						
			if(make3.get(0).value=='') return;			
			
			var params = {
				_server: 'ao',
				_pack: 'autoKonfigurator',
				_action: 'get_model',
				mode: 'filter',
				znacka: make3.get(0).value				
			}					
			$.post(AO.Common.settings.BASE_URL, params, render3, "json");												
		},
		
		/*
		 * called from box on the title ...
		 */
		getModelsTitle : function()
		{	
						
			if(make.get(0).value=='') return;			
			
			var params = {
				_server: 'ao',
				_pack: 'autoKonfigurator',
				_action: 'get_model',
				mode: 'filter',
				znacka: make.get(0).value				
			}					
			$.post(AO.Common.settings.BASE_URL, params, render, "json");												
		},
		
		
		getAcsrEngine : function(){
			
			reset([acsr,engine]);
			
			if(_multiFilter){
				if(model2.get(0).value!='') return;
				if(model3.get(0).value!='') return;
				if(make2.get(0).value!='') return;
				if(make3.get(0).value!='') return;
			}
			
			if(model.get(0).value=='') return;
							
			var params1 = {
				_server: 'ao',
				_pack: 'autoKonfigurator',
				_action: 'get_nazov_vybavy',
				mode: 'filter',
				znacka: make.get(0).value,
				model: model.get(0).value		
			}				
			$.post(AO.Common.settings.BASE_URL, params1, render, "json");
		
			var params2 = {
				_server: 'ao',
				_pack: 'autoKonfigurator',
				_action: 'get_motor',
				mode: 'filter',
				znacka: make.get(0).value,
				model: model.get(0).value		
			}		
			$.post(AO.Common.settings.BASE_URL, params2, render, "json");							   
		},	
		setFilter : function (){
			form.submit();
			return false;
		},
		cancelFilter : function(){
			
			$('#filter_sent').val(0);
			
			$('#filter_reset').val(1);
			
			form.submit();
			return false;
		},
		
		setMultiFilter : function(v){
			_multiFilter=v;
		},
		
		disableAcsrEngine : function(){
			reset([acsr,engine]);	
		}
	}
}();



var AO_submitCompare_carCards = function(){
	
	var listCompareBtn1,listCompareBtn2,form,timeout;
		
	return {
		init: function()
		{
					
			form = $('#carCardsTableForm');		
			// listCompareBtn1 = $('#listCompare').click(this.submitTable);
			// listCompareBtn2 = $('#listCompare2').click(this.submitTable);
			
			var clueSett={
				local:true,
				width: '150px',	
				// height: '55px',								
				positionBy:'auto',
				cursor: 'pointer',
				tracking: false,
				attribute:'rel',
				showTitle:false,
				dropShadowSteps:3,
				sticky: true,
				topOffset: 10,
				leftOffset:10,	
				activation:'click',
				// closePosition : "title",
				closeText:'',
				cluetipClass: 'jtip'
			};
			
			listCompareBtn1 = $('#listCompare').click(AO.Common.Util.createHandler(this.submitTable,this)).attr("rel","#cluetip_porovnaj").cluetip(clueSett);
			listCompareBtn2 = $('#listCompare2').click(AO.Common.Util.createHandler(this.submitTable,this)).attr("rel","#cluetip_porovnaj").cluetip(clueSett);
		},
		submitTable : function (e)
		{
			e.preventDefault();
			
			var selected=$("input[name^='carCard']:checked",form);
			
			if(selected.size()>1)
			{
				this.showMsg("počkajte prosím ...");
				form.submit();				
				// return false;	
			}else
			{
				window.clearTimeout(timeout);
				
				var msg="Označte aspoň dva automobily!";
				
				this.showMsg(msg);
				
				this.deferHide();							
			}			
		},
		
		showMsg : function(msg)
		{
			var f=function()
			{
				var c=$('#cluetip-inner');
				c.html(msg);
			};
		
			window.setTimeout(f,40);
		},
		
		deferHide : function()
		{
			// defer hide
			var f2=function()
			{
				$('#cluetip').hide();
				// alert("a");
			};
			
			timeout=window.setTimeout(f2,4000);			
		}
	}	
}();

var AO_predajca_carTable = function (){
	
	var  renderDelete = function (responseText, statusText){
		var response = responseText.data;
		var result = responseText.result;			
		
		if(result){
			//$('#cluetip-inner').get(0).innerHTML='Autokarta bola vymazaná.';
			alert('Autokarta bola vymazaná.');
			window.location.reload();
		}else{
			alert('Autokarta nebola vymazaná. Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part);
			//$('#cluetip-inner').get(0).innerHTML='Autokarta nebola vymazaná. Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part;
		}				
	}
	
	return {
		init : function(){	
			
						
			$('#carCardsTableForm a.deleteItem').click(this.deleteCarCard);	
			
			
		},
		deleteCarCard : function (e){			
													
			var res = window.confirm('Naozaj chcete vymazať autokartu?');
			if(!res) return false;
			
			var link =  this;
			
			var params = {
				_server: 'ao',
				_pack: 'autoKonfigurator',
				_action: 'delete_item',
				autokarta_id: $(link).get(0).rel			
			}		
			$.post(AO.Common.settings.BASE_URL, params, renderDelete, "json");
											
		}
	}
}();

var AO_admin_carTable = function (){
		
	var form, saveCarCardsTableBtn1, saveCarCardsTableBtn2;
	
	var newsletterDialog;	
	var iframeDialog;
	var akcieDialog;
	
	var submit = function(ajaxSetup){				   		   
	    form.ajaxSubmit(ajaxSetup);		   
	    form.submit(function(){return false;});
	}
	
	var renderResponse = function (responseText, statusText){
		var response = responseText.data;
		var result = responseText.result;			
		$('#cluetip-inner').get(0).innerHTML='Uložené...';
		window.setTimeout(hideResponse, 5000);		
	}
	
	
	var  renderDelete = function (responseText, statusText){
		var response = responseText.data;
		var result = responseText.result;			
		
		if(result){
			//$('#cluetip-inner').get(0).innerHTML='Autokarta bola vymazaná.';
			alert('Autokarta bola vymazaná.');
			window.location.reload();
		}else{
			alert('Autokarta nebola vymazaná. Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part);
			//$('#cluetip-inner').get(0).innerHTML='Autokarta nebola vymazaná. Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part;
		}				
	}
			
	var hideResponse = function (){
		$('#cluetip').hide();
	}
	
	var setInitText = function(){		
	    	$('#cluetip-inner').get(0).innerHTML='Prebieha ukladanie.';		
	}
	
	return {
		init : function(){	
			form = $('#carCardsTableForm');
			saveCarCardsTableBtn1 = $('#saveCarCardsTableBtn1');
			saveCarCardsTableBtn2 = $('#saveCarCardsTableBtn2');
			
			saveCarCardsTableBtn1.click(this.submitTable);								
			saveCarCardsTableBtn2.click(this.submitTable);			
			
			// newsletter add to
			this.setUpNewsletter();
			
			// iframe add to
			this.setUpIframe();
			
			// iframe add to
			this.setUpAkcie();
			
			$("#removeCarCards1").click(AO.Common.Util.createHandler(this.deleteCarCards,this));
			$("#removeCarCards2").click(AO.Common.Util.createHandler(this.deleteCarCards,this));
			
			var clueSetup = {
				local:true,
				width: '150px',
				sticky: true,
				activation:'click',				
				cursor: 'pointer',
				tracking:false,
				showTitle:false,
				closeText:'',
				dropShadow:false,				
				cluetipClass: 'jtip',
				topOffset: 30,
				leftOffset:10
			}
			
			saveCarCardsTableBtn1.cluetip(clueSetup);	
			saveCarCardsTableBtn2.cluetip(clueSetup);	
			
			$('#carCardsTableForm a.deleteItem').click(this.deleteCarCard);	
			
			$("#carCardCheckAll").click(AO.Common.Util.createHandler(this.checkAllCards,this));
		},
		
		submitTable : function (){

			window.setTimeout(setInitText, 300);
					
			var opt = { 		        
		        success: renderResponse,
			    error:renderResponse,	
		        url:'/ocenenie-auta/ibase.php?_server=ao&_pack=autoKonfigurator&_action=group_update_items',
		        dataType:'json'
	    	};			

	    	    	
	    	submit(opt);	
		},
		deleteCarCard : function (e){			
													
			var res = window.confirm('Naozaj chcete vymazať autokartu?');
			if(!res) return false;
			
			var link =  this;
			
			var params = {
				_server: 'ao',
				_pack: 'autoKonfigurator',
				_action: 'delete_item',
				autokarta_id: $(link).get(0).rel			
			}		
			$.post(AO.Common.settings.BASE_URL, params, renderDelete, "json");
											
		},
		
		// remove more
		deleteCarCards : function (e){			
			
			e.preventDefault();
			
			var ids=this.getCardsSelection();
			
			if(ids.length==0)
			{
				alert("Nie je označená žiadna autokarta!");								
				return;
			}
			
			var res = window.confirm('Naozaj chcete vymazať označené autokarty?');
			if(!res) return false;
						
			var params = {
				_server: 'ao',
				_pack: 'autoKonfigurator',
				_action: 'delete_item',
				autokarta_id: ids.join("|")
			}		
			$.post(AO.Common.settings.BASE_URL, params, AO.Common.Util.createHandler(this.deleteCarCardsComplete,this), "json");
											
		},
		
		deleteCarCardsComplete : function(d)
		{
			if(d.result==1)
			{
				AO.Common.Util.reload();
			}	
			else
			{
				switch(d.error.code)
				{					
					default :
						alert("Mazanie autokariet neprebehlo úspešne!","bad");					
					break;
				}
			}	
		},
		
		// ********************************************
		// selection
		
		checkAllCards : function()
		{
			var ch=$("#carCardCheckAll").is(":checked");
			
			$("#carCardsTableForm input[name^='carCardID']").each(
				function()
				{
					if(ch)
						$(this).attr("checked","checked");
					else
						$(this).removeAttr("checked");
				}
				
			);
		},
		
		getCardsSelection : function()
		{
			var sel=$("#carCardsTableForm input[name^='carCardID']:checked");
			
			var ids=[];
			
			for(var i=0; i<sel.size(); i++)
				ids.push(sel.get(i).value);
			
			return ids;
		},	
		
		
		// ********************************************
		// newsletter part - add cards to newsletter
		
		setUpNewsletter : function()
		{
			newsletterDialog=$("#newsletter_dialog");
			newsletterDialog.dialog(
				{
					width:480, 
					height:200, 				
					autoOpen:false
				}
			); 
						
			newsletterDialog.dialog("close");
			
			$("#addCarCardsToNewsletter1").click(AO.Common.Util.createHandler(this.openNewsletterDialog,this));
			$("#addCarCardsToNewsletter2").click(AO.Common.Util.createHandler(this.openNewsletterDialog,this));
			
			$("#newsletterDraftsAddButton").click(AO.Common.Util.createHandler(this.addCardsToNewsLetter,this));
			
			$("#newsletterRedirLink").click(AO.Common.Util.createHandler(this.newsletterEditRedit,this));
		

		},
		
		openNewsletterDialog : function(e)
		{
			e.preventDefault();
			
			// open dialog
			newsletterDialog.dialog("open");			
			
			// check selection
			var sel=this.getCardsSelection();
			
			if(sel.length==0)
			{
				this.setNwsltrStatusMessage("Nie je označená žiadna autokarta!","bad");
			}			
			
		},
			
		
		addCardsToNewsLetter : function()
		{
			// check selected newsletter
			var newsletter_id=$("#newsletterDrafts").val();
			
			if(!newsletter_id)
			{
				// nothing selected
				this.setNwsltrStatusMessage("Vyberte newsletter!","bad");
				return;
			}
			
			var cards=this.getCardsSelection();
			if(cards.length==0)
			{
				this.setNwsltrStatusMessage("Nie je označená žiadna autokarta!","bad");
				return;
			}
			
			// request
			var postData={
				_action : "add_autokarta",
				_pack : "autoNewsletter",
				_server : "ao",
				newsletter_id : newsletter_id,
				ponuka_karty : cards.join("|")
			};
			
			this.setNwsltrStatusMessage("Pridávam autokarty do newslettera.","info");
			
			$.post(AO.Common.settings.BASE_URL, postData, AO.Common.Util.createHandler(this.addCardsToNewsLetterComplete,this), "json");				
		},
		
		
		addCardsToNewsLetterComplete : function(d)
		{
			if(d.result)
			{
				this.setNwsltrStatusMessage("Autokarty boli pridané do newslettera!","ok");
				
				// close dialog latter
				f=function()
				{
					newsletterDialog.dialog("close");
				}				
				window.setTimeout(f,9000);
			}else
			{
				switch(d.error.code)
				{
					case 501 :
						this.setNwsltrStatusMessage("Snažíte sa pridať nepublikovanú autokartu!","bad");
					break;
					
					default:
						this.setNwsltrStatusMessage("Nastala chyba (kód: "+d.error.code+")","bad");
					break;					
				}
			}
		},
		
		
		setNwsltrStatusMessage : function(msg,type)
		{			
			if(!this.nwsltrStatusObject)
				this.nwsltrStatusObject=new AO.Common.formStatusMsg("newsletterDialogStatusMsg");
			
			this.nwsltrStatusObject.setStatusMessage(msg,type);			
			this.deferHideNwsltrStatusMsg();			
		},
		
		
		deferHideNwsltrStatusMsg : function()
		{
			if(!this.nwsltrStatusObject)
				this.nwsltrStatusObject=new AO.Common.formStatusMsg("newsletterDialogStatusMsg");
			
			this.nwsltrStatusObject.deferHideStatusMsg();				
		},
		
		newsletterEditRedit : function(e)
		{
			e.preventDefault();
			
			var sel=$("#newsletterDrafts");
			
			var newsletter_id=sel.val();
			
			if(!newsletter_id)
			{
				// nothing selected
				this.setNwsltrStatusMessage("Vyberte newsletter!","bad");
				return;
			}
						
			var link=window.__newsletter_ponuka_link;
			
			window.location.href=link+"&newsletter_id="+newsletter_id;	
						
		},
		
		// newsletter end
		// ******************
		
		
		
		// ********************************************
		// iframe part - add cards to "mnozina iframe"
		
		
		setUpIframe : function()
		{
			iframeDialog=$("#iframe_dialog");
			iframeDialog.dialog(
				{
					width:480, 
					height:200, 				
					autoOpen:false
				}
			); 
						
			iframeDialog.dialog("close");
			
			$("#addCarCardsToIframe1").click(AO.Common.Util.createHandler(this.openIframeDialog,this));
			$("#addCarCardsToIframe2").click(AO.Common.Util.createHandler(this.openIframeDialog,this));
			
			$("#iframeDraftsAddButton").click(AO.Common.Util.createHandler(this.addCardsToIframe,this));
			
			$("#iframeRedirLink").click(AO.Common.Util.createHandler(this.iframeEditRedit,this));
		
		},
		
		openIframeDialog : function(e)
		{
			e.preventDefault();
			
			// open dialog
			iframeDialog.dialog("open");			
			
			// check selection
			var sel=this.getCardsSelection();
			
			if(sel.length==0)
			{
				this.setIframeStatusMessage("Nie je označená žiadna autokarta!","bad");
			}			
			
		},
			
		
		addCardsToIframe : function()
		{
			// check selected iframe
			var iframe_id=$("#iframeDrafts").val();
			
			if(!iframe_id)
			{
				// nothing selected
				this.setIframeStatusMessage("Vyberte Iframe!","bad");
				return;
			}
			
			var cards=this.getCardsSelection();
			if(cards.length==0)
			{
				this.setIframeStatusMessage("Nie je označená žiadna autokarta!","bad");
				return;
			}
			
			// request
			// TODO
			var postData={
				_action : "add_autokarta",
				_pack : "autoIframe",
				_server : "ao",
				iframe_id : iframe_id,
				ponuka_karty : cards.join("|")
			};
			
			this.setIframeStatusMessage("Pridávam autokarty do iframeu.","info");
			
			$.post(AO.Common.settings.BASE_URL, postData, AO.Common.Util.createHandler(this.addCardsToIframeComplete,this), "json");				
		},
		
		
		addCardsToIframeComplete : function(d)
		{
			if(d.result)
			{
				this.setIframeStatusMessage("Autokarty boli pridané do množinového iframeu!","ok");
				
				// close dialog latter
				f=function()
				{
					iframeDialog.dialog("close");
				}				
				window.setTimeout(f,9000);
			}else
			{
				switch(d.error.code)
				{
					// TODO
					case 501 :
						this.setIframeStatusMessage("Snažíte sa pridať nepublikovanú autokartu!","bad");
					break;
					
					default:
						this.setIframeStatusMessage("Nastala chyba (kód: "+d.error.code+")","bad");
					break;					
				}
			}
		},
		
		
		setIframeStatusMessage : function(msg,type)
		{			
			if(!this.iframeStatusObject)
				this.iframeStatusObject=new AO.Common.formStatusMsg("iframeDialogStatusMsg");
			
			this.iframeStatusObject.setStatusMessage(msg,type);			
			this.deferHideIframeStatusMsg();			
		},
		
		
		deferHideIframeStatusMsg : function()
		{
			if(!this.iframeStatusObject)
				this.iframeStatusObject=new AO.Common.formStatusMsg("iframeDialogStatusMsg");
			
			this.iframeStatusObject.deferHideStatusMsg();				
		},
		
		
		iframeEditRedit : function(e)
		{
			e.preventDefault();
			
			var sel=$("#iframeDrafts");
			
			var iframe_id=sel.val();
			
			if(!iframe_id)
			{
				// nothing selected
				this.setIframeStatusMessage("Vyberte iframe!","bad");
				return;
			}
						
			var link=window.__iframe_ponuka_link;
			
			window.location.href=link+"&iframe_id="+iframe_id;	
						
		},
		
		// iframe part - end
		// ******************
		
		
		
		// ********************************************
		// akcie part - add cards to "mnozina akcie"
		
		
		setUpAkcie : function()
		{
			akcieDialog=$("#akcie_dialog");
			akcieDialog.dialog(
				{
					width:480, 
					height:200, 				
					autoOpen:false
				}
			); 
						
			akcieDialog.dialog("close");
			
			$("#addCarCardsToAkcia1").click(AO.Common.Util.createHandler(this.openAkcieDialog,this));
			$("#addCarCardsToAkcia2").click(AO.Common.Util.createHandler(this.openAkcieDialog,this));
			
			$("#akcieDraftsAddButton").click(AO.Common.Util.createHandler(this.addCardsToAkcie,this));
			
			$("#akcieRedirLink").click(AO.Common.Util.createHandler(this.akcieEditRedir,this));
		
		},
		
		openAkcieDialog : function(e)
		{
			e.preventDefault();
			
			// open dialog
			akcieDialog.dialog("open");			
			
			// check selection
			var sel=this.getCardsSelection();
			
			if(sel.length==0)
			{
				this.setAkcieStatusMessage("Nie je označená žiadna autokarta!","bad");
			}			
			
		},
			
		
		addCardsToAkcie : function()
		{
			// check selected akcia
			var akcia_id=$("#akcieDrafts").val();
			
			if(!akcia_id)
			{
				// nothing selected
				this.setAkcieStatusMessage("Vyberte Akciu!","bad");
				return;
			}
			
			var cards=this.getCardsSelection();
			if(cards.length==0)
			{
				this.setAkcieStatusMessage("Nie je označená žiadna autokarta!","bad");
				return;
			}
			
			// request
			// TODO
			var postData={
				_action : "add_autokarta",
				_pack : "autoAkcia",
				_server : "ao",
				akcia_id : akcia_id,
				ponuka_karty : cards.join("|")
			};
			
			this.setAkcieStatusMessage("Pridávam autokarty do akcie.","info");
			
			$.post(AO.Common.settings.BASE_URL, postData, AO.Common.Util.createHandler(this.addCardsToAkcieComplete,this), "json");				
		},
		
		
		addCardsToAkcieComplete : function(d)
		{
			if(d.result)
			{
				this.setAkcieStatusMessage("Autokarty boli pridané do množinovej akcie!","ok");
				
				// close dialog latter
				f=function()
				{
					akcieDialog.dialog("close");
				};			
				window.setTimeout(f,9000);
			}else
			{
				switch(d.error.code)
				{
					// TODO
					case 501 :
						this.setAkcieStatusMessage("Snažíte sa pridať nepublikovanú autokartu!","bad");
					break;
					
					default:
						this.setAkcieStatusMessage("Nastala chyba (kód: "+d.error.code+")","bad");
					break;					
				}
			}
		},
		
		
		setAkcieStatusMessage : function(msg,type)
		{			
			if(!this.akcieStatusObject)
				this.akcieStatusObject=new AO.Common.formStatusMsg("akcieDialogStatusMsg");
			
			this.akcieStatusObject.setStatusMessage(msg,type);			
			this.deferHideAkcieStatusMsg();			
		},
		
		
		deferHideAkcieStatusMsg : function()
		{
			if(!this.akcieStatusObject)
				this.akcieStatusObject=new AO.Common.formStatusMsg("akcieDialogStatusMsg");
			
			this.akcieStatusObject.deferHideStatusMsg();				
		},
		
		
		akcieEditRedir : function(e)
		{
			e.preventDefault();
			
			var sel=$("#akcieDrafts");
			
			var akcia_id=sel.val();
			
			if(!akcia_id)
			{
				// nothing selected
				this.setAkcieStatusMessage("Vyberte Akciu!","bad");
				return;
			}
						
			var link=window.__akcia_ponuka_link;
			
			window.location.href=link+"&akcia_id="+akcia_id;	
						
		}
		
		// akcie part - end
		// ******************
		
		
	}	
}();	

var  AO_carCard_acsr_priceCalc = function(){
	
	var sum = 0;
	var totalCarPriceLeasingEl;
	var totalCarPricePoistenieEl;	
	var totalCarPriceTxtEl;
	var totalCarPrice;
	var totalCarPriceBasicParamsEl;
	var totalCarPriceAcsrBasicParamsEl;
	var totalCarPriceBasicParamsEl2;
	var totalCarPriceAcsrBasicParamsEl2;
	
	var calculate = function(item){
			
		var plus = item.get(0).checked;
		
		var priceInt = item.get(0).size;			
		var priceStr = priceInt.toString();
		//alert(priceStr);
		var priceStrValid = priceStr.replace(',','.');
		var priceStrValid = priceStrValid.replace(' ','');			
		var priceNumber = Number(priceStrValid);
		if(isNaN(priceNumber)) priceNumber=0;
		
		if(plus)
			sum =  sum + priceNumber;
		else
			sum =  sum - priceNumber;												
		
		displaySum();
	}	

	var displaySum = function(){
		
		var sumTotal=Number(totalCarPrice)+Number(sum);	
		var fSum = numberFormat(sum);					
		var fSumTotal = numberFormat(sumTotal);	
		
		$('#acsr_price_sum1').html(fSum);
		$('#clue_content').html('&sum; ' +fSum+ ',- Sk');		
		
		if($('#cluetip-inner').get(0))
			$('#cluetip-inner').html('&sum; ' +fSum+ ',- Sk');
		
		// suma auta aj s vybavou		
		totalCarPriceLeasingTxtEl.html(fSumTotal+ ',- Sk');
		totalCarPriceLeasingEl.val(sumTotal);
		totalCarPriceLeasingEl.trigger('change');
		
		totalCarPricePoistenieEl.val(sumTotal);
		totalCarPricePoistenieEl.trigger('change');
		
		totalCarPriceBasicParamsEl.html(fSumTotal+ ',- Sk');
		totalCarPriceAcsrBasicParamsEl.html(fSum+ ',- Sk');
		
		totalCarPriceBasicParamsEl2.html(fSumTotal+ ',- Sk');
		totalCarPriceAcsrBasicParamsEl2.html(fSum+ ',- Sk');				
	}
	
	function numberFormat(nStr,prefix){
	    var prefix = prefix || '';
	    nStr += '';
	    x = nStr.split('.');
	    x1 = x[0];
	    x2 = x.length > 1 ? ',' + x[1] : '';
	    var rgx = /(\d+)(\d{3})/;
	    while (rgx.test(x1))
	        x1 = x1.replace(rgx, '$1' + '.' + '$2');
	    return prefix + x1 + x2;
	}
	
	return {
		
		init: function(){
			
			var sel=$('#html_add_vybava input.acsrPrice');
			totalCarPriceLeasingTxtEl=$('#financovanie_obstaravacia_cena_txt');
			totalCarPriceLeasingEl=$('#financovanie_obstaravacia_cena');
			totalCarPricePoistenieEl=$('#poistenie_cena');
			totalCarPriceBasicParamsEl=$('#cena_final_s_dph_basic_param');
			totalCarPriceAcsrBasicParamsEl=$('#cena_vybavy_calc_s_dph_basic_param');
			totalCarPriceBasicParamsEl2=$('#cena_final_s_dph_basic_param2');
			totalCarPriceAcsrBasicParamsEl2=$('#cena_vybavy_calc_s_dph_basic_param2');
			
			totalCarPrice=totalCarPriceLeasingEl.val();
											
			sel.cluetip({
				local:true,
				width: '100px',
				sticky: false,								
				positionBy:'auto',
				cursor: 'pointer',
				tracking: true,
				showTitle:true,
				dropShadowSteps:3,				
				cluetipClass: 'jtip'
			});
			
			displaySum();
						
			sel.click(function(){				
				var el=$(this);
				calculate(el);				
			});		
			
			jQuery.each(sel, function(key, value) {			 	
				if($(this).get(0).checked==true) {
					var el=$(this);					
					calculate(el);						
				}
			});		
			
		}							
	}
}();

if(typeof AO !== "object") AO={};

AO.sendEmailPoradna = function (){
		
	var form, formMsg;
	var inProgress=false;
		
	var renderResult = function(responseText, statusText){
		
		var response = responseText.data;
		var result = responseText.result;				
		
		if(result){	
		
			if(window['pageTracker'])
					pageTracker._trackPageview("/poradnadone.html");			
				
			formMsg.html('Email do poradne bol odoslaný.');
			
			form.get(0).reset();
			
			window.setTimeout(emptyMsg, 9000);
		}else{
			formMsg.html('Email nebol odoslaný. Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part);
			window.setTimeout(emptyMsg, 9000);
		}
		
		inProgress = false;	
	}
	
	var emptyMsg = function(){
		formMsg.html('&nbsp;');
	}
	
	var renderError = function(responseText, statusText){
		formMsg.html('Email nebol odoslaný.');
		inProgress = false;			
	}
	
	var submit = function(ajaxSetup){				   		   
	    form.ajaxSubmit(ajaxSetup);		   
	    form.submit(function(){return false;});
	}
	
	return {
		init : function(){	
			
			form = $('#autoKartaPoradnaForm');			
			formMsg = $('#autoKartaPoradnaFormMsg');
			
			var submitHandler=AO.Common.Util.createHandler(this.send,this);			
			
			form.validate({
				rules: {
					meno: {
						required: true
					},
					otazka: {
						required: true			
					},
					telefon: {
						required: "#autoKartaPoradnaEmail:blank"
					},
					email: {
						required: "#autoKartaPoradnaTelefon:blank"			
					}
				},
				messages: {						
					meno: {
						required: "povinné"						
					},
					otazka: {
						required: "povinné"						
					},
					telefon: {
						required: "aspoň jedna je povinná"
					},
					email: {
						required: "aspoň jedna je povinná"			
					}				
				},
				errorClass: "invalid",				
				submitHandler: submitHandler
			});			
			
		},
		send : function(e){
			
			if(inProgress) return;
			
			formMsg.html('Email sa odosiela.');
			inProgress = true;			
			
			var opt = { 		        
		        success: AO.Common.Util.createHandler(renderResult,this),
			    error:AO.Common.Util.createHandler(renderError,this),	
		        url:'/ocenenie-auta/ibase.php?_server=ao&_pack=autoPonuka&_action=send_email2poradna',
		        dataType:'json'
	    	};			
	    	    	
	    	submit(opt);			
		}
							
	}	
}();


AO.bazar = function (){
		
	function _setComplete (responseText, statusText) {
		
		var response = responseText.data;
		var result = responseText.result;				
		
		if(result){						
			
			$('#carCardBazarStatus').html('<strong class="txt_red">Auto je zaradené do bazáru siete autoolymp.sk</strong>');
			
		}else{
			
		}
		
	}
	
	return {
		setCarById : function(id){	
			
			var post = {
				_server : 'ao',
				_pack: 'autoKonfigurator',
				_action: 'set_bazar',
				f_bazar: 1,
				autokarta_id: id
			}
			
			$.post('ibase.php', post, _setComplete,'json')
		}
							
	}	
}();

if(typeof AO !== "object") AO={};

AO.emailToFriend = function() {
	
	var dialogInitialized=false;
	
	var blockedSend=false;
	
	var sendEmailDialog=null; // dialog reference
	var sendEmailForm;
	var sendEmailFormMsg;	
	var openDialogBtn;
	
	var initDialog = function (cfg){
					
		sendEmailDialog.dialog(cfg); 
				
		var butt = $('div.ui-dialog-buttonpane button:first');
		
		$('div.ui-dialog-buttonpane button:first').addClass('button butt-red');	
		$('div.ui-dialog-buttonpane button:last').addClass('button butt-green');	
		
		closeDialog();		
	}
	
	var setDialogContent = function(html){
		sendEmailDialog.html(html);
	};
	
	var setDialogDimmensions = function(width,height){
		sendEmailDialog.parent().parent().width(width);
		sendEmailDialog.parent().parent().height(height);		
		openDialog();
	};
	
	var setDialogTitle = function(txt){	
		var p=sendEmailDialog.parent();			
		$("span.ui-dialog-title").html(txt);
	};
	
	var openDialog = function(e){
		
		// lazy creation
		if(!dialogInitialized)
		{
			initDialog({
				width:580, 
				height:260, 				
				autoOpen:false
			});
			
			sendEmailDialog.show(); // hidden from init
			
			dialogInitialized=true;
		}
				
		e.preventDefault();
		sendEmailDialog.dialog("open");		
	};
		
	var closeDialog = function(){		
		sendEmailDialog.dialog("close");
	};
	
	var renderResult = function(responseText, statusText){
		
		var response = responseText.data;
		var result = responseText.result;				
		
		if(result){						
			sendEmailFormMsg.html('Email bol odoslaný.');
			window.setTimeout(emptyMsg, 3000);
		}else{
			sendEmailFormMsg.html('Email nebol odoslaný. Error code: ' + responseText.error.code + ' | app part :'+ responseText.error.app_part);
			window.setTimeout(emptyMsg, 3000);
		}
		
		// window.setTimeout(closeDialog,5000);		
		blockedSend=false;
		
		// reset form
		$("input:text",sendEmailForm).val("");
		$("textarea",sendEmailForm).val("");
	}
	
	var emptyMsg = function(){
		sendEmailFormMsg.html('&nbsp;');
	}
	
	var renderError = function(responseText, statusText){
		sendEmailFormMsg.html('Email nebol odoslaný.');		
	}
	
	var submit = function(ajaxSetup){				   		   
	    sendEmailForm.ajaxSubmit(ajaxSetup);		   
	    sendEmailForm.submit(function(){return false;});
	}
			
	return {
		
		init : function(selection){
			sendEmailDialog = $('#send_email_dialog');
			sendEmailDialog.hide();
			
			sendEmailForm = $('#autoKartaSendEmailForm');
			
			sendEmailFormMsg = $('#autoKartaSendEmailFormMsg');					
			$('#autoKartaSendEmailFormClose').click(AO.Common.Util.createHandler(closeDialog,this));		
			
			openDialogBtn = $(selection);

			var submitHandler=AO.Common.Util.createHandler(this.send,this);
			
			/*
			// slow
			// make lazy creation		
			initDialog({
				width:580, 
				height:260, 				
				autoOpen:false
			});
			*/
									
			openDialogBtn.click(AO.Common.Util.createHandler(openDialog,this));	
			
			sendEmailForm.validate({
				rules: {
					email_from: {
						required: true,
						email: true
					},
					email_to: {
						required: true,
						email: true					
					}
				},
				messages: {						
					email_from: {
						required: "povinná položka",
						email: "nesprávny formát e-mailovej adresy odosielateľa"
					},
					email_to: {
						required: "povinná položka",
						email: "nesprávny formát e-mailovej adresy adresáta"
					}					
				},
				errorClass: "invalid",				
				submitHandler: submitHandler
			});			
				
		},
		
		send : function(e){
			//$('#autoKartaSendEmailFormSubmit').trigger('click');
			if(blockedSend)
				return;
			
			var opt = { 		        
		        success: AO.Common.Util.createHandler(renderResult,this),
			    error:AO.Common.Util.createHandler(renderError,this),	
		        url:'/ocenenie-auta/ibase.php?_server=ao&_pack=autoPonuka&_action=send_email2friend',
		        dataType:'json'
	    	};			
	    	    	
	    	submit(opt);
			
			blockedSend=true;			
		}
	}
	
}();



AO.CardNotes = function (){
		
	var block,form;
	
	return {
		
		setUpNotes : function()
		{
			form=$("#notes_form");
			
			form.validate({
				rules: {
					note: "required"
				},
				messages: {					
					note: "povinná položka"
				},
				
				errorClass: "invalid",
				// focusCleanup: true,
				submitHandler : AO.Common.Util.createHandler(this.saveNote,this)
			});
			
		},
		
		
		saveNote : function(e)
		{	
			$("#notes_form_response_message").text("").hide();
					
			var opts={
				success : AO.Common.Util.createHandler(this.saveNoteComplete,this),
		        error : AO.Common.handler.ajaxError,				
		        url : AO.Common.settings.BASE_URL,
		        dataType : 'json',
				method : "POST"
			};
			
			form.ajaxSubmit(opts);
		},
		
		
		saveNoteComplete : function(d)
		{			
			if(d.result===1)
			{
				this.setStatusMessage("Uloženie poznámky prebehlo úspešne!","ok");
			}	
			else
			{
				switch(d.error.code)
				{					
					default :
						this.setStatusMessage("Uloženie poznámky sa nepodarilo!","bad");					
					break;
				}
			}							
		},
		
		setStatusMessage : function(msg,type)
		{	
			if(!this.statusObject)
				this.statusObject=new AO.Common.formStatusMsg("notes_form_response_message",6000);
			
			this.statusObject.setStatusMessage(msg,type);
			
			this.deferHideStatusMsg();
		},
		
		
		deferHideStatusMsg : function()
		{
			if(!this.statusObject)
				this.statusObject=new AO.Common.formStatusMsg("notes_form_response_message",6000);
			
			this.statusObject.deferHideStatusMsg();	
		}
	};
}();


