debug=function(text){
	$('debug_log').set('html', $('debug_log').get('html')+text+'<br />');
}

//MooWav project by 9tree v0.1
//http://9tree.net/tools/MooWav/
var MooWav={
	sounds:[],
	play:function(file, options){
		//default opts
		if(typeof options != 'object') options={};
		
		var i=this.getSoundIndex(file);
		if(i!==false){
			if(this.sounds[i].playing){
				this.stopSound(this.sounds[i]);
			}
			this.playSound(this.sounds[i], options);
		} else {
			options.autostart=true;
			if(!options.loop) options.loop=false;
			if(!options.hidden) options.hidden=true;
			this.playSound(this.sounds[this.newSound(file, options)]);
		}
	},
	getSoundIndex:function(file){
		for(var i=0; i<this.sounds.length; i++){
			if(this.sounds[i].name==file){
				return i;
			}
		}
		return false;
	},
	stop:function(file){
		var i=this.getSoundIndex(file);
		if(i!==false){
			if(this.sounds[i].playing){
				this.stopSound(this.sounds[i]);
			}
			return true;
		}
		return false;
	},
	newSound:function(file, options){
		//set type
		options.type=this.getMimeType();
		options.src=file;
		//create sound
		return this.sounds.push({
			'obj':new Element('embed', options),
			'name':options.src,
			'playing':false
		})-1;
	},
	playSound:function(el, options){
		for(item in options){
			el.obj.set(item, options.item);
		}
		el.obj.inject(document.body);
		el.playing=false;
		return true;
	},
	stopSound:function(el){
		el.obj.dispose();
		return true;
	},
	getMimeType:function(){
		var mimeType = "application/x-mplayer2"; //default
		if (navigator.mimeTypes && Browser.Platform.name!='win') {
			//non-IE, no-Windows
	  		var plugin=navigator.mimeTypes["audio/mpeg"].enabledPlugin;
	  		if (plugin) mimeType="audio/mpeg"; //Mac/Safari & Linux/FFox
		}
		return mimeType;
	}
}



//js_growl - http://techtrouts.com/js_growl-mootools-based-javascript-growl-like-notifications/
/*
JS_Growl Mootools based notifier
Version 0.2
Developed and maintained by Carlos Ouro
http://techtrouts.com
*/
JS_Growl={
	//user callable properties / funcionalities
	notify:function(str){
		if(!this._v.initiated) this._a.init();
		var el=new Element('div',{
			'class':(Browser.Engine.name=='trident' && Browser.Engine.version<5)?'JS_Growl_notify_IE6':'JS_Growl_notify',
			'html':str
		});
		el.inject(this._o.container);
		var fx= new Fx.Morph(el, {
			'duration': 'short'
		});
		fx.set({
			'opacity':0,
			'display':'block'
		});
		fx.start({
			'opacity':[0,1]
		});
		setTimeout(function(){
			fx.start({
				'opacity':[1,0]
			}).chain(function(){
				this.options.durtion='long';
				this.start({
					'height':0,
					'padding-top':0,
					'padding-bottom':0,
					'margin-top':0,
					'margin-bottom':0
				}).chain(function(){
					el.destroy();
				});
			});
		}, 5000);
	},

	//internal structure "à la fallforward ( http://fallforwardgame.com )"
	_v:{
		initiated:false
	},
	_a:{
		init:function(){
			JS_Growl._o.container=new Element('div', {'id':'JS_Growl_container'});
			JS_Growl._o.container.inject(document.body);
			JS_Growl._v.initiated=true;
			if(Browser.Engine.name=='trident' && Browser.Engine.version<5){							
				//position "fixed"
				JS_Growl._o.container.setStyle({'position':'absolute'});
				JS_Growl._a.ie6_pos();
				window['addEvent']('scroll', JS_Growl._a.ie6_pos);
				window['addEvent']('resize', JS_Growl._a.ie6_pos);
			}
		},
		ie6_pos:function(){
			JS_Growl._o.container.setStyles({'top':Window.getScrollTop()+'px', 'left':Window.getWidth()+'px'});
		}
	},
	_o:{
		"container":null
	}
}


Utilities={
	_v:{
		//default colors - if 'background-color' or 'color' aren't defined in css
		default_bg_color:'#fff',
		default_color:'#000',

		//highlight colors
		h_bg_color:'#eeeebb',
		h_color:'#999',

		//home url
		home_url:'',
		cur_page:''
	},
	_a:{
		init:function(my_url, my_page){
			Utilities._v.home_url=my_url;
			Utilities._v.cur_page=my_page;
		},
		//change content and flash
		change_obj_content:function(id, content){
			var el=$(id);
			//alert(id+" "+typeof(el));
			if(el){ //object exists
				//get initial values
				var cur_styles=el.getStyles('background-color', 'color');
				//set bg defs
				var check_bg=cur_styles['background-color']!='transparent';
				var init_bg=check_bg?cur_styles['background-color']:Utilities._v.default_bg_color;
				//set color defs
				var check_color=cur_styles['color']!='inherit';
				var init_color=check_color?cur_styles['color']:Utilities._v.default_color;

				var fx = new Fx.Morph(el, {duration:500, wait:false});

				//set inits
				if(!check_bg) fx.set({"background-color":Utilities._v.default_bg_color});
				if(!check_color) fx.set({"color":Utilities._v.default_color});
				//start highlight
				fx.start({
						"background-color":Utilities._v.h_bg_color,
						"color": Utilities._v.h_color
				}).chain(function(){
					//alert('checkpoint');
					el.set('html', content);
					this.start({
						"background-color":init_bg,
						"color": init_color
					}).chain(function(){
						if(!check_bg) fx.set({"background-color":'transparent'});
						if(!check_color) fx.set({"color":'inherit'});
					});
				});
			}
		},

		//altera multiplos ids automaticamente
		update_from_json:function(url, post_data){
			if(typeof post_data == 'undefined') post_data='';
			if(typeof post_data != 'object') post_data={};
			//adds:
			//home url to call url 
			//home url and cur_page to get data 
			url=Utilities._v.home_url + url + (url.indexOf('?')!=-1?'&':'?') + 'mode=JSON&base_path=' + Utilities._v.home_url + '&page=' + Utilities._v.cur_page;
			new Request.JSON( {
					"url": url,
					"secure":false,
					"onComplete": function(jsonObj, txt) {

						var str='';
						for(var id in jsonObj){
							str=str+'"'+id+'" ';
						}
						//alert(str);
						//embembed actions before setting content
						if ('exec_before' in jsonObj) if(typeof jsonObj.exec_before == 'function') jsonObj.exec_before();
						//set content by id
						if ('content_by_id' in jsonObj){
							for (var id in jsonObj.content_by_id){
								//alert('changing '+id);
								Utilities._a.change_obj_content(id, jsonObj.content_by_id[id]);
							}
						}

						//embembed actions after setting content
						if ('exec_after' in jsonObj) if(typeof jsonObj.exec_after == 'function') jsonObj.exec_after();
					}
				}).post(post_data);
		},

		//remove item DOM
		remove_item:function(id){
			var el=$(id);
			if(el){ //object exists
				//get initial values
				var cur_bg=el.getStyles('background-color')['background-color'];
				//set bg defs
				var check_bg=cur_bg!='transparent';
				var init_bg=check_bg?cur_bg:Utilities._v.default_bg_color;

				var fx = new Fx.Morph(el, {duration:350, wait:false});

				//set inits
				if(!check_bg) fx.set({"background-color": Utilities._v.default_bg_color});

				fx.start({
							'background-color': '#ffcccc'
				}).chain(function(){
							this.start({
										"opacity": 0
							}).chain(function(){
										el.destroy();
									});
						});
			}
		},

		//verifica se é número inteiro
		num_check_keystroke:function(e){
			var keynum;

			if(window.event) // IE
			  {
			  keynum = e.keyCode;
			  }
			else if(e.which) // Netscape/Firefox/Opera
			  {
			  keynum = e.which;
			  }
			return Utilities._a.num_check(String.fromCharCode(keynum));
		},

		//is_int
		int_check:function(value){
			var intcheck = /[0-9]+/;
			return intcheck.test(value);
		},

		//is_numeric
		num_check:function(value){
			var numcheck = /\d/;
			return numcheck.test(value);
		},

		//input is filled
		check_email:function(value){
			return value.match(/[a-zA-Z0-9._-]{2}[a-zA-Z0-9._-]+[@][a-zA-Z0-9._-]{2}[a-zA-Z0-9._-]+[.][a-zA-Z][a-zA-Z]+/);
		},

		//acordeao
		make_accordion:function(header, content, container_id){
			return new Accordion(header, content, {
				opacity: false,
				start: 'all-closed',
				alwaysHide: true,
				onActive: function(toggler, element){
					toggler.setStyle('color', '#ff3300');
				},

				onBackground: function(toggler, element){
					toggler.setStyle('color', 'inherit');
				}
			}, $(container_id));
		}
	},
	_o:{
	}
}


Sr_Carlos={
	_v:{

		//home url
		min_price:0,
		cart_qt:0,
		cart_price:'0.00',
		max_change:0,

		//cache vars
		viewing_cart:false,
		cart_cur_image:0,
		pagamento_has_changed:false,
		cur_qt:false
	},
	_a:{
		init:function(preco_min, troco_max, qt, preco){
			Sr_Carlos._v.cart_qt=qt;
			Sr_Carlos._v.cart_price=preco;
			Sr_Carlos._v.min_price=preco_min;
			Sr_Carlos._a.max_change=troco_max;
			Sr_Carlos._v.cart_cur_image=(parseInt(preco)>parseInt(preco_min)?2:(qt>0?1:0));

			//view cart overlay etc
			if(Utilities._v.cur_page!='carrinho'){
					Sr_Carlos._o.closelink=$('view_items_close');
					Sr_Carlos._o.overlay=$('view_items_overlay');

					//initializes overlay
					Sr_Carlos._o.fx.overlay=new Fx.Tween(Sr_Carlos._o.overlay, {property: "opacity", duration: 200}).set(0);
					Sr_Carlos._o.fx.closelink=new Fx.Tween(Sr_Carlos._o.closelink, {wait:false, property: "opacity", duration: 200}).set(0);

					//onclick events
					Sr_Carlos._o.overlay.onclick = Sr_Carlos._o.closelink.onclick = Sr_Carlos._a.close_view_items;
					
					if(Browser.Engine.name=='trident' && Browser.Engine.version<5){	
						Sr_Carlos._o.overlay.setStyle("position", "absolute");
						//sets onScroll events
						window['addEvent']('scroll', function(){
							if(Sr_Carlos._v.viewing_cart) {
								Sr_Carlos._o.overlay.setStyle('top', Window.getScrollTop()+'px');
							}
						});
					}

					Sr_Carlos._o.overlay.setStyles({height: Window.getHeight()+'px'});

					//sets resize events
					window['addEvent']('resize', function(){
						//update overlay
						if(Sr_Carlos._v.viewing_cart) {
							Sr_Carlos._o.overlay.setStyles({height: Window.getHeight()+'px'});
						}
					});
			}
		},
		//update cart buttons
		update_cart:function(qt, preco){

			if(Utilities._v.cur_page!='carrinho'){
				//cart_view_button
				if(Sr_Carlos._v.cart_qt==0 || qt==0){
					$('cart_view_button').disabled=qt>0?"":"disabled";
				}
				//cart_finish_button (n funca)
				if(parseInt(Sr_Carlos._v.min_price)<parseInt(preco) && parseInt(Sr_Carlos._v.cart_price)<parseInt(Sr_Carlos._v.min_price)){
					$('cart_finish_button').disabled="";
					if(Utilities._v.cur_page!='carrinho') $('cart_view_finish').disabled="";
				} else if(parseInt(Sr_Carlos._v.cart_price)>parseInt(Sr_Carlos._v.min_price) && parseInt(Sr_Carlos._v.min_price)>parseInt(preco)) {
					$('cart_finish_button').disabled="disabled";
					if(Utilities._v.cur_page!='carrinho') $('cart_view_finish').disabled="disabled";
				}
			}

			//imagem
			if(Sr_Carlos._v.cart_cur_image!=(parseInt(preco)>parseInt(Sr_Carlos._v.min_price)?2:(qt>0?1:0))){
				Sr_Carlos._v.cart_cur_image=(parseInt(preco)>parseInt(Sr_Carlos._v.min_price)?2:(qt>0?1:0));
				$('cart_view_image').src=Utilities._v.home_url+"images/cart_"+Sr_Carlos._v.cart_cur_image+".png";
			}

			Sr_Carlos._v.cart_qt=qt;
			Sr_Carlos._v.cart_price=preco;
			$('cart_items_nr').set('html', qt);
			$('cart_cost').set('html', preco);
		},

		//limpa o carrinho e recria um carrinho vazio (onclick)
		clear_carrinho:function(){
			if(confirm("Deseja remover todos os items do carrinho?")){
				if(Utilities._v.cur_page!='carrinho') Sr_Carlos._a.clear_view_cart();
				Utilities._a.update_from_json("ajaxed/carrinho/clear_carrinho.php");
			}
			return false;
		},

		//limpa view_cart
		clear_view_cart:function(){
			if(Sr_Carlos._v.viewing_cart) Sr_Carlos._a.close_view_items();
		},

		//remove produto do carrinho (onclick)
		remove_produto:function(id){
			Utilities._a.update_from_json("ajaxed/carrinho/remove_produto.php", {"produto_id":id});
			return false;
		},

		//insere hora de entrega (onchange)
		set_client_hora_entrega:function(){
			var val=$('client_hora_entrega').value;
			if(val<45 || (val>61 && val<69) || val>85) {
				JS_Growl.notify('<span class="yellow">A sua compra não se encontra em hor&aacute;rio preferencial.</span>');
				JS_Growl.notify('Caso necess&aacute;rio, poder&aacute; ser contactado pela nossa equipa log&#205;stica.');
			}
			Utilities._a.update_from_json("ajaxed/carrinho/set_hora_entrega.php", {"hora_id":val});
		},

		//insere data de entrega (onchange)
		set_client_data_entrega:function(){
			$('client_data_entrega_true').setStyle('display', 'none');
			$('client_data_entrega_false').setStyle('display', 'none');
			Utilities._a.update_from_json("ajaxed/carrinho/set_data_entrega.php", {"data":$('client_data_entrega').value});
		},

		//verifica código postal existente (onclick)
		check_cp:function(){
			var el_1=$("cod_1");
			var el_2=$("cod_2");
			if(el_1.value==='' || el_2.value==='' || !Utilities._a.num_check(el_1.value) || !Utilities._a.num_check(el_2.value)){
				JS_Growl.notify('<span class="red">C&#243;digo postal imposs&#205;vel.</span>');
				return false;
			}
			$('cp_button').setStyle('display','none');
			$('cp_true').setStyle('display','none');
			$('cp_false').setStyle('display','none');
			$('cp_loading').setStyle('display','block');
			Utilities._a.update_from_json("ajaxed/carrinho/check_cod_postal.php", {"cod_postal_1":el_1.value, "cod_postal_2":el_2.value});
			return false;
		},

		//verifica código postal existente (onclick)
		set_cp:function(){
			var el_1=$("cod_1");
			var el_2=$("cod_2");
			var el_3=$("client_localidade");
			if(el_1.value==='' || el_2.value==='' || el_3.value==='' || !Utilities._a.num_check(el_1.value) || !Utilities._a.num_check(el_2.value) || el_3.value.length<3){
				if(Utilities._v.cur_page!='carrinho') JS_Growl.notify('<span class="red">C&#243;digo postal imposs&#205;vel.</span>');
				return false;
			}
			if(Utilities._v.cur_page!='carrinho') $('cp_button').setStyle('display','none');
			$('cp_true').setStyle('display','none');
			$('cp_false').setStyle('display','none');
			$('cp_loading').setStyle('display','block');
			Utilities._a.update_from_json("ajaxed/carrinho/set_cod_postal.php", {"cod_postal_1":el_1.value, "cod_postal_2":el_2.value, "client_localidade":el_3.value});
			return false;
		},

		//verifica código postal preenchido (onclick)
		check_cp_filled:function(){
			var el_1=$("cod_1");
			var el_2=$("cod_2");
			var el_3=$("client_localidade");
			if(el_1.value==='' || el_2.value==='' || el_3.value==='' || !Utilities._a.num_check(el_1.value) || !Utilities._a.num_check(el_2.value) || el_3.value.length<3){
				return false;
			}
			if($('cp_true').getStyle('display')!='none') return true;
			return false;
		},

		//testa quantidades (onchange)
		check_quantidade_full:function(e_id){
			var el=$(e_id);
			var check1=el && el.value!=='' && !Utilities._a.num_check(el.value);
			if(!check1){
				var check2=(el.getProperty('mode')=="Kg")?(el.value<0.01):(el.value<1);
			}
			
			if(check1 || check2){
				JS_Growl.notify('<span class="red">Quantidade imposs&#205;vel.</span>');
				el.value='';
				return false;
			} else return true;
		},

		//testa quantidades (onkeypress)
		check_quantidade:function(e){
			Sr_Carlos._v.cur_qt=$(id).value;
			return Utilities._a.num_check_keystroke(e);
		},

		//set quantidade (onchange)
		set_quantidade:function(e_id, p_id){
			if(Sr_Carlos._a.check_quantidade_full(e_id)){
				Utilities._a.update_from_json("ajaxed/carrinho/set_quantidade.php", {"produto_id":p_id, "mode":$(e_id).getProperty('mode'), "quantidade":$(e_id).value});
			}
		},

		//testa pagamento (onchange)
		check_pagamento:function(){
			el=$('client_valor_pagamento');
			if(el.value==='' || !Utilities._a.num_check(el.value)) {
			} else {
				$('pagamento_true').setStyle('display','none');
				$('pagamento_false').setStyle('display','none');
				$('pagamento_loading').setStyle('display','block');
				Utilities._a.update_from_json("ajaxed/carrinho/check_pagamento.php", {"valor":$(el).value});
			}	
		},

		//insere e testa pagamento (onchange)
		set_pagamento:function(){
			el=$('client_valor_pagamento');
			if(el.value==='' || !Utilities._a.num_check(el.value)) {
				JS_Growl.notify('<span class="red">Valor a pagar imposs&#205;vel.</span>');
			} else {
				$('pagamento_true').setStyle('display','none');
				$('pagamento_false').setStyle('display','none');
				$('pagamento_loading').setStyle('display','block');
				Utilities._a.update_from_json("ajaxed/carrinho/set_pagamento.php", {"valor":$(el).value});
			}
		},

		//add produto (onclick)
		add_produto:function(id, qt, mode){
			if(!Utilities._a.num_check(qt)) {
				JS_Growl.notify('<span class="red">Quantidade imposs&#205;vel.</span>');
			} else {
				//JS_Growl.notify('A adicionar '+qt+' produtos ('+id+')');
				Utilities._a.update_from_json("ajaxed/carrinho/add_produto.php", {"produto_id":id, "mode":mode, "quantidade":qt});
			}
			return false;
		},

		//ver items (onclick)
		view_items:function(){
			Sr_Carlos._v.viewing_cart=true;
			new Element('img', {
				'src':Utilities._v.home_url+'images/white_loader.gif', 
				'styles':{
					'margin-left':'390px',
					'margin-top':'100px'
				}}).inject('cart_view');
			$('cart_view_container').setStyle('display', 'block');
			Utilities._a.update_from_json("ajaxed/carrinho/ver_items.php", {});
			Sr_Carlos._o.overlay.setStyle('display', 'block');
			Sr_Carlos._o.closelink.setStyle('display', 'block');
			Sr_Carlos._o.fx.closelink.start(1);
			Sr_Carlos._o.fx.overlay.start(0.4);
		},
		//fecha view items
		close_view_items:function(){
			$('cart_view_container').setStyle('display', 'none');
			$('cart_view').set('html', '');
			//close menu
			Sr_Carlos._o.fx.closelink.start(0);
			Sr_Carlos._o.fx.overlay.start(0).chain(function(){
				Sr_Carlos._o.overlay.setStyle('display', 'none');
				Sr_Carlos._o.closelink.setStyle('display', 'none');
				Sr_Carlos._v.viewing_cart=false;
			});
		},

		//input is filled
		input_filled:function(id, chars){
			if($(id).value!=='' && $(id).value.length>=chars){
				if($(id+'_false') && $(id+'_false').getStyle('display')!='none'){
					$(id+'_false').setStyle('display', 'none');
				}
				if($(id+'_true') && $(id+'_true').getStyle('display')!='block'){
					$(id+'_true').setStyle('display', 'block');
				} 
				return true;
			} else {
				if($(id+'_true') && $(id+'_true').getStyle('display')!='none'){
					$(id+'_true').setStyle('display', 'none');
				}	
				if($(id+'_false') && $(id+'_false').getStyle('display')!='block'){
					$(id+'_false').setStyle('display', 'block');
				}	
				return false;
			}
		},

		set_input:function(id, chars){
			switch(id){
				case 'client_email':
				  	if(Sr_Carlos._a.input_email(id)){
						Sr_Carlos._a.set_input_data('client_email', $('client_email').value);
					}
				  	break;
				case 'client_req_factura':
					Sr_Carlos._a.check_req_fact();
					Sr_Carlos._a.set_input_data('client_req_factura', $('client_req_factura').checked?1:0);
					break;
				default:
				  	if(Sr_Carlos._a.input_filled(id, chars)){
						Sr_Carlos._a.set_input_data(id, $(id).value);
					}
			}	
		},

		set_input_data:function(data_name, data_value){
			Utilities._a.update_from_json("ajaxed/carrinho/set_input_data.php", {"data_name":data_name, "data_value":data_value});
		},

		check_req_fact:function(){
			var val=$('client_req_factura').checked;
			$('client_fact_name').disabled=val?'':'disabled';
			$('client_fact_cont').disabled=val?'':'disabled';
			$('client_fact_morada').disabled=val?'':'disabled';
		},

		//input is filled
		input_email:function(id){
			if($(id).value!=='' && Utilities._a.check_email($(id).value)){
				if($(id+'_true').getStyle('display')!='block') $(id+'_true').setStyle('display', 'block');
				return true;
			} else {
				if($(id+'_true').getStyle('display')!='none') $(id+'_true').setStyle('display', 'none');
				return false;
			}
		},

		submit_carrinho:function(){
			if(Utilities._v.cur_page!='carrinho') return false;

			$('FC_steps').setStyle('display', 'none');
			$('FC').setStyle('display', 'none');
			$('FC_submiting').setStyle('display', 'block');

			check=true;
			alert_text="";

			//nome
			if(!Sr_Carlos._a.input_filled('client_name', 3)){
				alert_text=alert_text+"Por favor preencha o seu nome.\n\n";
				check=false;
				$('client_name').setStyle('background-color', '#ff8');
			} else $('client_name').setStyle('background-color', '#fff');

			//telefone
			if(!Sr_Carlos._a.input_filled('client_tlf', 9)){
				alert_text=alert_text+"Por favor preencha o seu telefone.\n\n";
				check=false;
				$('client_tlf').setStyle('background-color', '#ff8');
			} else $('client_tlf').setStyle('background-color', '#fff');

			//email
			if(!Sr_Carlos._a.input_email('client_email')){
				alert_text=alert_text+"Por favor preencha o seu email correctamente.\n\n";
				check=false;
				$('client_email').setStyle('background-color', '#ff8');
			} else $('client_email').setStyle('background-color', '#fff');

			//morada
			if(!Sr_Carlos._a.input_filled('client_morada', 5)){
				alert_text=alert_text+"Por favor preencha a sua morada completa.\n\n";
				check=false;
				$('client_morada').setStyle('background-color', '#ff8');
			} else $('client_morada').setStyle('background-color', '#fff');

			//código postal
			if(!Sr_Carlos._a.check_cp_filled()){
				alert_text=alert_text+"Por favor preencha o seu código postal.\n\n";
				check=false;
				$('cod_1').setStyle('background-color', '#ff8');
				$('cod_2').setStyle('background-color', '#ff8');
			} else {
				$('cod_1').setStyle('background-color', '#fff');
				$('cod_2').setStyle('background-color', '#fff');
			}

			//valor
			if($('pagamento_true').getStyle('display')=='none'){
				alert_text=alert_text+"Por favor indique o valor com que vai pagar.\n\n";
				check=false;
				$('client_valor_pagamento').setStyle('background-color', '#ff8');
			} else $('client_valor_pagamento').setStyle('background-color', '#fff');

			if($('client_req_factura').checked){

				//nome factura
				if(!Sr_Carlos._a.input_filled('client_fact_name', 3)){
					alert_text=alert_text+"Por favor preencha a entidade para a factura.\n\n";
					check=false;
					$('client_fact_name').setStyle('background-color', '#ff8');
				} else $('client_fact_name').setStyle('background-color', '#fff');

				//contribuinte
				if(!Sr_Carlos._a.input_filled('client_fact_cont', 8)){
					alert_text=alert_text+"Por favor preencha o contribuinte para a factura.\n\n";
					check=false;
					$('client_fact_cont').setStyle('background-color', '#ff8');
				} else $('client_fact_cont').setStyle('background-color', '#fff');

				//morada de facturação
				if(!Sr_Carlos._a.input_filled('client_fact_morada', 5)){
					alert_text=alert_text+"Por favor preencha a morada para a factura.\n\n";
					check=false;
					$('client_fact_morada').setStyle('background-color', '#ff8');
				} else $('client_fact_morada').setStyle('background-color', '#fff');
			}

			if(alert_text!="") alert(alert_text);
			
			if(check) {
				Sr_Carlos._a.confirm_submit_step2();
			} else {
				$('FC_submiting').setStyle('display', 'none');
				$('FC_steps').setStyle('display', 'block');
				$('FC').setStyle('display', 'block');
			}
			
			return false;
		},
		confirm_submit_step2:function(){

			window.location=Utilities._v.home_url+'carrinho.php#finalcheck';
			
			//"tranca" carrinho
			$$('.opcoes').each(function(obj, i){
				obj.set('html', '<div class="hidden">'+obj.get('html')+'</div>');
			});
			$$('.input_qt input').each(function(obj, i){
				obj.getParent().set('html', obj.value+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			});
			
			//"tranca formulário"
			//nome
			obj=$('client_name');
			var val=obj.value;
			obj.getParent().set('html', val+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_name').value=val;

			//telefone
			obj=$('client_tlf');
			var val=obj.value;
			obj.getParent().set('html', val+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_tlf').value=val;

			//email
			obj=$('client_email');
			var val=obj.value;
			obj.getParent().set('html', val+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_email').value=val;

			//morada
			obj=$('client_morada');
			var val=obj.value;
			obj.getParent().set('html', val+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_morada').value=val;

			//codigo postal
			obj=$('cod_1');
			var val=obj.value;
			var val2=$('cod_2').value;
			var val3=$('client_localidade').value;
			obj.getParent().set('html', val+'-'+val2+' '+val3+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('cod_1').value=val;
			$('cod_2').value=val2;
			$('client_localidade').value=val3;

			//data entrega
			obj=$('client_data_entrega');
			var val=obj.value;
			obj.getParent().set('html', val+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_data_entrega').value=val;

			//hora entrega
			obj=$('client_hora_entrega');
			var val=obj.selectedIndex;	//obj.options[val].get('html') n funca em IE7
			obj.getParent().set('html', obj.options[val].innerHTML+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_hora_entrega').selectedIndex=val;

			//valor de pagamento
			obj=$('client_valor_pagamento');
			var val=obj.value;
			obj.getParent().set('html', val+' &euro;<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_valor_pagamento').value=val;

			//notas
			obj=$('client_notas');
			var val=obj.value;
			obj.getParent().set('html', val+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_notas').value=val;

			//requer factura
			obj=$('client_req_factura');
			var val=obj.checked;
			obj.getParent().set('html', (val?'Sim':'N&atilde;o')+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_req_factura').checked=val;

			//Nome na factura
			obj=$('client_fact_name');
			var val=obj.value;
			obj.getParent().set('html', val+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_fact_name').value=val;

			//contribuinte
			obj=$('client_fact_cont');
			var val=obj.value;
			obj.getParent().set('html', val+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_fact_cont').value=val;

			//morada facturação
			obj=$('client_fact_morada');
			var val=obj.value;
			obj.getParent().set('html', val+'<div class="hidden">'+obj.getParent().get('html')+'</div>');
			$('client_fact_morada').value=val;
			
			//retira botão "alterar quantidades"
			$('aq_container').destroy();
			
			//muda acções dos botões
			$('FC_cancel').value="Editar Carrinho";
			if(typeof $('FC_cancel').onclick != 'undefined') $('FC_cancel').onclick=null;
			$('FC_cancel').removeEvents();
			$('FC_cancel').addEvent('click', function(){window.location=Utilities._v.home_url+'carrinho.php';window.reload();});
			$('FC_submit').value="Confirmar dados";
			if(typeof $('FC_form').onsubmit != 'undefined') $('FC_form').onsubmit=null;
			setTimeout(function(){
				//muda título
				Utilities._a.change_obj_content('carrinho_title', 'Confirme os dados da encomenda:');

				$('FC_submiting').setStyle('display', 'none');
				$('FC_steps').setStyle('display', 'block');
				$('FC').setStyle('display', 'block');
				$('FC_form').removeEvents();
				$('FC_form').addEvent('submit', function(){return Sr_Carlos._a.confirm_submit_final();});
				
			}, 1000);
			return false;
		},
		confirm_submit_final:function(){
			if(Utilities._v.cur_page!='carrinho') return false;

			$('FC_steps').setStyle('display', 'none');
			$('FC').setStyle('display', 'none');
			$('FC_submiting').setStyle('display', 'block');

			Utilities._a.update_from_json("ajaxed/carrinho/submit.php", {
				"client_name":$('client_name').value,
				"client_tlf":$('client_tlf').value,
				"client_email":$('client_email').value,
				"client_morada":$('client_morada').value,
				"client_cp_1":$('cod_1').value, 
				"client_cp_2":$('cod_2').value,
				"client_localidade":$('client_localidade').value,
				"client_data_entrega":$('client_data_entrega').value,
				"client_hora_entrega":$('client_hora_entrega').value,
				"client_valor_pagamento":$('client_valor_pagamento').value,
				"client_req_factura":$('client_req_factura').checked?1:0,
				"client_fact_name":$('client_fact_name').value,
				"client_fact_cont":$('client_fact_cont').value,
				"client_fact_morada":$('client_fact_morada').value
			});
			return false;
		}
	},
	_o:{
		"overlay":null,
		"closelink":null,
		"fx":{
			"overlay":null,
			"closelink":null
		}
	}
}
