
var exchanged=0;
var max_changes=0;
var current_items=0;
var max_items = 0;
var cont_disable_links=0;
var selected_display_field='';
var available_display_field='';
var resume_update_timeout = false;
var resume_update_control = null;
var submit_form_lock = false;
var row_highlight = false;

var user_profile_changes=false;
var addSuperPackTimer = false;
var flashesTimer = false;
var action_links = false;
var custom_elements = false;
var overflow_choice = "";
var loading_animation_timer= false;
var loading_animation_on=false;

function validarTecla(event) {
if (event.keyCode==8 ||(event.keyCode>=48 && event.keyCode<=57) ||(event.keyCode>=96 && event.keyCode<=105) ||(event.keyCode==9))
	return true;
else
	return false;
}


//Valida q halla tallobox en carritos/ver_carrito
function validar_talloboxs(){
	
	var ids = document.getElementById('talloboxs_id').value.split(',');

	for(i=0;i<ids.length;i++){
		var item = $('cart_detail').select('td.productoid_'+ids[i]);

		if(item!="")
		{
			document.getElementById('confirmar_pedido').href = '/pedidos/confirmar_pedido';
			return true;
		}
	}
	
	document.getElementById('confirmar_pedido').href = '#';
	var flash_message = "Debe incluir al menos un Tallobox, para comprar productos opcionales.";
	trigger_flash_error(flash_message,8000);
	
	return false;
}

function count_items(current_choice){

this.current_items = 0;

var counted_items = 0;
var current_elements = $$('select.itemq');
var choice = current_choice ? $(current_choice) : false;
var error = false;

current_elements.each(function(n) {
		
		var selectedq = n.options[n.selectedIndex].value;
		
		var q = parseInt(selectedq);				
		
		counted_items = counted_items + q;
		
		if(q >= 1){ 
		n.addClassName('filled');
		n.removeClassName('err');
		}else{ 
		n.removeClassName('filled');
		n.removeClassName('err');
		}
		

		
		} );


if( choice && max_items - counted_items >= 0 ){ 

choice.removeClassName('err'); 
var q = parseInt(choice.options[choice.selectedIndex].value);
if(q >= 1) choice.addClassName('filled'); 

current_items = counted_items;	

} else if(choice) { 

var q = parseInt(choice.options[choice.selectedIndex].value);

overflow_choice = choice.readAttribute('id')+";"+q ;

error = true;

choice.removeClassName('filled');
choice.selectedIndex=0; 

current_items = counted_items - q;	

}else{

current_items = counted_items;

}


var display_selected = $(selected_display_field);
var display_available = $(available_display_field );

if(display_available) display_available.innerHTML= ( max_items - current_items > 0 ? max_items - current_items : 0);
if(display_selected) display_selected.innerHTML= current_items;


if( error ){

action_links= new Array();


if( typeof tallobox_upgrades !== "undefined" &&  typeof tallobox_upgrades[tallobox_upgrades_offset] !== "undefined"){

var next_tallobox_link = new Object();
next_tallobox_link._href="#";
next_tallobox_link._onclick="upgrade_tallobox_size();";
next_tallobox_link._title="Cambiar tamaño";

action_links.push(next_tallobox_link);

}else{

var next_tallobox_link = new Object();
next_tallobox_link._href="#";
next_tallobox_link._onclick="submit_and_make_new();";
next_tallobox_link._title="Agregar Tallo Box";

action_links.push(next_tallobox_link);


}

var submit_link = new Object();
submit_link._href="#";
submit_link._onclick="submit_form('form_armado_aum');";
submit_link._title="Finalizar";

action_links.push(submit_link);


var flash_message = "";

if( typeof tallobox_upgrades !== "undefined" && typeof tallobox_upgrades[tallobox_upgrades_offset] !== "undefined" ){
	flash_message = "La cantidad de productos que desea seleccionar supera el limite permitido.;Si lo desea puede pasar al siguiente tamaño de Tallo Box o finalizar su compra";
}else{
	flash_message = "La cantidad de productos que desea seleccionar supera el limite permitido.";
	if(!allow_update_size) action_links= false;
}

trigger_flash_error(flash_message,8000);
 
 	}else{

//trigger_flash_error('');	 

	}
 

}


function loadswf(movie,movie_container,movie_width,movie_heigth,params){

if (swfobject.hasFlashPlayerVersion("7.0.0")) {
      var flash = function() {
        var att = { data:webroot+"swf/"+movie, width:movie_width, height:movie_heigth,wmode:"transparent"};
        var par = params? params : {  };
        var flashvars = {};
        var id = movie_container;
        //var myObject = swfobject.createSWF(att, par, id);
        
        swfobject.embedSWF(webroot+"swf/"+movie, id, movie_width, movie_heigth, "9.0.0", "", flashvars, par, att) ;
        
      };
      swfobject.addDomLoadEvent(flash);
	
	}
	
}// end loadswf

function load_header_movie(){
	loadswf("bn_top.swf","header_slider_placeholder","650","113");
}

function load_home_movies(){
	
	/*
	var params = {};
	var flashvars = {};
	var attributes = {wmode: "transparent"};
    swfobject.embedSWF("files/referidos300_270.swf", "banner_referidos", "300", "270", "9.0.0", params, flashvars, attributes);
	*/
	
	loadswf("bannerHome.swf","noticias","618","270",{flashVars:"url="+webroot+"feed/galeria/home"});
	$('noticias_default').hide();
/*	loadswf("bn_sistema.swf","tutorial","618","180");
	$('tutorial_default').hide();
*/}

function load_nosotros_movie(){
	loadswf("bn_sistema.swf","tutorial","620","180");
}

function load_banner_home(){
	loadswf("referidos300_270.swf","banner_referidos","300","270",{flashVars:"_link="+webroot+"referir"});
	$('banner_referidos_default').hide();
}
function load_banner_recurso(){
	
	loadswf("nota2.flv","banner_recurso","300","270",{flashVars:"_link="+webroot+"swf/nota2.flv"});
	$('banner_recursos_default').hide();
}
function openNota() 
	{
	var ancho = 490;
	var alto = 440;
	var splashWin2 = window.open(webroot+"app/webroot/swf/nota2.swf", "Nota", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=" + ancho + ",height=" + alto);
	splashWin2.resizeTo(Math.ceil(ancho),Math.ceil(alto));
	splashWin2.moveTo(Math.ceil(50),Math.ceil( 50 ));
	}

function reset_form(formid){

var form_element = $(formid);

if(form_element) form_element.reset();

var current_elements = $$('select.itemq');

current_elements.each(function(n) {

	n.removeClassName('filled');
		
} );

return false;

}


function submit_and_make_new(){

clearTimeout (flashesTimer);

flash_error('',0);

var overflow_choice_info = overflow_choice.split(';');
var cchoice= $(overflow_choice_info[0]);

if(cchoice){
cchoice.selectedIndex = max_items - current_items;
overflow_choice = overflow_choice_info[0]+";"+ (parseInt(overflow_choice_info[1]) - (max_items - current_items));
current_items = max_items;
cchoice.addClassName('filled');
}



var c_form = $('form_armado_aum');

var redirect_to_confirm = c_form.select('#redirect_to_confirm').first();
redirect_to_confirm.remove();

var _lastchoice= new Element('input', { type: 'hidden' , name : 'data[0][Item][last_choice]' , value : overflow_choice  });
var _offset_tamanio= new Element('input', { type: 'hidden' , name : 'data[0][Item][redirect_to]' , value : '/productos/tallobox/armelo_ud_mismo/chico'  });

c_form.appendChild(_lastchoice);
c_form.appendChild(_offset_tamanio);

submit_form('form_armado_aum');

}



function submit_form(formid){

var form_element = $(formid);

var result= form_element.readAttribute('onsubmit') ? eval(form_element.onsubmit()) : true;
												  
if(form_element && result) form_element.submit();

return false;

}


function check_count(){

action_links= false;

if( max_items !== current_items ) trigger_flash_error("Por favor, complete su Tallo Box",2000);

return max_items - current_items == 0 ? true : false;

}


function change_delivery_location(current_options,address_panel,delivery_panel){

var main_panel = $(delivery_panel);
var address_panel = $(address_panel);
var combo_box = $(current_options);
var address_display = address_panel ? address_panel.select('p.direccion_entrega').first() : false;
var phone_display = address_panel ? address_panel.select('.telefono').first() : false;
var area_display = address_panel ? address_panel.select('.localidad').first() : false;

var selected_option = combo_box ? combo_box.options[combo_box.selectedIndex].value : false;

var selected_option_attrs = selected_option.split(";");

if(address_display && selected_option_attrs[2]) address_display.innerHTML= selected_option_attrs[2] ;
if(phone_display && selected_option_attrs[3]) phone_display.innerHTML= selected_option_attrs[3] ;
if(area_display && selected_option_attrs[4]) area_display.innerHTML= selected_option_attrs[4] ;

$('dir_verificada').value=selected_option_attrs[5];

selected_zone= selected_option_attrs[1];

selected_option= selected_option.replace(/^([0-9]+);.*$/,'\1');

if(selected_option){


var tbodys = main_panel.select('tbody');

tbodys.each(function(n) {

var inputs = n.select('input');

if( n.readAttribute('id') !== "zona_"+selected_zone ){

//esto se usa para que al cambiar la direccion si hay un radio button seleccionado, lo saque.

n.addClassName('hidden'); 

	inputs.each(function(i) {
		//alert(n.readAttribute('id'));alert(i.type);alert(i.checked);
		if(i.type=='radio' && i.checked)
		{
			i.checked = false;
		}});

}else{

//inputs.each(function(n) { n.removeAttribute('disabled'); });

n.removeClassName('hidden');
//vani
var hoy = new Date();
if(hoy.getHours()+':'+hoy.getMinutes()>'19:30')
{
	inputs.each(function(i) {
		if(i.type=='radio')
		{
			
			// Obtener la fecha de mañana, sumandole un dia a la fecha actual
			var mañana = new Date();
			mañana.setTime(mañana.getTime()+1*24*60*60*1000);
			
			// Obtener la fecha que esta como opcion en el radiobutton (yyyy/mm/dd H:m/H:m)
			var fecha_hora=i.value.split(" ");
			var fecha=fecha_hora[0].split("-");
			var fecha_opcion = new Date(parseInt(fecha[0]),parseInt(fecha[1])-1,parseInt(fecha[2]));
			
			// Convertir ambas fechas a string para compararlas
			var strManana=mañana.getDate()+'-'+mañana.getMonth()+'-'+mañana.getFullYear();
			var strFechaOpcion=fecha_opcion.getDate()+'-'+fecha_opcion.getMonth()+'-'+fecha_opcion.getFullYear(); 
			
			if(strManana==strFechaOpcion && $('dir_verificada').value!='S')
			{
				i.writeAttribute('disabled','disabled');
				//alert("pongo disabled");
			}
			else
			{
				//alert("saco disabled");
				i.removeAttribute('disabled');
			}
		}
		
	});
}

}

	} );
	

}// 


}//change_delivery_location


function pop_producto(item_id){

var table = $('cart_detail');
var tr = table ? table.select('#'+item_id).first() : false ;

if(tr) tr.remove();

var cart_item_prices = table.select('.price');

if(cart_item_prices.length < 1 && empty_cart_redirect_url ){
	 window.location= empty_cart_redirect_url;
 }else{
	calculate_cart_info();
}

eneabled_links();
}// end pop_producto


function play_loading_animation(element_id,loop_count,max_loop){

if(!loading_animation_on) return;

if( loading_animation_timer ){
		clearTimeout (loading_animation_timer);
	}

var cart_animation_info = $(element_id);

if(cart_animation_info){

cart_animation_info.innerHTML =  loop_count < max_loop ? cart_animation_info.innerHTML +'.' : cart_animation_info.innerHTML.replace(/\./g,'') ;

}

loop_count = loop_count < max_loop ? loop_count+1 : 0  ;
	
loading_animation_timer= setTimeout("play_loading_animation('"+element_id+"',"+loop_count+","+max_loop+")",700);

}

function stop_loading_animation(){
	
loading_animation_on= false;

if( loading_animation_timer ){
		clearTimeout (loading_animation_timer);

	}

}

function disabled_links(){

	if(cont_disable_links==0)
	{	
		document.getElementById('vaciar_carrito').style.color = '#C0C0C0';
		document.getElementById('vaciar_carrito').style.cursor = 'default';
		document.getElementById('vaciar_carrito').onclick = function(){return false;};
	
		document.getElementById('seguir_comprando').style.color = '#C0C0C0';
		document.getElementById('seguir_comprando').style.cursor = 'default';
		document.getElementById('seguir_comprando').onclick = function(){return false;};
		
		document.getElementById('confirmar_pedido').style.color = '#C0C0C0';
		document.getElementById('confirmar_pedido').style.cursor = 'default';
		document.getElementById('confirmar_pedido').onclick = function(){return false;};
	}
	
	cont_disable_links++;
}

function eneabled_links(){

	cont_disable_links--;

	if(cont_disable_links==0)
	{
		/*
		document.getElementById('vaciar_carrito').style.removeProperty('color');
		document.getElementById('vaciar_carrito').style.removeProperty('cursor');
		document.getElementById('vaciar_carrito').onclick = '';
		
		document.getElementById('seguir_comprando').style.removeProperty('color');
		document.getElementById('seguir_comprando').style.removeProperty('cursor');
		document.getElementById('seguir_comprando').onclick = '';
		
		document.getElementById('confirmar_pedido').style.removeProperty('color');
		document.getElementById('confirmar_pedido').style.removeProperty('cursor');
		document.getElementById('confirmar_pedido').onclick = '';
		*/
		document.getElementById('vaciar_carrito').style.color = '';
		document.getElementById('vaciar_carrito').style.cursor = 'pointer';
		document.getElementById('vaciar_carrito').onclick = function(){return true;};
	
		document.getElementById('seguir_comprando').style.color = '';
		document.getElementById('seguir_comprando').style.cursor = 'pointer';
		document.getElementById('seguir_comprando').onclick = function(){return true;};
		
		document.getElementById('confirmar_pedido').style.color = '';
		document.getElementById('confirmar_pedido').style.cursor = 'pointer';
		document.getElementById('confirmar_pedido').onclick = function(){return validar_talloboxs();};			
	}
}



function display_loading_producto(){

var table = $('cart_detail');
var tbody = table ? table.select('tbody').first() : false ;

var tr = new Element('tr', { id: 'cart_animation'});
var th = new Element('th', { id: 'cart_animation_info', colspan: '5', style:'padding-bottom:8px;' }).update('Agregando producto');

loading_animation_on = true;
play_loading_animation('cart_animation_info',0,5);

tr.appendChild(th);
tbody.appendChild(tr);

}

function display_deleting_producto(id){

document.getElementById(id).innerHTML = 'Quitando producto...';
}


function display_producto(json){

stop_loading_animation();

var table = $('cart_detail');
var tbody = table ? table.select('tbody').first() : false ;


var remove_link = table ? table.select('.remove_link').first() : null ;
var remove_icon = remove_link ? remove_link.innerHTML : null ;
var remove_link = remove_link ? remove_link.readAttribute('href') : null ;

if(!tbody) return ; 


for(itemkey in json){
		
		var item_info= json[itemkey] ? json[itemkey] : null;
		
		if(item_info){

		var tr = false;
		
		var loading_tr = table ? table.select('#cart_animation').first() : null ;
		if(loading_tr){
		
		loading_tr.writeAttribute('id',itemkey);
		var children = loading_tr.descendants();
		children.each(function(n) {n.remove();});
		
		tr=loading_tr;
		}else{
		
		tr= new Element('tr', { id: itemkey })
		
		}
		
		tr.addClassName("categoria_"+item_info.categoria);
		
		var th = new Element('th').update(item_info.nombre);
		var tdt = new Element('td').update(item_info.tamanio);
		var tdq = new Element('td').update(item_info.cantidad);
		tdq.className = 'productoid_'+item_info.id; // agrego esto para poder sumar la cantidad total de producto en el pedido
		
		var q= parseInt(item_info.cantidad) ? parseInt(item_info.cantidad) : 1 ;
		
		var price = parseFloat(item_info.precio) ? parseFloat(item_info.precio)*q : 0;
		var price = ("$ "+price.toFixed(2));
		var tdp = new Element('td').update(price);
		tdp.className = 'price';
		
		var tda = new Element('td');
		
		
		var _remove_link_href = remove_link ? remove_link.replace(/[0-9]+$/, item_info.uid_b10+"/1/0" ): null ;
		
		if(_remove_link_href){
		
			var _span = new Element('span');
			_span.setAttribute('id', "quitar_"+item_info.uid_b10);
			tda.appendChild(_span);
			
			var _link = new Element('a', { href: _remove_link_href }).update(remove_icon);
			_link.onclick = function(){ return remove_from_cart(_remove_link_href, item_info.uid_b10, q); } ; 
			_span.appendChild(_link);
		}
				
		tr.appendChild(th);
		tr.appendChild(tdt);
		tr.appendChild(tdq);
		tr.appendChild(tdp);
		tr.appendChild(tda);
		
		//Actualizo cantidad mi carrito 	
		var cantidad = parseInt(document.getElementById('items_carrito').innerHTML);
		item_count = parseInt(q);	
		document.getElementById('items_carrito').innerHTML = parseInt(cantidad+item_count);  		
		
	// 	tbody.appendChild(tr);		
		
		}// if item_info
		
	}// end for itemkey
	
calculate_cart_info();

}// end display_producto


function calculate_cart_info(){

var table = $('cart_detail');
var tbody = table ? table.select('tbody').first() : false ;
var display_subtotal = table ? table.select('#cart_subtotal').first() : false ;
var display_total = table ? table.select('#cart_total').first() : false ;
var item_count = 0;

var cart_subtotal= 0 ;
var cart_total= 0;
var total_discount = 0;
var desc_rate =0 ;
var promo_discount_amount =0 ;

var cart_item_prices = table.select('.price');
var cart_discounts = table.select('.discount');

cart_discounts.each(function(n) {

	//ie8
	var _class= n.getAttribute('class');
	
	//ie7
	if(_class == null)
		_class= n.readAttribute('class');	

	var rate = '';
	var _classes = _class.split(/ /);
		
	for(var ix=0; ix < _classes.length ; ix++){ 
		if(_classes[ix].match('^[0-9]+$')){ rate+=_classes[ix]; break;}
	}
	
	rate = parseFloat(rate) ? parseFloat(rate) : 0 ; 
	desc_rate+=rate;	
}); 

var cart_promos = table.select('.promo');
cart_promos.each(function(n) {
	
	//ie8
	var _class= n.getAttribute('class');
	
	//ie7
	if(_class == null)
		_class= n.readAttribute('class');	
	
	
	var amount_container = n.select(".discount_display").first();

	var parsed_amount = amount_container && !isNaN(parseFloat(amount_container.innerHTML.replace(/\$|\(|\)/ig,''))) ? parseFloat(amount_container.innerHTML.replace(/\$|\(|\)/ig,'')) : 0;
	promo_discount_amount+=parsed_amount;
	
}); 

cart_item_prices.each(function(n) {
	
	var container = n.up("tr");
	var promo_discount_percent = 0 ;
	
	var cart_promos = table.select('.promo');
	var apply_to = "";
	var rate = 0;
	
	cart_promos.each(function(n) {

		//ie8
		var _class= n.getAttribute('class');
		
		//ie7
		if(_class == null)
			_class= n.readAttribute('class');		
		
		var _classes = _class.split(/ /);
			for(var ix=0; ix < _classes.length ; ix++){ 
				var q = _classes[ix];
				if(_classes[ix].match('^[0-9]+$')){ 
					rate+= _classes[ix]; 
					}
				if(_classes[ix].match('apply_to_[0-9]+')){ 
					apply_to = apply_to.match(/.+/) ? '|'+_classes[ix].split('apply_to_').join('') : _classes[ix].split('apply_to_').join('') ; 
					}
			}
		
		}); 
	
	rate = parseFloat(rate) ? parseFloat(rate) : 0 ; 
	apply_to = "categoria_"+apply_to.split('apply_to_').join('');
	
	var parsed = parseFloat(n.innerHTML.replace(/\$|\s|\t/,''));
	var item_price = parsed ? parsed : 0 ;	

	var container = n.up("tr");
	var t =  (100* item_price)  / (100 - desc_rate) ;	
	var promo_des =  container.hasClassName(apply_to)  ? (t*rate)/100 : 0  ;
				
	cart_subtotal+=  t - promo_des  ;
	cart_total+=  t - promo_des ;
});

cart_discounts.each(function(n) {
	
	//ie8
	var _class= n.getAttribute('class');
	
	//ie7
	if(_class == null)
		_class= n.readAttribute('class');	
	
	var rate = '';
	var _classes = _class.split(/ /);
	for(var ix=0; ix < _classes.length ; ix++){ 
		if(_classes[ix].match('[0-9]+')){ rate+=_classes[ix]; break;}
	}
	
	rate = parseFloat(rate) ? parseFloat(rate) : 0 ; 
	
	var discount_display = n.select('.discount_display').first();
	
	if(discount_display) discount_display.innerHTML = ("($ "+( (cart_total ) * rate /100  ).toFixed(2)+")") ;
	
	total_discount += ( ( cart_total  ) * rate /100  )  ;

}); 


var shipment = $('shipment');
var shipment_charge = 0 ;

if(shipment){
	shipment_charge = !isNaN(parseFloat(shipment.innerHTML)) ? parseFloat(shipment.innerHTML) : 0 ;
}

if(display_subtotal) display_subtotal.innerHTML = ("$ "+( cart_subtotal  ).toFixed(2)) ;
if(display_total) display_total.innerHTML = "<strong>"+ ("$ "+( (cart_total - total_discount - promo_discount_amount) + shipment_charge  ).toFixed(2)) +"</strong>"   ;	

item_count = parseInt(document.getElementById('items_carrito').innerHTML);

$('userbar_cart_detail').update('<b><span id="items_carrito">'+item_count+'</span> Productos /'+("$ "+( cart_total - total_discount  - promo_discount_amount ).toFixed(2))+'</b>');

}



function get_total_in_cart(producto) 
{
	// calcula la cantidad total de producto que hay en el carro
	var total_in_cart=0;
	var items = $('cart_detail').select('td.productoid_'+producto);

	items.each(function(n) {
			total_in_cart = total_in_cart + parseFloat(n.innerHTML);
		}
	);
	
	return total_in_cart;
}


function trigger_add_superpack(combo_options, producto, max_por_pedido){

	// agrego los parametros producto y max_por_pedido para poder limitar la cantidad maxima de producto
	// que se puede incluir en el pedido

	//confirmar.writeAttribute('disabled','disabled');

	
	if(combo_options && combo_options.options[combo_options.selectedIndex].value == "0") 
	{
		eneabled_links();
		return;
	}
	
	if(max_por_pedido>0)
	{
		var cant_en_carro = get_total_in_cart(producto);
		var cant_a_agregar = combo_options.options[combo_options.selectedIndex].value;
		var cant_posible = max_por_pedido-cant_en_carro;
		
		if(cant_posible==0) {
			flash_error('No puede agregar mas de este producto',2000);
			$('superpacks').reset();
			eneabled_links();
			return;
		}
		else if(cant_posible<cant_a_agregar) {
				flash_error('Sólo puede agregar '+cant_posible+' mas de este producto',2000);
				$('superpacks').reset();
				eneabled_links();
				return;
			}
	}

	add_superpack(combo_options);
	

}


function add_superpack(combo_options){

	var form_superpacks = $('superpacks');
	
	var _is_ajax_input= new Element('input', { type: 'hidden' , name : 'data[is_ajax]' , value : 'true'  });
	form_superpacks.appendChild(_is_ajax_input);	
	
	var super_pack_info = form_superpacks.serialize(true);
	
	var url= form_superpacks.readAttribute('action');
	
	display_loading_producto();
	
	combo_options.writeAttribute('disabled','disabled');	

	new Ajax.Request(url, { method:'post',
	  parameters: super_pack_info,
	  onSuccess: function(transport, json){
    	   	  form_superpacks.reset();
    	   	  flash_error('El Opcional ha sido agregado',2000);
    	   	  eneabled_links();	
    	   	  combo_options.removeAttribute('disabled');
    	   	  if(json) {display_producto(json);}   
	    }
	  });
	
}// end add_superpack


function remove_from_cart(url, id, q){

display_deleting_producto("quitar_"+id);
disabled_links();

new Ajax.Request(url, { method:'get',
	  onSuccess: function(transport, json){

				//Actualizo cantidad mi carrito 
				var cantidad = parseInt(document.getElementById('items_carrito').innerHTML);
				item_count = parseInt(q);
				document.getElementById('items_carrito').innerHTML = parseInt(cantidad-item_count) ;
					  	
	    	   	if(json){
					 pop_producto(json); 
				}else{
					 var data = eval(transport.responseText.replace(/<!--[^-]+-->$/,''));
					 pop_producto(data); 
				}

	    }
	  });

return false;

}


function upgrade_tallobox_size(){

clearTimeout (flashesTimer);

flash_error('',0);

var current_upgrade = tallobox_upgrades ? tallobox_upgrades[tallobox_upgrades_offset] : false ;
if(!current_upgrade) return ;

var producto_info =  current_upgrade['Producto'] ;
var tallobox_info =  current_upgrade['Tallosbox'] ;
var tamanio_info = current_upgrade['Tamanio'] ;

var pn = $("producto_nombre");
var pid=$("producto_id");
var prc=$("producto_precio");
var ptmn=$("producto_tamanio");
var ptmno=$("producto_tamanio_orden");
var ptmnid=$("producto_tamanio_id");
var pcc=$("producto_cantidad_cambios");

var display_nombre= $("detalle_titulo");
var display_tamanio= $("detalle_tamanio");
var display_nombre_tamanio= $("nombre_tamanio");
var display_precio= $("detalle_precio");
var display_total= $("detalle_total");


if(pn) pn.value= tallobox_info.nombre ? tallobox_info.nombre : '';
if(pid) pid.value= producto_info.id ? producto_info.id : -1 ;
if(prc) prc.value= producto_info.precio ? producto_info.precio : -1 ;
if(ptmn) ptmn.value= tamanio_info.nombre ? tamanio_info.nombre : -1 ;
if(ptmno) ptmno.value= tamanio_info.orden ? tamanio_info.orden : -1 ;
if(ptmnid) ptmnid.value= tamanio_info.id ? tamanio_info.id : -1  ;
if(pcc) pcc.value= tallobox_info.cantidad_cambios ? tallobox_info.cantidad_cambios : -1  ; 

if(display_nombre) display_nombre.innerHTML = 'Mi '+tallobox_info.nombre+" Actual" ;
if(display_nombre_tamanio) display_nombre_tamanio.innerHTML = tamanio_info.nombre  ;
if(display_tamanio) display_tamanio.innerHTML = producto_info.cantidad_productos_bases  ;
if(display_precio) display_precio.innerHTML = "$ "+(producto_info.precio - ( producto_info.precio * discount_percentage)/100 );
if(display_total) display_total.innerHTML = "$ "+(producto_info.precio  - ( producto_info.precio * discount_percentage)/100 );


var overflow_choice_info = overflow_choice.split(';');
var cchoice= $(overflow_choice_info[0]);

if(cchoice){
var sindex =  parseInt(overflow_choice_info[1]);
cchoice.selectedIndex = sindex;
cchoice.addClassName('filled');
}

max_items = producto_info.cantidad_productos_bases;
count_items(false);

tallobox_upgrades_offset++;

}



function toggle_datos_facturacion(control,box_id,body_class,head_class){

control.innerHTML = control.innerHTML=='ver detalles' ? 'ocultar detalles' : 'ver detalles';

var container = $(box_id);
var container_body = container ? container.select('.'+body_class).first() : false ;
var container_head = container ? container.select('.'+head_class).first() : false ;

if(container_head && container_head.hasClassName('hidden') )  container_head.removeClassName('hidden');  else container_head.addClassName('hidden');
if(container_body && container_body.hasClassName('hidden') )  container_body.removeClassName('hidden');  else container_body.addClassName('hidden');


return false;
}


function change_datos_facturacion(current_options,main_panel){

var main_panel = $(main_panel);
var main_panel_ihead = main_panel.select('.ihead').first();
var address_display = main_panel_ihead ? main_panel_ihead.select('p').first() : false ;
current_options = $(current_options);

var valor=current_options.value.split(';');

if(address_display){
address_display.innerHTML= valor[1];
}


$('direccion_fiscal').innerHTML= valor[1];
$('tipo_iva').innerHTML= valor[2];
$('cuit').innerHTML= valor[3];
$('direccion_postal').innerHTML= valor[4];
 
}//change_datos_facturacion



/*
$('').appear({ duration: 2.5 });

*/

function trigger_flash_error(errors,hide_timeout){

	if( flashesTimer ){
		clearTimeout (flashesTimer);
	}
	
	flashesTimer= setTimeout("flash_error('"+errors+"',"+hide_timeout+")",700);
	
}// end trigger_flash_error



function comentarios_receta(){

		var formulario = new Element('form', {action:webroot+'comentarios/agregar', method:'POST', id:'comenta', name:'comenta'});

		custom_elements = new Array(formulario);

		var baja3 = new Element('br',{});
		formulario.appendChild(baja3);

		var caja = new Element('textarea', {id:'data[Comentario][descripcion]', name:'data[Comentario][descripcion]'});
		caja.style.width= '400px';
		caja.style.height= '135px';
		formulario.appendChild(caja);

		var hidden1 = new Element('input', {type:'hidden', id:'data[Comentario][usuario_id]', name:'data[Comentario][usuario_id]', value:f_usuario});
		
		formulario.appendChild(hidden1);

		var hidden2 = new Element('input', {type:'hidden', id:'data[Comentario][fecha]', name:'data[Comentario][fecha]', value:f_date});
		formulario.appendChild(hidden2);
	
		var hidden3 = new Element('input', {type:'hidden', id:'data[Comentario][receta_id]', name:'data[Comentario][receta_id]', value:f_receta});
		formulario.appendChild(hidden3);
		
		var baja = new Element('br',{});
		formulario.appendChild(baja);

		var baja2 = new Element('br',{});
		formulario.appendChild(baja2);
		

		var link = new Element('a', { href:'#'}).update('<b>Agregar</b>');
		link.onclick = function(){ return submit_form('comenta'); } ; 
		formulario.appendChild(link);


flash_error('Comentario de '+f_nombre);

}



function show_referido(usuario_id){



}


function flash_error(errors,hide_timeout){

hide_timeout = hide_timeout !== null ? hide_timeout : -1 ;
current_action_links = action_links ? action_links : null;

var flash_panel =  $('inner_flash');

if(errors==''){

if(hide_timeout !==0){

hideAlertbox();

}else if(hide_timeout == 0){

hideAlertbox();

}

action_links = false;

return ;

}

if(flash_panel){

var children = flash_panel.descendants();

//if(children.lenght>0)
//{
	children.each(function(n) {	
		//if(n) 
		n.remove();
	});
//}



var errors = errors.split(/\;/);

// agregar la opcion de cerrar el alerta


var ctnt = document.createElement('div');
ctnt.className='ctnt';
var close_link_box= document.createElement('div');
close_link_box.className= "close_icon";


var close_box_link= document.createElement('a');
close_box_link.onclick= function(){ hideAlertbox(); }
close_box_link.setAttribute("href", "#");

$(close_box_link).update('<img src="'+webroot+'img/frontend/icon_x.gif" />');
close_link_box.insertBefore(close_box_link, close_link_box.firstChild);
ctnt.insertBefore(close_link_box, ctnt.firstChild);


var error_list = document.createElement('div');
ctnt.insertBefore(error_list, ctnt.nextSibling);

for(var i=0; i< errors.length; i++){

	if(errors[i].length >=1){

	var error_text = document.createTextNode(errors[i]) ; 
	
	var p = document.createElement('p');
	
	p.appendChild(error_text);
	
	error_list.appendChild(p);

	}

}// end for

if(custom_elements){

var elements = $A(custom_elements);
elements.each(function (element){

error_list.appendChild(element);

});

}


if(action_links){

var p = document.createElement('p');

 for(var i= 0 ; i< action_links.length ; i++ ){
	
	var _alink= action_links[i];
	
	var _href= _alink._href ? _alink._href : '#' ; 
	var _title= _alink._title ? _alink._title : '' ; 
	var _onclick= _alink._onclick ? _alink._onclick : '' ; 
	
	var _link= new Element('a', { href: '#',rel: _onclick , onclick : _onclick+' return false;' , title: _title , style:  'font-weight: bold ;'+( i == 0 ? 'margin-right: 22px' : '' ) }).update(_title);
 	_link.onclick=function(){ eval(this.rel); return false;}
	p.appendChild(_link);
	  		
 	
 	}
	
	error_list.appendChild(p);

}// add action links


if(errors.length >= 1){

flash_panel.appendChild(ctnt);

showAlertbox(); //Effect.Appear('inner_flash', { duration: 1.5 });

}else{

hideAlertbox(); //Effect.Fade('inner_flash');

}


if(hide_timeout >0) {

	if( flashesTimer ){
		clearTimeout (flashesTimer);
	}
	
	flashesTimer= setTimeout("flash_error('')",hide_timeout);

}// if hide_timeout


	}else{

//window.alert(errors.replace(/;/,'\r\n'));	
	
	}


}// end flash_error


function toggle_registro_residencia(option){



var option = $(option);
var panels = option.readAttribute("value").split(/\|/);

var toggle_panel_on = $(panels[0]);
var toggle_panel_off = $(panels[1]);

var inputs_to_off = toggle_panel_off ? toggle_panel_off.select('input') : new Array();
var select_to_off = toggle_panel_off ? toggle_panel_off.select('select') : new Array();
var textarea_to_off = toggle_panel_off ? toggle_panel_off.select('textarea') : new Array();
var select_to_off = toggle_panel_off ? toggle_panel_off.select('select') : new Array();

inputs_to_off.each(function(n) { n.writeAttribute('disabled','disabled') ; n.removeClassName('required') ; } );
select_to_off.each(function(n) { n.writeAttribute('disabled','disabled') ; n.removeClassName('required') ; } );
select_to_off.each(function(n) { n.writeAttribute('disabled','disabled') ; n.removeClassName('required') ;  } );
textarea_to_off.each(function(n) { n.writeAttribute('disabled','disabled') ;   } );

var inputs_to_on = toggle_panel_on ?  toggle_panel_on.select('input') : new Array();
var select_to_on = toggle_panel_on ? toggle_panel_on.select('select') : new Array() ;
var textarea_to_on = toggle_panel_on ? toggle_panel_on.select('textarea') : new Array() ;
var select_to_on = toggle_panel_on ? toggle_panel_on.select('select') : new Array() ; 

inputs_to_on.each(function(n) { n.removeAttribute('disabled') ; n.addClassName('required') ; } );
select_to_on.each(function(n) { n.removeAttribute('disabled') ;  n.addClassName('required') ; } );
textarea_to_on.each(function(n) { n.removeAttribute('disabled') ;  } );

if(toggle_panel_on) toggle_panel_on.show();
if(toggle_panel_off) toggle_panel_off.hide();

}




function show_horario(current_options,delivery_panel){

var main_panel = $(delivery_panel);
var combo_box = $(current_options);

var selected_zone = combo_box ? combo_box.options[combo_box.selectedIndex].value : false;

if(selected_zone){

var tbodys = main_panel.select('tbody');

tbodys.each(function(n) {

if( n.readAttribute('id') !== "zona_"+selected_zone ){ n.addClassName('hidden');  }else{ n.removeClassName('hidden'); }

	} );

}// if selected option

var current_map= $$(".mapa.selected").first();
var choiced_map = $("mapa_zona_"+selected_zone);

if(current_map){
	current_map.removeClassName("selected");
	Effect.Fade(current_map.id, { afterFinish: function(){
		if(choiced_map){
			choiced_map.addClassName("selected");
			Effect.Appear(choiced_map.id);
		}
	} });

}else{
	if(choiced_map){
			choiced_map.addClassName("selected");
			Effect.Appear(choiced_map.id);
		}
}


}//change_delivery_location


function toggle_horario_display(option,delivery_panel){

var main_panel = $(delivery_panel);
var option = $(option);
var panels = option.value.split(/\|/);
var toggle_panel_on = $(panels[0]);
var toggle_panel_off = $(panels[1]);

var combo = toggle_panel_on.select('select').first();
var selected_zone = combo ? combo.options[combo.selectedIndex].value : null;

if(selected_zone){

var tbodys = main_panel.select('tbody');

tbodys.each(function(n) {

if( n.readAttribute('id') !== "zona_"+selected_zone ){ n.addClassName('hidden');  }else{ n.removeClassName('hidden'); }

	} );

}

toggle_panel_on.show();
toggle_panel_off.hide();

horario_panel= toggle_panel_on == "country_choice" ? 'combo_cou' : 'combo_loc' ;
show_horario(horario_panel,'horarios_info');

}

function unfold_box(box_heading_id,container_class){

var box_heading = $(box_heading_id);
var current_box = box_heading.up('.box');
var container = box_heading.up('.'+container_class);
var mbody = false;

var unfolded_box = container.select('.unfolded').first();
var unfolded_box_heading= unfolded_box ? unfolded_box.select('h2').first() : false ;

if(unfolded_box && box_heading_id !== unfolded_box_heading.id ){
mbody=  unfolded_box.select('.sbody').first();

	if(mbody){
		var box_effect = Effect.Fade(mbody.id, { afterFinish: function(){unfold_box(box_heading_id,container_class)} });
	}
	
unfolded_box.removeClassName('unfolded');
unfolded_box.addClassName('folded');
return;
}

var box_folded= current_box.hasClassName('folded') ? true : false;
mbody = current_box.select('.sbody').first();

	if(box_folded && mbody){

		var box_effect = Effect.Appear(mbody.id);
		current_box.removeClassName('folded');
		current_box.addClassName('unfolded');
		
	
	}else if(mbody){
		
		var box_effect = Effect.Fade(mbody.id);
		current_box.removeClassName('unfolded');
		current_box.addClassName('folded');
				
	}


}// end display_superpack_box


function display_superpack_detail(superpack_link){

var superpack_detail = $('detalle_superpack');
var superpack_link = $(superpack_link);
var superpack = superpack_link.up('li');
var container = superpack_link.up('.superpacks');

var superpack_info = superpack ? superpack.select('.detail').first() : false;



if(superpack_info && superpack_detail){
	superpack_detail.update(superpack_info.innerHTML);
}else if(superpack_detail){
	superpack_detail.update('');
}

var position = superpack_link.positionedOffset();



var detail_position = position[1]+32+53 >= container.offsetHeight ? position[1]-64+'px' : position[1]+32+'px' ; 

superpack_detail.style.top= detail_position ;
superpack_detail.show();

}

function hide_superpack_detail(){

var superpack_detail = $('detalle_superpack');
superpack_detail.hide();

}


function display_tallobox(box_detail,container){

var container = $(container);
var detail = $$('.tallobox_'+box_detail).first();
var boxes = container ? container.select('.items') : false;

boxes.each(function(n){
	if(n.visible() && !n.hasClassName('tallobox_'+box_detail)) Effect.Fade(n.id, {duration:1, afterFinish: function(){display_tallobox(box_detail,container)} });
	return;
});

if(detail && !detail.visible()) Effect.Appear(detail.id,{duration:3});

return false;
}


function exchange_item(control,_action,destination_panel){


var main_panel = $('selected_items');
var add_panel = $('available_items');
var removed_panel = $('removed_items');

var d_panel = $(destination_panel);
var item = $(control).up('.item');
var item_panel = item.up('.items');

var classes = item.className.split(' ');
var selector= '.'+classes[0];



if(_action == 'add'){

		var new_item= new Element('div');
		new_item.className= item_panel.id.match(/selected_items|available_items/) ? item.className+' exchanged' : item.className ;

		var ibody= new Element('div');
		ibody.addClassName('ibody');
		
		var h4= new Element('h4');
		ibody.insert(h4,'bottom');
		
		var h4i= new Element('i');
		h4.appendChild(h4i);
		var h4small= new Element('small');
		h4.appendChild(h4small);
		var h4smallb= new Element('b');
		h4small.appendChild(h4smallb);
		
		var item_i = item.select('i').length >= 1 ? item.select('i').first().innerHTML : '' ;
		h4i.update(item_i+( item_panel.id.match(/selected_items|available_items/) ? ' <span class="flag" style="color:#990000">(Cambio)</span>' : '' ));
		
		var item_b = item.select('b').length >= 1 ? item.select('b').first().innerHTML : '' ;
		h4smallb.update(item_b);
		
		var img_add = new Image();
		img_add.src= webroot+'img/backend/add_icon.gif';
		
		var img_remove = new Image();
		img_remove.src= webroot+'img/backend/remove_icon.gif';
		
		var add_link= new Element('a');
		add_link.className = 'add';
		add_link.onclick = function(){ return exchange_item(this,'add','selected_items'); };
		add_link.href= "#";
		add_link.style.display= "none";
		add_link.appendChild(img_add);
		h4small.appendChild(add_link);
		
		var remove_link= new Element('a');
		remove_link.className = 'remove';
		remove_link.onclick = function(){ return exchange_item(this,'remove','removed_items'); };
		remove_link.href= "#";
		remove_link.style.display= "none";
		remove_link.appendChild(img_remove);
		h4small.appendChild(remove_link);
		
		var hiddens = item.select('[type=hidden]');
		
		var now = new Date();
		var minutes = now.getMinutes();
		var seconds = now.getSeconds();
		var new_hidden_index = minutes+''+seconds+''+(Math.floor(Math.random()*10));
		
		hiddens.each(function(hidden){
			
			hidden.name = hidden.name.replace(/SubItemsEliminados/,'SubItems');
			var new_name = hidden.name.replace(/\[([0-9]+)\]\[SubItem\]/,'['+new_hidden_index+'][SubItem]');
			var new_hidden = new Element('input',{type:'hidden',name:new_name,value:hidden.value});
			
			if(hidden.title) new_hidden.title= hidden.title;
			
			if(new_hidden.title =='modificado' && item_panel.id.match(/selected_items|available_items/) ) new_hidden.value='1'; 
			if(new_hidden.title =='subitemq' ) new_hidden.value='1'; 

			ibody.insert(new_hidden,'bottom');
		
		});	
			
		new_item.insert(ibody,'bottom');
		
		d_panel.appendChild(new_item);
		
		new_item.select('a').each(function(n){ n.show(); });
		
		if(removed_panel.select(selector).size()>=1){ removed_panel.select(selector).first().remove(); }
		if(removed_panel.descendants().size() < 1) removed_panel.up('.box').hide();

	}else{
		
		var citem = main_panel.select(selector).first();
		var modificado =  item ? item.select('[title=modificado]').first() : null ;
		modificado.value = '0';
		
		hiddens = item.select('[type=hidden]');
		hiddens.each(function(hidden){ 
			
		hidden.name = hidden.name.replace(/SubItems/,'SubItemsEliminados');
			
			});
			
		item.removeClassName('exchanged');
		var flag = item.select('.flag').first();
		if(flag) flag.remove();
			
		item.select('a.remove').first().hide();	

		/*  si el item no era de intercambio, lo mando al panel de eliminados para que pueda volver a entrar,
			caso contrario, puede volver a entrar desde el panel selccionados o disponibles, 
			no hace falta mandarlo al panel de eliminados.
			(evito ponerlo en el panel de eliminados porque se generan errores en los intercambios)
		*/	
		if(!flag) d_panel.appendChild(item); 
		else item.remove();

		
		if(removed_panel.descendants().size() >=1) removed_panel.up('.box').show();
	
}// if add



var exchanged = main_panel.select('.exchanged')
exchanged= exchanged.size() ;

var sitems = main_panel.select('.item');
var selected_count = sitems.size() ; ;

current_items = selected_count;

var aitems= add_panel.select('.item');
var ritems= removed_panel.select('.item');

if( ( exchanged >= max_changes ) || ( selected_count >= max_items ) ){	
	sitems.each(function(n){
		try{
			n.select('a.add').first().hide();
			if(exchanged >= 2 && !n.hasClassName('exchanged')) n.select('a.remove').first().hide();
			else n.select('a.remove').first().show(); // agrego esto
			}catch(e){}
	});
	aitems.each(function(n){
		n.select('a.add').first().hide();
	});
	ritems.each(function(n){
		if( selected_count >= max_items ) n.select('a.add').first().hide();
	});
}else{
	sitems.each(function(n){
		n.select('a.remove').first().show();		
		if( selected_count+1 <= max_items) n.select('a.add').first().show();
	});
	ritems.each(function(n){
		if( selected_count+1 <= max_items ) n.select('a.add').first().show();
		else n.select('a.add').first().hide();
	});
	aitems.each(function(n){
		if( selected_count+1 <= max_items) n.select('a.add').first().show();
	});
}


$('count_productos_seleccionados').update(selected_count);
$('count_cambios_disponibles').update(exchanged);

return false;

}


function toggle_dde_detail(control){

var control_link = $(control);
var container = control_link ? control_link.up('tr') : null;

if(container){
	var resume = container ? container.select('.resume').first() : null;
	var registro_residencia = container ? container.select('.box.registro_residencia').first() : null;
	var disabled_items = container.select('*:disabled');
	disabled_items.each(function(n){ n.removeAttribute('disabled'); })	
	if(resume) resume.hide();
	if(registro_residencia) registro_residencia.show();
}

return true;
}// end toggle_dde_detail


function activate_dde_detail(combo){

var combo = $(combo);
var container = combo ? combo.up('.alter_dir_container') : null;

	if(container && combo.options[combo.selectedIndex].value !== '-1' ){
		var inputs = container.select('input:enabled[class!=optional]');
		inputs.each(function(n){ n.addClassName('required');});
			
		var combos = container.select('select:enabled[class!=optional]');
		combos.each(function(n){ n.addClassName('required');});
		
		var textareas = container.select('textarea:enabled[class!=optional]');
		textareas.each(function(n){ n.addClassName('required');});
	}else{
		var required_elements = container.select('.required:enabled');
		required_elements.each(function(n){ n.removeClassName('required');});
		var err_elements = container.select('.err:enabled');
		err_elements.each(function(n){ n.removeClassName('err');});
	}

}// end activate_dde_detail


function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
	do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
	
	}
return [curleft,curtop];
}


function pause(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}




function remove_dde(control,container_name,id,url){

var confirm_deletion= window.confirm(control.title);

if(!confirm_deletion) return true;

if(!check_dde_ddf_count(container_name)){
return false;
}

new Ajax.Request(url, { method:'get',
	  onSuccess: function(transport, json){

   	   	  if(json){ 
   	   	  			var result = json;
    	   	  	 	if(result && result.status){
					setTimeout('flash_error(\'Se asentaron sus cambios\',-1)',500); 
					if(result.DireccionesEntrega){ 
						pop_dde(container_name,json.DireccionesEntrega.id); 
						}else if(result.DireccionesFacturacion){
						pop_dde(container_name,json.DireccionesFacturacion.id); 
					}// if direccion entrega or direccion facturacion
				}else{
					setTimeout('flash_error(\'Error al asentar sus cambios\',-1)',500);
				}// if result status
			}// end if json	
	    }
	  });



return true;
}


function pop_dde(container_name,id){

var prefix = 'dde_' ; 

var tbody = $(prefix+id);

tbody.remove();

return false;

}// end pop dde




function remove_ddf(control,container_name,id,url){

var confirm_deletion= window.confirm(control.title);

if(!confirm_deletion) return true;

if(!check_dde_ddf_count(container_name)){
return false;
}

new Ajax.Request(url, { method:'get',
	  onSuccess: function(transport, json){

   	   	  if(json){ 
   	   	  			var result = json;
    	   	  	 	if(result && result.status){
					setTimeout('flash_error(\'Se asentaron sus cambios\',-1)',500); 
					if(result.DireccionesFacturacion){ 
						pop_ddf(container_name,json.DireccionesFacturacion.id); 
						}else if(result.DireccionesFacturacion){
						pop_ddf(container_name,json.DireccionesFacturacion.id); 
					}// if direccion entrega or direccion facturacion
				}else{
					setTimeout('flash_error(\'Error al asentar sus cambios\',-1)',500);
				}// if result status
			}// end if json	
	    }
	  });



return true;
}


function pop_ddf(container_name,id){

var prefix = 'ddf_' ; 

var tbody = $(prefix+id);

tbody.remove();

return false;

}// end pop dde




function check_dde_ddf_count(container){

var count = $(container).select('.resume').length;

if( count < 2 ){

trigger_flash_error('No puede eliminar todas las direcciones',2000);
return false;
}

return true;
} 



function toggle_forma_pago(control){

var main_panel = $(control).up('.box.forma_pago');

if(control.hasClassName('id_tarjeta')){
		var fps= main_panel.select('.fp');
		fps.each(function(n){n.checked=false;});
		
		var fptc= $("fp_4");
		if(fptc) fptc.checked=true;
	}else{
		var tcs= main_panel.select('.id_tarjeta');
		tcs.each(function(n){n.checked=false;});
		var fptc= $("fp_4");
		if(fptc) fptc.checked=false;
	}

}// toggle_forma_pago

function update_delivery(_target,cart_total_target){


var delivery = $(_target).innerHTML.strip().replace(/\$|\&nbsp;/g,'');
var last_delivery_value = parseFloat(delivery);
var cart_total = $(cart_total_target);
var cart_total_value = parseFloat(cart_total.innerHTML.strip().replace(/\$|\&nbsp;/g,''));

var dde_options = $('dde_combo_options');
var shipment_value = dde_options.options[dde_options.selectedIndex].title.split('Cargo entrega: $ ').join('');
var delivery_value = parseFloat(shipment_value);
$(_target).update("&nbsp;$ "+delivery_value.toFixed(2));
$(cart_total_target).update("&nbsp;$ "+((cart_total_value-last_delivery_value)+delivery_value).toFixed(2));

}


function show_referidos_popup(){
	
	BrowserDetect.init();
	

	
	var flashes= $$('.flash_placeholder');
	var flashes_backgrounds = $$('.flash_default_background');
	var referido_popup = $('referido_popup');
	
	
	var referido_popup_width = referido_popup.offsetWidth  > 0 ? referido_popup.offsetWidth : 550; 
	var referido_popup_height = referido_popup.offsetHeight  > 0 ? referido_popup.offsetHeight : 227; 
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - referido_popup_height) / 2);
	var lightboxLeft = ((arrayPageSize[0] - 20 - referido_popup_width) / 2);
		
	referido_popup.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px";
	referido_popup.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";
	

	
	if(referido_popup){
		if(BrowserDetect.browser.match(/Explorer|Opera/)){
			flashes.each(function(n){n.hide();});
			flashes_backgrounds.each(function(n){n.show();});
		}
		Effect.Appear('referido_popup', { duration: 1  });
	}
	
}


function hide_referidos_popup(){

	var flashes= $$('.flash_placeholder');
	var flashes_backgrounds = $$('.flash_default_background');
	
	var _after_finish = function(){
		if(BrowserDetect.browser.match(/Explorer|Opera/)){
			flashes.each(function(n){n.show();});
			flashes_backgrounds.each(function(n){n.hide();});
		}
	}
	
	var objOverlay = $('_overlay');
	objOverlay.onclick= function(){ hideAlertbox(); return false; }
	objOverlay.hide();
	
	Effect.Fade('referido_popup', { afterFinish: _after_finish });
	
	return true;
}



function submit_new_alter_dir(container){

	var main_container = $(container);
	
	if(!check_fields(main_container)) return;
	
	
	if(main_container){
		
		var data = new Object();
		
		var inputs = main_container.select("input:enabled");
		var selects = main_container.select("select:enabled");
		var textareas = main_container.select("textarea:enabled");
		
		var serialize_f = function(element){
			data[element.name] = element.value;
		}
		
		inputs.each(serialize_f);
		selects.each(serialize_f);
		textareas.each(serialize_f);
				
		
		var info = $H(data).toQueryString();
		
		new Ajax.Request(webroot+"cliente/agregar_direccion_entrega", { method:'post',
	  	parameters: info,
		  onSuccess: function(transport,json){
    				
				if(json && json.status){
					
					var direccion_detail = json.DireccionesEntrega;
					var horarios = $H(json.Horarios);
					
					var is_country =  direccion_detail.DireccionesEntrega.codigoCOU_DDE >0 ? true : false;
					var telefono_option = (direccion_detail.DireccionesEntrega.telefono ?  direccion_detail.DireccionesEntrega.telefono : '')+( direccion_detail.DireccionesEntrega.telefono_alternativo  ?  '/'+direccion_detail.DireccionesEntrega.telefono_alternativo : '')	;
					var zona = direccion_detail.Localidad.ZonasEntrega.id ;
					var localidad_option = ( direccion_detail.Localidad.nombre  ? direccion_detail.Localidad.nombre : '' );
					
					var dir = "";
					
					if(!is_country){
				 	dir= ( direccion_detail.DireccionesEntrega.calle ?  direccion_detail.DireccionesEntrega.calle : '')+' '+( direccion_detail.DireccionesEntrega.altura ?  direccion_detail.DireccionesEntrega.altura : ''  )+' '+( direccion_detail.DireccionesEntrega.piso  && direccion_detail.DireccionesEntrega.piso !== '0' ?  direccion_detail.DireccionesEntrega.piso : '' )+' '+( direccion_detail.DireccionesEntrega.departamento ?  direccion_detail.DireccionesEntrega.departamento : '' );	
						}else{
						
				 	dir += ( direccion_detail.DireccionesEntrega.calle ?  direccion_detail.DireccionesEntrega.calle : ''  )+' '+ ( direccion_detail.DireccionesEntrega.lote ?  "L "+direccion_detail.DireccionesEntrega.lote : ''  )+' '+ ( direccion_detail.DireccionesEntrega.sector ?  "S "+ direccion_detail.DireccionesEntrega.sector : '' )+' '+ ( direccion_detail.DireccionesEntrega.casa ?  "C "+direccion_detail.DireccionesEntrega.casa : '') ;
					
						} 					

						
						
					var option = new Element('option',{value:direccion_detail.DireccionesEntrega.id+';'+zona+';'+dir+';'+telefono_option+';'+localidad_option, title:"Cargo entrega: $ 8"});
					option.update(dir);
					var dde_combo_options = $('dde_combo_options');
					dde_combo_options.appendChild(option);
					dde_combo_options.selectedIndex= dde_combo_options.options.length-1;
					
					var deliver_panel = $('choice_delivery_day');
					
					if(deliver_panel){
				
					var j=0;
					horarios.each(function(pair){
		
					
						var zona_id = pair.key;
						var zona_horarios = $H(pair.value);		
						
									var horarios_tbody = new Element('tbody',{id:"zona_"+zona_id});
									if(j==0) horarios_tbody.addClassName('hidden');
																											
									deliver_panel.select('tbody').each(function(tbody)
									{
										tbody.addClassName("hidden");
										
										if(tbody.id=="zona_"+zona)
											tbody.remove();										
									});
									
									horarios_tbody.removeClassName("hidden");
									
									deliver_panel.appendChild(horarios_tbody);
																										
									var i=0;
									zona_horarios.each(function(pairh){ 
										 
										var horario_info = pairh.value;
																			 
										var preferido = horario_info.preferido;
										var horario = horario_info.hora;
										var dia = horario_info.dia;
										var movil = horario_info.movil;
										var cargo_entrega = horario_info.cargo_entrega;
										
										/*alert("zona_id: "+zona_id+" zona: "+zona);	
										alert("movil: "+movil.id);
										alert("cargo: "+parseInt(cargo_entrega));*/
										if(zona_id==zona) dde_combo_options.options[dde_combo_options.selectedIndex].title="Cargo entrega: $ "+parseInt(cargo_entrega);
										
										var tr = new Element('tr'); 
										if(i==0) tr.addClassName("first");
										horarios_tbody.appendChild(tr);
										
										var td = new Element('th');										
										td.update( horario.desde+'hs a '+ horario.hasta+'hs');
										tr.appendChild(td);

										var k=1;
										dias.each(function(col_dia){
										 
										var col_dia =  col_dia.Dia; 
																			
										//_title =  col_dia.title;
										_title = "entre las " + horario.desde+" y "+horario.hasta+"hs.";
										
										var tdq = new Element('td',{align:"center"});
										tdq.update("");
										tr.appendChild(tdq);	  
																		
										if(col_dia.id == dia.id && feriados.indexOf(col_dia.cur_day_time_md) == -1){
																						
											var input_radio = new Element('input',{type:"radio",name:"data[Pedido][fecha_entrega]",title:_title,value:col_dia.cur_day_time_ymd+' '+horario.desde+"/"+horario.hasta+' '+zona_id});
											input_radio.onclick = function(){
												update_delivery('recargo_envio','cart_total')
											};
											
											// deshabilitar la opcion de entrega al dia siguiente 
											// cuando no es un cliente viejo y son mas de las 19:30hs.
											if(k==1 && $('cliente_viejo').value==0 && $('hora_actual').value>='19:30')
												input_radio.disabled="disabled";
											
											tdq.appendChild(input_radio);
												
											var input_h1 = new Element('input',{type:"hidden",name:"data[Pedido][movil_dia_"+col_dia.cur_day_time_ymd+"_"+horario.desde+"/"+horario.hasta+"_"+zona_id+"]",value:movil.id });
											var input_h2 = new Element('input',{type:"hidden",name:"data[Pedido][cargo_entrega_"+col_dia.cur_day_time_ymd+"_"+horario.desde+"/"+horario.hasta+"_"+zona_id+"]",value:cargo_entrega,title:"cargo_entrega_"+col_dia.cur_day_time_ymd});
											input_h2.addClassName("delivery");
											
											tdq.appendChild(input_h1);
											tdq.appendChild(input_h2);
											
											//alert(col_dia.cur_day_time_ymd);
												
											}else{
												tdq.update('&nbsp;');
											}
											
																					
										k++;
										});
									
										i++;
										});
									j++; 									
									});
									
									
									}// end if delivery panel

									flash_error('',0);

									
									dde_combo_options.selectedIndex = dde_combo_options.options.length-1;	
									change_delivery_location(dde_combo_options,'direccion_entrega_body','choice_delivery_day');
									
									
						}// end if json
					
		    }// end function
	    
	  	});
		
		
	}
		
		return true;

}


function popup_add_alter_dir(){
	
	var super_container = new Element('div');
	super_container.addClassName("alter_dir_container");
	super_container.id = "custom_alter_dir";
	
	var main_container = new Element('div');
	super_container.appendChild(main_container);
	
	var p = new Element('p');
	main_container.appendChild(p);
	
	
	var span_first = new Element("span");
	span_first.addClassName("first");
	p.appendChild(span_first);
	
	var span_second = new Element("span");
	p.appendChild(span_second);
	
	var input_country = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][tipo]",type:"radio"});
	input_country.id="option_country";
	input_country.value="country|capital_gba";
	input_country.addClassName("radio");
	input_country.onclick= function(){ toggle_registro_residencia("option_country") };
	span_first.appendChild(input_country);
	span_first.appendChild(document.createTextNode("Country / Barrio Privado"));
	
	var input_gba = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][tipo]",type:"radio", checked:"checked"});
	input_gba.id="option_gba";
	input_gba.value="capital_gba|country";
	input_gba.addClassName("radio");
	input_gba.onclick= function(){ toggle_registro_residencia("option_gba") };
	span_second.appendChild(input_gba);
	span_second.appendChild(document.createTextNode("Residencia Particular (Capital Federal y GBA)"));
	
	var div_reg_res_cou = new Element('div');
	div_reg_res_cou.id= "country";
	div_reg_res_cou.addClassName("box registro_residencia");
	div_reg_res_cou.hide();
	main_container.appendChild(div_reg_res_cou);
	
	var rgrc_sub = new Element('div');
	div_reg_res_cou.appendChild(rgrc_sub);	
	
	var rgrc_col1 = new Element('div');
	rgrc_col1.addClassName("col1");
	rgrc_sub.appendChild(rgrc_col1);	
	
	var cou_id = new Element("input",{value:"-1",name:"data[Direcciones][-1][DireccionesEntrega][id]",type:"hidden"});
	rgrc_col1.appendChild(cou_id);
	
	var cous_options = new Element("select",{name:"data[Direcciones][-1][DireccionesEntrega][localidad_id]",disabled:"disabled"});
	cous_options.onchange = function(){activate_dde_detail(this)};
	cous_options.addClassName("choice required");
	rgrc_col1.appendChild(cous_options);
	
	var def_option_cous = new Element("option",{value:""});
	def_option_cous.update('Seleccione una opción');
	cous_options.appendChild(def_option_cous);
		
	countries.each(function(country){
		var option_cous = new Element("option",{value:country.Localidad.id+"|"+country.Country.id});
		option_cous.update(country.Country.nombre);
		cous_options.appendChild(option_cous);
	
	});
		
	var rgrc_col2 = new Element('div');
	rgrc_col2.addClassName("col2");
	rgrc_sub.appendChild(rgrc_col2);
	
	var cou_col2_p = new Element('p');
	rgrc_col2.appendChild(cou_col2_p);
	var cou_col2_p1 = new Element('p');
	rgrc_col2.appendChild(cou_col2_p1);
	var cou_col2_p2 = new Element('p');
	rgrc_col2.appendChild(cou_col2_p2);
	var cou_col2_p3 = new Element('p');
	rgrc_col2.appendChild(cou_col2_p3);	
	
	var col2_span1 = new Element('span');
	col2_span1.addClassName("field");
	col2_span1.appendChild(document.createTextNode('Lote '));	
	var lote_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][lote]",type:"text",disabled:"disabled"});
	lote_input.addClassName("text required");
	col2_span1.appendChild(lote_input);	
		
	var col2_span2 = new Element('span');
	col2_span2.addClassName("field");
	col2_span2.appendChild(document.createTextNode('Sector '));	
	var sector_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][sector]",type:"text",disabled:"disabled"});
	sector_input.addClassName("text required");
	col2_span2.appendChild(sector_input);	
	
	var col2_span3 = new Element('span');
	col2_span3.addClassName("field");
	col2_span3.appendChild(document.createTextNode('Casa '));
	var casa_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][casa]",type:"text",disabled:"disabled"});
	casa_input.addClassName("text required");
	col2_span3.appendChild(casa_input);	
	
	cou_col2_p.appendChild(col2_span1);	
	cou_col2_p.appendChild(col2_span2);	
	cou_col2_p.appendChild(col2_span3);	
	
	
	var tel_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][telefono]",type:"text",disabled:"disabled"});
	tel_input.addClassName("text telefono first required");
	cou_col2_p2.appendChild(document.createTextNode('Teléfono '));	
	cou_col2_p2.appendChild(tel_input);	
	
	var alter_tel_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][telefono_alternativo]",type:"text",disabled:"disabled"});
	alter_tel_input.addClassName("text telefono optional");
	cou_col2_p3.appendChild(document.createTextNode('Teléfono Alternativo '));	
	cou_col2_p3.appendChild(alter_tel_input);
	
	var rgrc_comments = new Element('div');
	rgrc_comments.addClassName("comments");
	div_reg_res_cou.appendChild(rgrc_comments);
	
	var title_comments = new Element('div');
	title_comments.addClassName("col1");
	title_comments.appendChild(document.createTextNode('Observaciones adicionales para la dirección '));	
	rgrc_comments.appendChild(title_comments);
	
	var col_comments = new Element('div');
	col_comments.addClassName("col2");
	rgrc_comments.appendChild(col_comments);
	
	
	var comments_input = new Element("textarea",{name:"data[Direcciones][-1][DireccionesEntrega][observaciones]",disabled:"disabled"});
	comments_input.addClassName("text optional");
	col_comments.appendChild(comments_input);	
	
	
	
	
	var div_reg_res_gba = new Element('div');
	div_reg_res_gba.id= "capital_gba";
	div_reg_res_gba.addClassName("box registro_rcapital_gba");
	main_container.appendChild(div_reg_res_gba);
	
	var rggba_sub = new Element('div');
	div_reg_res_gba.appendChild(rggba_sub);	
	
	var rgrgba_col1 = new Element('div');
	rgrgba_col1.addClassName("col1");
	rggba_sub.appendChild(rgrgba_col1);	
	
	var gba_id = new Element("input",{value:"-1",name:"data[Direcciones][-1][DireccionesEntrega][id]",type:"hidden"});
	rgrgba_col1.appendChild(gba_id);
	
	var gba_options = new Element("select",{name:"data[Direcciones][-1][DireccionesEntrega][localidad_id]"});
	gba_options.onchange = function(){activate_dde_detail(this)};
	gba_options.addClassName("choice required");
	rgrgba_col1.appendChild(gba_options);
	
	localidades.each(function(localidad){
		var option_loc = new Element("option",{value:localidad.Localidad.id});
		option_loc.update(localidad.Localidad.nombre);
		gba_options.appendChild(option_loc);
	
	});
		
	var rgrgba_col2 = new Element('div');
	rgrgba_col2.addClassName("col2");
	rggba_sub.appendChild(rgrgba_col2);
	
	var gba_col2_p = new Element('p');
	rgrgba_col2.appendChild(gba_col2_p);
	var gba_col2_p1 = new Element('p');
	rgrgba_col2.appendChild(gba_col2_p1);
	var gba_col2_p2 = new Element('p');
	rgrgba_col2.appendChild(gba_col2_p2);
	var gba_col2_p3 = new Element('p');
	rgrgba_col2.appendChild(gba_col2_p3);
	var gba_col2_p4 = new Element('p');
	rgrgba_col2.appendChild(gba_col2_p4);	
	var gba_col2_p5 = new Element('p');
	rgrgba_col2.appendChild(gba_col2_p5);		
	
	
	var col2_span1 = new Element('span');
	col2_span1.addClassName("field calle");
	col2_span1.appendChild(document.createTextNode('Calle '));	
	var calle_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][calle]",type:"text"});
	calle_input.addClassName("text required");
	col2_span1.appendChild(calle_input);	
		
	var col2_span2 = new Element('span');
	col2_span2.addClassName("field");
	col2_span2.appendChild(document.createTextNode('Numero '));	
	var altura_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][altura]",type:"text"});
	altura_input.addClassName("text required");
	col2_span2.appendChild(altura_input);	
	
	
	var col2_span2a = new Element('span');
	col2_span2a.addClassName("field");
	col2_span2a.appendChild(document.createTextNode('Piso '));	
	var piso_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][piso]",type:"text"});
	piso_input.addClassName("text optional");
	col2_span2a.appendChild(piso_input);
	
	var col2_span2b = new Element('span');
	col2_span2b.addClassName("field");
	col2_span2b.appendChild(document.createTextNode('Depto '));	
	var dpto_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][departamento]",type:"text"});
	dpto_input.addClassName("text optional depto");
	col2_span2b.appendChild(dpto_input);
	
	
	var col2_span3 = new Element('span');
	col2_span3.addClassName("field entre_calles");
	col2_span3.appendChild(document.createTextNode('Entre '));
	var calle_entre_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][calle_entre_uno]",type:"text"});
	calle_entre_input.addClassName("text required");
	col2_span3.appendChild(calle_entre_input);	
	col2_span3.appendChild(document.createTextNode(' y '));
	var calle_entre2_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][calle_entre_dos]",type:"text"});
	calle_entre2_input.addClassName("text required");
	col2_span3.appendChild(calle_entre2_input);	

	gba_col2_p.appendChild(col2_span1);	
	gba_col2_p1.appendChild(col2_span2);
	gba_col2_p1.appendChild(col2_span2a);
	gba_col2_p1.appendChild(col2_span2b);
	gba_col2_p2.appendChild(col2_span3);	

	
	var gba_tel_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][telefono]",type:"text"});
	gba_tel_input.addClassName("text telefono first required");
	gba_col2_p4.appendChild(document.createTextNode('Teléfono '));	
	gba_col2_p4.appendChild(gba_tel_input);	
	
	var gba_alter_tel_input = new Element("input",{name:"data[Direcciones][-1][DireccionesEntrega][telefono_alternativo]",type:"text"});
	gba_alter_tel_input.addClassName("text telefono optional");
	gba_col2_p5.appendChild(document.createTextNode('Teléfono Alternativo '));	
	gba_col2_p5.appendChild(gba_alter_tel_input);
	
	
	var rgrgba_comments = new Element('div');
	rgrgba_comments.addClassName("comments");
	div_reg_res_gba.appendChild(rgrgba_comments);
	
	var gba_title_comments = new Element('div');
	gba_title_comments.addClassName("col1");
	gba_title_comments.appendChild(document.createTextNode('Observaciones adicionales para la dirección '));	
	rgrgba_comments.appendChild(gba_title_comments);
	
	var gba_col_comments = new Element('div');
	gba_col_comments.addClassName("col2");
	rgrgba_comments.appendChild(gba_col_comments);
	
	
	var gba_comments_input = new Element("textarea",{name:"data[Direcciones][-1][DireccionesEntrega][observaciones]"});
	gba_comments_input.addClassName("text optional");
	gba_col_comments.appendChild(gba_comments_input);	
	
	
	var p_submit_link = new Element('p');
	var submit_link = new Element('a');
	submit_link.href="#";
	submit_link.update("Guardar");
	submit_link.onclick= function(){ submit_new_alter_dir("custom_alter_dir");  return false;};
	div_reg_res_cou.appendChild(submit_link);
	
	
	var p_submit_link2 = new Element('p');
	var submit_link2 = new Element('a');
	submit_link2.href="#";
	submit_link2.update("Guardar");
	submit_link2.onclick= function(){ submit_new_alter_dir("custom_alter_dir"); return false;};
	div_reg_res_gba.appendChild(submit_link2);
	
	
	
	custom_elements = new Array(super_container);		
	flash_error("Nueva Dirección",-1);
	
	return true;
	
}// end popup_add_alter_dir



function popup_add_alter_fac(){
	
	var super_container = new Element('div');
	super_container.addClassName("alter_fac_container");
	super_container.id = "custom_alter_fac";
	

	
	var main_container = new Element('div');
	main_container.addClassName("box registro_residencia ddf");
	super_container.appendChild(main_container);
	
	
	var div_reg_ddf = new Element('div');
	div_reg_ddf.id= "ddf_-1";
	main_container.appendChild(div_reg_ddf);
	

	var ddf_id = new Element("input",{value:"-1",name:"data[Facturacion][-1][DireccionesFacturacion][id]",type:"hidden"});
	div_reg_ddf.appendChild(ddf_id);

	
	var rzs_p = new Element('p');
	div_reg_ddf.appendChild(rzs_p);
	
	rzs_p.appendChild(document.createTextNode('Razón Social: '));
	var rzs_input = new Element("input",{name:"data[Facturacion][-1][DireccionesFacturacion][razon_social]",type:"text",title:"razon_social"});
	rzs_input.addClassName("text required razon_social");
	rzs_p.appendChild(rzs_input);	
	
	rzs_p.appendChild(document.createTextNode('Dirección Fiscal: '));
	var df_input = new Element("input",{name:"data[Facturacion][-1][DireccionesFacturacion][direccion_fiscal]",type:"text"});
	df_input.addClassName("text required");
	rzs_p.appendChild(df_input);
	
					
	var dp_p = new Element('p');
	div_reg_ddf.appendChild(dp_p);							
	
	dp_p.appendChild(document.createTextNode('Dirección Postal: '));
	var dp_input = new Element("input",{name:"data[Facturacion][-1][DireccionesFacturacion][direccion_postal]",type:"text"});
	dp_input.addClassName("text required direccion_postal");
	dp_p.appendChild(dp_input);
	
	var cuit_iva_p = new Element('p');
	div_reg_ddf.appendChild(cuit_iva_p);							
	
	cuit_iva_p.appendChild(document.createTextNode('Cuit: '));
	var cuit_input = new Element("input",{name:"data[Facturacion][-1][DireccionesFacturacion][cuit]",type:"text", maxlength:"11", onkeydown:"return validarTecla(event)"});
	cuit_input.addClassName("required cuit");
	cuit_iva_p.appendChild(cuit_input);
	
	cuit_iva_p.appendChild(document.createTextNode('Tipo Iva: '));
	var iva_choice = new Element("select",{name:"data[Facturacion][-1][DireccionesFacturacion][tipo_iva]"});
	cuit_iva_p.appendChild(iva_choice);

	
								   									   
	
	tipos_iva.each(function(tipo){
		var iva_option = new Element("option",{value:tipo.TipoIva.tipo_iva});
		iva_option.update(tipo.TipoIva.descripcion);
		iva_choice.appendChild(iva_option);
	});
	
	
	
	var p_submit_link2 = new Element('p');
	var submit_link2 = new Element('a');
	submit_link2.href="#";
	submit_link2.update("Guardar");
	submit_link2.onclick= function(){ submit_new_alter_fac("custom_alter_fac"); return false;};
	p_submit_link2.appendChild(submit_link2);
	div_reg_ddf.appendChild(p_submit_link2);
	
	
	
	custom_elements = new Array(super_container);		
	flash_error("Nueva Dirección",-1);
	

	
	return true;
	
}// end popup_add_alter_fac




function submit_new_alter_fac(container){

	var main_container = $(container);
	
	if(!check_fields(main_container)) return;
	
	if(main_container){
		
		var data = new Object();
		
		var inputs = main_container.select("input:enabled");
		var selects = main_container.select("select:enabled");
		var textareas = main_container.select("textarea:enabled");
		
		var serialize_f = function(element){
			data[element.name] = element.value;
		}
		
		inputs.each(serialize_f);
		
		selects.each(serialize_f);
		
		textareas.each(serialize_f);
		
		
		var info = $H(data).toQueryString();
		
		new Ajax.Request(webroot+"cliente/agregar_direccion_facturacion", { method:'post',
	  	parameters: info,
		  onSuccess: function(transport,json){
    			if(json && json.status){
				
				var direccion_detail = json.DireccionesFacturacion;
					
				var direccion_facturacion = direccion_detail.DireccionesFacturacion ;
					
				var option = new Element('option',{value:direccion_facturacion.id+';'+direccion_facturacion.direccion_fiscal+';'+direccion_facturacion.tipo_iva+';'+direccion_facturacion.cuit+';'+direccion_facturacion.direccion_postal});
				option.update(direccion_facturacion.razon_social);
				var ddf_combo_options = $('ddf_combo_options');
				ddf_combo_options.appendChild(option);
				ddf_combo_options.selectedIndex= ddf_combo_options.options.length-1;
									
				flash_error('',0);
				
				ddf_combo_options.selectedIndex= ddf_combo_options.options.length-1;
				change_datos_facturacion(ddf_combo_options,'datos_facturacion')	;				
									
						}// end if json
					
		    }// end function
	    
	  	});
		
		
	}
		
		return true;
}






var pedido_custom_validate = function(form_id){
	var _form= $(form_id);
	var delivery_day_choice = _form ? _form.select("#choice_delivery_day").first() : null;
	var choice_payment_option = _form ? _form.select("#choice_payment_option").first() : null;
				
		if( delivery_day_choice == null || choice_payment_option == null) return false;
				
		var delivery_day_choiced_options = 0;
		var payment_choiced_options = 0;
					
			var dchoices = delivery_day_choice.select("input[type=radio]:enabled");
			dchoices.each(function(n){
				if(n.checked == true && n.visible() ){
					delivery_day_choiced_options++;
					} 					
				});
					
			var pchoices = choice_payment_option.select("input[type=radio]");
				pchoices.each(function(n){
				if(n.checked == true){
					payment_choiced_options++;
					
					} 					
				});
	
	var message = "";
	
	if(delivery_day_choiced_options == 0 && payment_choiced_options==0){
			message = "Por favor, complete "+(delivery_day_choiced_options == 0  && payment_choiced_options==0 ? 'Día, Horario de Entrega y la Forma de Pago ' : '');
		}else if(delivery_day_choiced_options == 0 ){
			message = "Por favor, complete "+(delivery_day_choiced_options == 0  ? 'Día y Horario de Entrega' : '');
		}else if(payment_choiced_options==0){
			message = "Por favor, complete "+(payment_choiced_options == 0  ? 'la Forma de Pago' : '');
	}
		
	var valida_tallobox = true;
	if(document.getElementById('talloboxs_validar')==null)
	{
		message += ";Debe incluir al menos un Tallobox, para comprar productos opcionales.";
		valida_tallobox = false;
	}
	
	flash_error(message,-1);
	
			
	return delivery_day_choiced_options == 0 || payment_choiced_options==0 || !valida_tallobox ? false : true;	
			
	}// end custom_validate
	
function toggle_fold_detail(control,detail_class,modal,update_text){

update_text = update_text == null ? true : false;
detail_class = detail_class == null ? '.pdetail' : '.'+detail_class;
modal = modal == null ? true : false;

var control = $(control);
var container_listado = control.up('.listado');
var tbody = control.up('tbody');
var detail_panel = tbody.select(detail_class).first();
var item_resume_panel = tbody.select('.resume.items').first();

var resume = tbody ? tbody.select('.resume').first() : null;
var display_c_pbs= resume.select(".c_pbs").first();
var display_c_pbr = resume.select(".c_pbr").first();

if(display_c_pbs) display_c_pbs.update('');
if(display_c_pbr) display_c_pbr.update('');

var is_folded = detail_panel ? detail_panel.hasClassName('folded') : true;

var label = is_folded ? 'Cerrar' : 'Seleccionar' ; 

if(control && update_text) control.update(label);

if(detail_panel && is_folded ){
	detail_panel.removeClassName('folded');
	detail_panel.addClassName('unfolded');
	if(container_listado && modal){  tbody.addClassName('modal_panel'); showOverlay(); }
	if(item_resume_panel)item_resume_panel.hide();
	}else if(detail_panel){
	detail_panel.removeClassName('unfolded');
	detail_panel.addClassName('folded');
	if(item_resume_panel)item_resume_panel.show();
	update_resume_item_detail(control,detail_class);
	}

return false;

}// toggle_fold_detail


function new_dde(control){

var control = $(control);
var container = control ? control.up('.dde_list') : null;
if(container) container.insert(create_dde(),'bottom');

return false;
}


function new_ddf(control){

var control = $(control);
var container = control ? control.up('.ddf_list') : null;
if(container) container.insert(create_ddf(),'bottom');

return false;
}





function remove_dde_ddf(control,dom_remove_only,container_name,id,url){

var confirm_deletion= window.confirm(control.title);

if(!confirm_deletion) return false;

if(!check_dde_ddf_count(container_name)){
return false;
}

if(!dom_remove_only){

new Ajax.Request(url, { method:'get',
	  onSuccess: function(transport, json){

   	   	  if(json){ 
   	   	  			var result = json;
    	   	  	 	if(result && result.status){
					setTimeout('flash_error(\'Se asentaron sus cambios\',-1)',500); 
					if(result.DireccionesEntrega){ 
						pop_dde(container_name,json.DireccionesEntrega.id); 
						}else if(result.DireccionesFacturacion){
						pop_dde(container_name,json.DireccionesFacturacion.id); 
					}// if direccion entrega or direccion facturacion
				}else{
					setTimeout('flash_error(\'Error al asentar sus cambios\',-1)',500);
				}// if result status
			}// end if json	
	    }
	  });

}else{

pop_dde(container_name,id);

}

return false;

}


function modify_dde_ddf(formid, control, panel)
{
	if(!check_fields(formid)) return false;
		
		var _form = $(formid);
		var info = _form.serialize(true);
		var url= _form.readAttribute('action');
		new Ajax.Request(url, { method:'post',
		  parameters: info,
		  onSuccess: function(transport, json){
    		
		  		trigger_update_resume(control);
		  		toggle_fold_detail(control,panel,false,false);
		  		flash_error('');
				setTimeout('flash_error(\'Direccion Modificada\',-1)',500);
				
		    }// end function
		    
		  });

	return false;
}// end modify_dde_ddf




function pop_dde(container_name,id){

var prefix = container_name == 'direcciones_entrega' ? 'dde_' : 'ddf_'; 

var tbody = $(prefix+id);

tbody.remove();

return false;

}// end pop dde




function trigger_update_resume(control){
	
	resume_update_control = control;
	
	if( resume_update_timeout ){
		clearTimeout (resume_update_timeout);
	}
	
	resume_update_timeout= setTimeout("update_resume()",700);
	
	//if(!user_profile_changes) user_profile_changes = true;
	

}// end trigger_update_dde_resume



function update_resume(control){

resume_update_control = control== null ? resume_update_control : control; 

var control =  $(resume_update_control); 
var main_container = control ? control.up('tbody') : null ;
var resume = main_container  ? main_container.select('.resume').first() : null;
var address_resume = resume  ? resume.select('span.address').first() : null;
var registro_residencia = control.up('.registro_residencia');
var tc_resume = resume  ? resume.select('span.detalle').first() : null;

	if( typeof address_resume !== 'undefined'){
		

		var active_panel = 	main_container.select('.registro_residencia:not(.hidden)').first();
		
		
		
		if(active_panel && active_panel.hasClassName('ddf')){
		
				var field_razon_social = active_panel.select('input[title=razon_social]').first();
							
				var address = ( field_razon_social && field_razon_social.value !=='' ? field_razon_social.value : '' );
				if(address_resume) address_resume.update(address);	
		
		
		}else if(active_panel && active_panel.hasClassName('country')){
		
				var field_calle = active_panel.select('input[title=calle]').first();
				var field_lote = active_panel.select('input[title=lote]').first();
				var field_sector = active_panel.select('input[title=sector]').first();
				var field_casa = active_panel.select('input[title=casa]').first();
				var field_verificada = active_panel.select('input[title=verificadac]').first();
				var field_permanente = active_panel.select('input[title=permanentec]').first();
				
				var address = ( field_calle && field_calle.value !=='' ? field_calle.value : '' )+' '+( field_lote && field_lote.value !=='' ? 'L '+field_lote.value : '' )+' '+( field_sector && field_sector.value !=='' ? 'S: '+field_sector.value : '' ) +' '+( field_casa && field_casa.value !=='' ? 'C '+field_casa.value : '' );
				address +=  (field_verificada && field_verificada.checked == true) ? '' : ' <b><small>(Dirección sin verificar)</small></b>';
				address +=  (field_permanente && field_permanente.checked == true) ? ' <b><small style="color:red">(Dirección permanente)</small></b>' : '';
				
				if(address_resume) address_resume.update(address);	
			
		}else if(active_panel && !active_panel.hasClassName('country')){
				
				var field_calle = active_panel.select('input[title=calle]').first();
				var field_altura = active_panel.select('input[title=altura]').first();
				var field_piso = active_panel.select('input[title=piso]').first();
				var field_departamento = active_panel.select('input[title=departamento]').first();
				var field_verificada = active_panel.select('input[title=verificada]').first();
				var field_permanente = active_panel.select('input[title=permanente]').first();
		
				var address = ( field_calle && field_calle.value !=='' ? field_calle.value : '' )+' '+( field_altura && field_altura.value !=='' ? field_altura.value : '' )+' '+( field_piso && field_piso.value !=='' ? 'Piso: '+field_piso.value : '' ) +' '+( field_departamento && field_departamento.value !=='' ? 'Depto.: '+field_departamento.value : '' );
				address +=  (field_verificada && field_verificada.checked == true) ? '' : ' <b><small>(Dirección sin verificar)</small></b>';
				address +=  (field_permanente && field_permanente.checked == true) ? ' <b><small style="color:red">(Dirección permanente)</small></b>' : '';

				if(address_resume) address_resume.update(address);
		
		
			}// if active panel
				
	}


}// update_dde_resume



function create_ddf(){

var uid = (-1)* Math.ceil(Math.random()*1000) ;

var tbody = new Element('tbody');
tbody.className='detail';
tbody.id='ddf_'+uid;

var tr_resume = new Element('tr');
tr_resume.className="resume";
tbody.appendChild(tr_resume);

var td_resume_ctnt = new Element('td');
td_resume_ctnt.update('<span style="display: block;" class="address"></span>');
tr_resume.insert(td_resume_ctnt);

var td_resume_empty = new Element('td');
td_resume_empty.update('&nbsp;');
tr_resume.insert(td_resume_empty);

var td_resume_edit = new Element('td');
td_resume_edit.update('<span class="icon" width="3%"><a onclick="return toggle_fold_detail(this,\'ddf_detail\',false,false)" href="#"><img src="'+webroot+'img/backend/ico_modificar.gif"/></a></span>');
tr_resume.insert(td_resume_edit);

var td_resume_remove = new Element('td');
td_resume_remove.update('<span class="icon" width="3%"><a href="#" title="Confirma la eliminación \?" onclick="return remove_dde_ddf(this,true,\'direcciones_facturacion\','+uid+',\'\')"><img src="'+webroot+'img/backend/ico_eliminar.gif"/></a></span>');
tr_resume.insert(td_resume_remove);



var tr_ctnt = new Element('tr');
tbody.appendChild(tr_ctnt);

var td_ctnt = new Element('td');
td_ctnt.className='ddf_detail';
td_ctnt.writeAttribute('colspan',4);
tr_ctnt.appendChild(td_ctnt);

var box = new Element('div');
box.className='box';
td_ctnt.appendChild(box);

var dbody = new Element('div');
dbody.className='dbody';
box.appendChild(dbody);

var dfoot = new Element('div');
dfoot.className='dfoot';
box.appendChild(dfoot);


var pbtn = new Element('p');
pbtn.update('<a href="#" onclick="return modify_dde_ddf(\'form_modificar_direccion_facturacion\', this, \'ddf_detail\')">Guardar</a>');
dfoot.appendChild(pbtn);


var dde_hidden_id = new Element('input',{type:'hidden',name:'data[Facturacion]['+uid+'][DireccionesFacturacion][id]',value:'-1'});
dbody.appendChild(dde_hidden_id);

var registro_residencia = new Element('div');
registro_residencia.id = 'registro_residencia_'+uid ;
registro_residencia.className= 'registro_residencia ddf';
dbody.appendChild(registro_residencia);

var par = new Element('p');
par.update('Razón Social: <input onkeyup="trigger_update_resume(this)" title="razon_social" name="data[Facturacion]['+uid+'][DireccionesFacturacion][razon_social]" value="" type="text"> Dirección Fiscal: <input onkeyup="trigger_update_resume(this)" name="data[Facturacion]['+uid+'][DireccionesFacturacion][direccion_fiscal]" class="text" value="" type="text"> <br>Dirección Postal: <input onkeyup="trigger_update_resume(this)" name="data[Facturacion]['+uid+'][DireccionesFacturacion][direccion_postal]" class="text" value="" type="text">');
registro_residencia.appendChild(par);

var iva_options='';
tipo_iva.each(function(tipo){
	iva_options+='<option selected="selected" value="'+tipo.TipoIva.tipo_iva+'">'+tipo.TipoIva.descripcion+'</option>';
});

var pbr = new Element('p');
pbr.update('Cuit <input name="data[Facturacion]['+uid+'][DireccionesFacturacion][cuit]"  maxlength="11" onkeydown="return validarTecla(event)" value="" class="cuit required" type="text"> Tipo Iva:<select name="data[Facturacion]['+uid+'][DireccionesFacturacion][tipo_iva]">'+iva_options+'</select>');
registro_residencia.appendChild(pbr);

return tbody;

}// end create_ddf




function create_dde(){

var uid = (-1)* Math.ceil(Math.random()*1000) ;

var tbody = new Element('tbody');
tbody.className='detail';
tbody.id='dde_'+uid;

var tr_resume = new Element('tr');
tr_resume.className="resume";
tbody.appendChild(tr_resume);

var td_resume_ctnt = new Element('td');
td_resume_ctnt.update('<span style="display: block;" class="address"></span>');
tr_resume.insert(td_resume_ctnt);

var td_resume_empty = new Element('td');
td_resume_empty.update('&nbsp;');
tr_resume.insert(td_resume_empty);

var td_resume_edit = new Element('td');
td_resume_edit.update('<span class="icon" width="3%"><a onclick="return toggle_fold_detail(this,\'dde_detail\',false,false)" href="#"><img src="'+webroot+'img/backend/ico_modificar.gif"/></a></span>');
tr_resume.insert(td_resume_edit);

var td_resume_remove = new Element('td');
td_resume_remove.update('<span class="icon" width="3%"><a href="#" title="Confirma la eliminación \?" onclick="return remove_dde_ddf(this,true,\'direcciones_entrega\','+uid+',\'\')"><img src="'+webroot+'img/backend/ico_eliminar.gif"/></a></span>');
tr_resume.insert(td_resume_remove);


var tr_ctnt = new Element('tr');
tbody.appendChild(tr_ctnt);

var td_ctnt = new Element('td');
td_ctnt.className='dde_detail';
td_ctnt.writeAttribute('colspan',4);
tr_ctnt.appendChild(td_ctnt);

var box = new Element('div');
box.className='box';
td_ctnt.appendChild(box);

var dbody = new Element('div');
dbody.className='dbody';
box.appendChild(dbody);

var dfoot = new Element('div');
dfoot.className='dfoot';
box.appendChild(dfoot);



var dde_hidden_id = new Element('input',{type:'hidden',name:'data[Direcciones]['+uid+'][DireccionesEntrega][id]',value:'-1'});
dbody.appendChild(dde_hidden_id);

var h1 = new Element('h1');
h1.update('Nueva<span class="item"><input onclick="toggle_registro_residencia(this)" name="is_country_'+uid+'" value="registro_country_'+uid+'|registro_residencia_'+uid+'" type="radio"> Country / Barrio Privado</span><span class="item"><input onclick="toggle_registro_residencia(this)" name="is_country_'+uid+'" value="registro_residencia_'+uid+'|registro_country_'+uid+'" type="radio" checked="checked"  /> Residencia Particular (Capital Federal y GBA) </span>');
dbody.appendChild(h1);

var registro_residencia = new Element('div');
registro_residencia.id = 'registro_residencia_'+uid ;
registro_residencia.className= 'registro_residencia';
dbody.appendChild(registro_residencia);

var par = new Element('p');
par.update('Calle <label><input onkeyup="trigger_update_resume(this)" title="calle" name="data[Direcciones]['+uid+'][DireccionesEntrega][calle]" class="text" value="" type="text"></label> Nº <input onkeyup="trigger_update_resume(this)" title="altura" name="data[Direcciones]['+uid+'][DireccionesEntrega][altura]" class="text" size="5" value="" type="text"> Piso <input onkeyup="trigger_update_resume(this)" title="piso" name="data[Direcciones]['+uid+'][DireccionesEntrega][piso]" class="text" size="5" value="" type="text"> Depto <input onkeyup="trigger_update_resume(this)" title="departamento" name="data[Direcciones]['+uid+'][DireccionesEntrega][departamento]" class="text" size="5" value="" type="text"> Localidad');
registro_residencia.appendChild(par);

var localidad_options = new Element('select',{name:'data[Direcciones]['+uid+'][DireccionesEntrega][localidad_id]'});

var default_option = new Element('option',{value: -1});
default_option.update('Seleccione una opción');
localidad_options.appendChild(default_option);

if(localidades){
	localidades.each(function(localidad){
		var info = localidad.Localidad;
		var option = new Element('option',{value: info.id });
		option.update(info.nombre);
		localidad_options.appendChild(option);
	});
}

par.insert(localidad_options,'bottom');

var pbr = new Element('p');
pbr.update('Entre <input type="text" value="" name="data[Direcciones]['+uid+'][DireccionesEntrega][calle_entre_uno]"/> y <input type="text" value="" name="data[Direcciones]['+uid+'][DireccionesEntrega][calle_entre_dos]"/>');
registro_residencia.appendChild(pbr);

var pcr = new Element('p');
pcr.update('Teléfono: <input name="data[Direcciones]['+uid+'][DireccionesEntrega][telefono]" value="" type="text"> / Teléfono Alternativo: <input name="data[Direcciones]['+uid+'][DireccionesEntrega][telefono_alternativo]" value="" type="text">');
registro_residencia.appendChild(pcr);

var pcv = new Element('p');
pcv.update('Dirección verificada: <input name="data[Direcciones]['+uid+'][DireccionesEntrega][verificacion]" value="S" checked="checked" type="checkbox" title="verificada">');
registro_residencia.appendChild(pcv);

var pdr = new Element('p');
pdr.update('Observaciones adicionales para la dirección <textarea name="data[Direcciones]['+uid+'][DireccionesEntrega][observaciones]" cols="54" rows="1"></textarea>');
registro_residencia.appendChild(pdr);



var registro_country = new Element('div');
registro_country.id = 'registro_country_'+uid ;
registro_country.className= 'registro_residencia';
registro_country.style.display='none';
dbody.appendChild(registro_country);


var pbtn = new Element('p');
pbtn.update('<a href="#" onclick="return modify_dde_ddf(\'form_modificar_direccion_entrega\', this, \'dde_detail\')">Guardar</a>');
dfoot.appendChild(pbtn);


var pac = new Element('p');
pac.update('Calle <label><input onkeyup="trigger_update_resume(this)" title="calle" name="data[Direcciones]['+uid+'][DireccionesEntrega][calle]" class="text" value="" type="text" disabled="disabled"></label>Lote<input onkeyup="trigger_update_resume(this)"  type="text" title="lote" value="" size="5" class="text required" name="data[Direcciones]['+uid+'][DireccionesEntrega][lote]" disabled="disabled"/> Sector <input onkeyup="trigger_update_resume(this)" title="sector" name="data[Direcciones]['+uid+'][DireccionesEntrega][sector]" class="text" size="5" value="" type="text" disabled="disabled" /> Casa <input onkeyup="trigger_update_resume(this)" title="casa" name="data[Direcciones]['+uid+'][DireccionesEntrega][casa]" class="text" size="5" value="" type="text" disabled="disabled" />');

var county_options = new Element('select',{name:'data[Direcciones]['+uid+'][DireccionesEntrega][localidad_id]',disabled:'disabled'});

default_option = new Element('option',{value: -1});
default_option.update('Seleccione un Country/Barrio Privado');
county_options.appendChild(default_option);

if(countries){
	countries.each(function(country){
		var info_c = country.Country;
		var localidad_c = country.Localidad;
		
		var option = new Element('option',{value: localidad_c.id+'|'+info_c.id });
		option.update(info_c.nombre);
		county_options.appendChild(option);
	});
}

pac.insert(county_options,'bottom');

registro_country.appendChild(pac);

var pcc = new Element('p');
pcc.update('Teléfono: <input name="data[Direcciones]['+uid+'][DireccionesEntrega][telefono]" value="" type="text" disabled="disabled"> / Teléfono Alternativo: <input name="data[Direcciones]['+uid+'][DireccionesEntrega][telefono_alternativo]" value="" type="text" disabled="disabled">');
registro_country.appendChild(pcc);

var pcvc = new Element('p');
pcvc.update('Dirección verificada: <input name="data[Direcciones]['+uid+'][DireccionesEntrega][verificacion]" disabled="disabled" value="S" checked="checked" type="checkbox" title="verificada">');
registro_country.appendChild(pcvc);

var pdc = new Element('p');
pdc.update('Observaciones adicionales para la dirección <textarea name="data[Direcciones]['+uid+'][DireccionesEntrega][observaciones]" cols="54" rows="1" disabled="disabled"></textarea>');
registro_country.appendChild(pdc);




return tbody;

}// end create_dde

function update_resume_item_detail(control,detail_class){

var control = $(control);
var tbody = control.up('tbody');
var detail_panel = tbody.select(detail_class).first();
var item_resume_panel = tbody.select('.resume.items').first();

	if(item_resume_panel){
		
		var ul = item_resume_panel.select('ul').first();
		if(ul) ul.descendants().each(function(n) { n.remove(); }) ;
		
		var selected_items = detail_panel.select('.selected_items').first();
		detail_panel = selected_items == null ? detail_panel : selected_items;
		
		var items = detail_panel.select('.item');
		items.each(function(n) {
			
			var iq= n.select('[name$="cantidad]"]').first();
				if(iq && parseInt(iq.value) >=1 ){
					
					var nombre = n.select('input[name$="nombre]"]').first();
					var unidad_nombre = n.select('input[name$="unidad_nombre]"]').first();
					var unidad_cantidad = n.select('input[name$="unidad_cantidad]"]').first();
					var cantidad_uc = n.select('input[name$="cantidad_uc]"]').first();
					
					nombre= nombre ? nombre.value : '';
					unidad_nombre = unidad_nombre ? unidad_nombre.value : '';
					unidad_cantidad = unidad_cantidad ? parseInt(unidad_cantidad.value) : '';
					cantidad_uc = cantidad_uc ? parseInt(cantidad_uc.value) : '';
					
					var detail_li = new Element('li');
					detail_li.update(nombre+" <var>"+ parseInt(iq.value)* unidad_cantidad*cantidad_uc +" "+ unidad_nombre +"</var>");		
					ul.appendChild(detail_li);
									
				}
		}) ;
		
	
	}

}// end update_resume_item_detail
