
var Press = {
	open:function(o,id){
		o=$(o);
		$$('.press_article_list a').each(function(t){t.removeClassName('selected');});
		o.addClassName('selected');
		$$('.press_item').each(function(t){t.hide();});
		$('press_clipping_'+id).show();
	}
}



var VideoPlayer = {
	open:function(id){
		Page.blur();
		$('video-player').show();
		$('video-player-iframe').src = 'http://www.youtube.com/embed/'+id;
	},
	close:function(){
		Page.focus();
		$('video-player').hide();
		$('video-player-iframe').src = 'about:blank';
	}
}



var Cart = {
	controller_path:'/shop',
	consume_address:function(){
		var address = $F('buy_address');
		var address2 = $F('buy_address_2');
		var zip = $F('buy_zip');
		var state = $F('buy_state');
		var city = $F('buy_city');
		var name = $F('buy_name');
		var email = $F('buy_email');
		var phone = $F('buy_phone');
		var country = $F('buy_country');
		
		
		Page.blur();
		$('paypal-loading').show();
		$('paypal-loading').update('Checking address... please wait');
		
		$('ship_to_prev_1').update(name);
		$('ship_to_prev_2').update(email);
		$('ship_to_prev_3').update(phone);
		$('ship_to_prev_4').update(address);
		$('ship_to_prev_5').update(address2);
		$('ship_to_prev_6').update(city+", "+state+", "+zip);
		
		Request(this.controller_path+'/check_addr', {address:address,state:state,zip:zip,city:city,address2:address2,name:name,phone:phone,email:email, country:country}, function(r){
			Notice.respond(r);
			if(!r.ok){
				Page.focus();
				$('paypal-loading').hide();
				$('shp-adr-t').update("Couldn't find that address--please double check");
				Notice.shake('address_block');
			}else{
				Page.blur();
				$('buy_zip').value = r.zip;
				zip = r.zip;
				address = r.address;
				$('buy_address').value = r.address;
				city = r.city;
				$('buy_city').value = r.city;
				
					$('ship_to_prev_1').update(name);
					$('ship_to_prev_2').update(email);
					$('ship_to_prev_3').update(phone);
					$('ship_to_prev_4').update(address);
					$('ship_to_prev_5').update(address2);
					$('ship_to_prev_6').update(city+", "+state+", "+zip);
				Request(this.controller_path+'/check_tax', {address:address,state:state,zip:zip,city:city,address2:address2,name:name,phone:phone,email:email,country:country}, function(r){
					Notice.respond(r);
					Page.focus();
					$('paypal-loading').hide();
					// alert(getinfo(r));
					if(r.doing_tax){
						if(r.tax_problem){
							$('paypal-loading').hide();
							Dialogue.show({
								html:['We will be in touch about how much sales tax is owed. Your order can proceed normally, though.','We can\'t calculate sales tax for ' + address + ", "+city+", "+state+", "+zip+", so we will figure it out and contact you once we know.","Your order will not be delayed."],
								ok_label:'Continue',
								on_ok:function(){
									$('st_tax').show();
									$('sales_tax_pricew').update('$0');
									$('sales_tax_pricer').update('unknown');
									this.start_get_ship();
								}.bind(this)
							});
						}else{
							$('st_tax').show();
							$('sales_tax_pricew').update('$'+r.sales_tax);
							$('sales_tax_pricer').update(r.rate);
							$('st_total_total_val').update("$"+r.total_cost);
							this.start_get_ship();
						}
					}else{
						$('st_tax').show();
						$('sales_tax_pricew').update('$'+r.sales_tax);
						$('sales_tax_pricer').update(r.rate);
						$('st_total_total_val').update("$"+r.total_cost);
						this.start_get_ship();
					}

				}.bind(this));
			}
			
		}.bind(this));
	},
	start_get_ship:function(){
		$('ship_to_prev_outer').show();
		$('step1').removeClassName('selected');
		$('step2').addClassName('selected');
		$('address_block').hide();
		$('shipping_block').show();
	},
	consume_shipping:function(){
		var sid = $F('shipping_total_select');
		Page.blur();
		$('paypal-loading').show();
		$('paypal-loading').update('Please wait...');
		Request(this.controller_path+'/set_shipping_cost', {id:sid}, function(r){
			Notice.respond(r);
			$('st_ship').show();
			$('st_ship_nm').update(r.sname);
			$('st_ship_cst').update(r.shipping);
			$('st_total_total_val').update(r.total);
			$('entry_block').hide();
			$('checkout_now').show();
			$('rightocart').style.width='30%';
			$('step2').removeClassName('selected');
			$('step4').addClassName('selected');
			Page.focus();
			$('paypal-loading').hide();
		}.bind(this));
	},
	consume_gift:function(){
		var sid = $F('shipping_total_select');
		Page.blur();
		$('paypal-loading').show();
		$('paypal-loading').update('Please wait...');
		Request(this.controller_path+'/set_gift', {is_gift:$('is_gift').checked,gift_message:$F('gift_msg_t')}, function(r){
			Notice.respond(r);
			$('st_ship').show();
			$('st_ship_nm').update(r.sname);
			$('st_ship_cst').update(r.shipping);
			$('st_total_total_val').update(r.total);
			$('entry_block').hide();
			$('checkout_now').show();
			$('rightocart').style.width='30%';
			$('step3').removeClassName('selected');
			$('step4').addClassName('selected');
			Page.focus();
			$('paypal-loading').hide();
		}.bind(this));
	},
	preview_shipping_option:function(){
		
		
		var sid = $F('shipping_total_select');
		Request(this.controller_path+'/preview_shipping_cost', {id:sid}, function(r){
			Notice.respond(r);
			$('ship_onchange_price_prev').update(r.shipping);
			$('or_shp_desc_inline').update(r.desc);
		}.bind(this));
	},
	go_to_paypal:function(){
		Page.blur();
		$('paypal-loading').show();
		Shop.start_paypal_checkout();
	}
	
}

















var Cartx = {
	start_checkout:function(){
		$('shop_cart_list').style.width = '80%';
		$('shop_cart_addr_right').show();
		Poster.show('ship_to');
		$('buy_state').selectedIndex = $A($('buy_state').options).collect(function(t){return t.value;}).indexOf('NY');
	},
	consume_address:function(){
		$('paypal-loading').show();
		
		var address = $F('buy_address');
		var zip = $F('buy_zip');
		var state = $F('buy_state');
		var city = $F('buy_city');
		
		
		
		Request(this.controller_path+'/check_tax', {address:address,state:state,zip:zip}, function(r){
			Notice.respond(r);
			
			// alert(getinfo(r));
			
			if(!r.ok){
				$('paypal-loading').hide();
				return;
			}
			
			if(r.doing_tax){
				if(r.tax_problem){
					$('paypal-loading').hide();
					Dialogue.show({
						html:['We will be in touch about how much sales tax is owed. Your order can proceed normally, though.','We can\'t calculate sales tax for ' + address + ", "+city+", "+state+", "+zip+", so we will figure it out and contact you once we know.","Your order will not be delayed."],
						ok_label:'Continue',
						on_ok:function(){
							this.start_get_ship();
						}.bind(this)
					});
				}else{
					$('paypal-loading').hide();
					$('sales_tax_pricew').update('$'+r.sales_tax);
					$('sales_tax_pricer').update(r.rate);
					this.start_get_ship();
				}
			}else{
				this.start_get_ship();
			}
			
		}.bind(this));
		
		
		
		Poster.hide('ship_to');
	},
	start_get_ship:function(){
		Poster.show('ship_type');
	},
	consume_ship_type:function(){
		Poster.hide('ship_type');
	}
}





var Shop = {
	controller_path:'/shop',
	add:function(o,id){
		var args = {};
		args.id = id;
		var qt = $(o).up().up().select('.qty')[0];
		var qty = parseInt($F(qt));
		if(qty < 1){
			qty=1;
		}
		args.qty = qty;
		$(qt).value = 1;
		Request(this.controller_path+'/add', args, function(r){
			Notice.respond(r);
			this.refresh();
		}.bind(this));
	},
	cart_on_mouse_over:function(){
		
	},
	cart_on_mouse_out:function(){
		
	},
	update_quantity:function(o,id){
		var args = {};
		args.id = id;
		var qt = $(o).up().up().select('.qty')[0];
		var qty = parseInt($F(qt));
		if(qty < 1){
			qty=1;
			$(qt).value = 1;
		}
		args.qty = qty;
		Request(this.controller_path+'/update', args, function(r){
			Notice.respond(r);
			this.refresh(r);
		}.bind(this));
	},
	remove:function(o,id){
		var sum = $($(o).up().up().up().select('.summary')[0]).innerHTML;
		Dialogue.show({
			html:['Are you sure you want to remove ' + sum + ' from your order?'],
			img:'/images/edit/custom/recording_delete_64.png',
			ok_label:'Remove ' + sum,
			on_ok:function(){
				Request(this.controller_path+'/remove', {id:id}, function(r){
					Notice.respond(r);
					this.refresh(r);
				}.bind(this));
			}.bind(this)
		});
	},
	refresh:function(r){
		if(r==undefined){
			window.location.reload();
		}else{
			if(r.ok){
				window.location.reload();
			}else{
				window.location.reload();
			}
		}
	},
	take_shipping_option:function(o){
		var id = $F(o);
		Request(this.controller_path+'/take_shipping_option', {id:id}, function(r){
			Notice.respond(r);
			this.refresh(r);
		}.bind(this));
	},
	take_coupon:function(o){
		var cc = $F('coupon_code_cart');
		Request(this.controller_path+'/take_coupon', {code:cc}, function(r){
			Notice.respond(r);
			if(r.ok){
				this.refresh();
			}else{
				
			}
		}.bind(this));
	},
	clear_coupon:function(){
		Request(this.controller_path+'/clear_coupon', {}, function(r){
			this.refresh();
		}.bind(this));
	},
	clear:function(){
		Dialogue.show({
			html:['Are you sure you want to empty your cart?'],
			img:'/images/edit/custom/recording_delete_64.png',
			ok_label:'Empty',
			on_ok:function(){
				Request(this.controller_path+'/reset', {}, function(r){
					Notice.respond(r);
					this.refresh(r);
				}.bind(this));
			}.bind(this)
		});
	},
	
	add_minutes:function(){
		Request(this.controller_path+'/add_minutes', {minutes:$F('buy_minutes_number')}, function(r){
			this.refresh();
		}.bind(this));
	},
	
	success_start_async:function(token,payer_id){
		Request(this.controller_path+'/finalize_express_payment', {token:token, payer_id:payer_id}, function(r){
			this.handle_paypal_response(r);
		}.bind(this));
	},
	handle_paypal_response:function(r){
		$('doing-payment').hide();
		if(r.ok){
			$('payment-done').show();
			$('thanks').update(r.thanks);
		}else{
			$('payment-error').update(r.msg);
			$('payment-error').show();
		}
	},
	temp_pp_resp:function(){
		Request(this.controller_path+'/tempa', {}, function(r){
			this.handle_paypal_response(r);
		}.bind(this));
	},
	
	checkout:function(){
		Page.blur();
		$('paypal-loading').show();
		
		var address = $F('buy_address');
		var zip = $F('buy_zip');
		var state = $F('buy_state');
		var city = $F('buy_city');
		
		
		
		Request(this.controller_path+'/check_tax', {address:address,state:state,zip:zip}, function(r){
			Notice.respond(r);
			
			// alert(getinfo(r));
			
			if(!r.ok){
				Page.focus();
				$('paypal-loading').hide();
				return;
			}
			
			if(r.doing_tax){
				if(r.tax_problem){
					$('paypal-loading').hide();
					Dialogue.show({
						html:['We will be in touch about how much sales tax is owed. Your order can proceed normally, though.','We can\'t calculate sales tax for ' + address + ", "+city+", "+state+", "+zip+", so we will figure it out and contact you once we know.","Your order will not be delayed."],
						ok_label:'Continue',
						on_ok:function(){
							Page.blur();
							$('paypal-loading').show();
							this.start_paypal_checkout();
						}.bind(this)
					});
				}else{
					$('paypal-loading').hide();
					Dialogue.show({
						html:["We have to add "+r.rate+" sales tax because you live in New York state.","This will add $"+r.sales_tax+" to your order."],
						ok_label:'Continue',
						suppress_cancel_button:true,
						on_ok:function(){
							Page.blur();
							$('paypal-loading').show();
							this.start_paypal_checkout();
						}.bind(this)
					});
				}
			}else{
				this.start_paypal_checkout();
			}
			
		}.bind(this));
	},
	start_paypal_checkout:function(){
		Page.blur();
		$('paypal-loading').show();
		$('paypal-loading').update('Sending you to PayPal... please wait');
		var args2 = Find([['buy_', 'email address address_2 city state zip phone name']]);
		// $('checkout_shell').setOpacity(0.5);
		Request(this.controller_path+'/start_checkout', args2, function(r){
			Notice.respond(r);
			// $('checkout_shell').setOpacity(1.0);
			if(r.ok){
				//window.open("/shop/thanks","_self");
				window.open(r.url, '_self');
			}else{
				//error
				Page.focus();
				$('paypal-loading').hide();
				$('entry_block').show();
				$('checkout_now').hide();
				$('address_block').show();
				$('step3').removeClassName('selected');
				$('step1').addClassName('selected');
				
			}
		}.bind(this));
	}
}



var ProductGroup = {
	controller_path:'/shop',
	product_id:-1,
	update:function(){
		var args = {color:$F('pg_color_menu'),size:$F('pg_size_menu')};
		Request(this.controller_path+'/cost_of_product', args, function(r){
			$('pg_cost_preview').update(r.html);
			this.product_id = r.id;
		}.bind(this));
	},
	buy:function(o){
		if(this.product_id != -1){
			Shop.add(o,ProductGroup.product_id);
		}else{
			Warn("That size/color combination is not available!");
		}
	}
}





var LogInPop = {
	controller_path:'/sound_delivery/security',
	
	login:function(){
		Request(this.controller_path+'/login', {email:$F('log_in_email2'), password:$F('log_in_password2')}, function(r){
			if(r.ok){
				window.location.reload();
			}else{
				Notice.respond(r);
				Notice.shake('login_menu_inner2');
			}
		}.bind(this));
		
	},
	start_forgot_password:function(){
		$('reset_password_menu2').show();
		$('log_in_menu2').hide();
		$('reset_password_email2').value = $F('log_in_email2');
	},
	send_reset_password:function(){
		var em = $F('reset_password_email2');
		
		Request(this.controller_path+'/request_reset_password', {email:em}, function(r){
			if(r.ok){
				$('reset_password_menu2').update('<h2>Check ' + em + ' for a link to reset your password.</h2>');
				setTimeout(LogIn.cancel_reset_password, 3000);
			}else{
				Dialogue.show({html:['We could not find an account for ' + em + '!', 'You may have registered with another email address. Please check your email for typos, or try again with another email.'], suppress_cancel_button:true});
			}
		}.bind(this));
	},
	cancel_reset_password:function(){
		$('reset_password_menu2').hide();
		$('log_in_menu2').show();
	}
}








