
	var ad_unit_id = 68;
	var ad_unit_name = "InvestorsInsight Unit";
	var ad_limit = 10;
	var prechecked = [];
	
	var AJAXS_LOAD = true;
	var last_ad_id = null;

	function toggleForm(event) {
	    var opt_in = Event.element(event);
	    var form = $(opt_in.id.gsub("opt_in", "ad_form"));
			var ad_id = opt_in.id.gsub("opt_in_", "");
			var url = "/ad_units/"+ad_unit_id+"/ads/"+ad_id+"/subscriptions/new";

			var style = form.getStyle("display");
	    if (opt_in.checked) {
				form.update("<div><img src='/images/loader-white.gif' class='loading'></img></div>");
				if(style == "none"){
					form.show();
				}
	      new Ajax.Updater(form.id, url, { method:'get', onComplete: function(){ setUpForms(); }});  
	    } else {
				if(style != "none"){ 
					form.hide();
				}
	    }
	}
	
	function setUpForms(){
		var submit_buttons = $$(".submit_button");
		submit_buttons.each(function(btn, i){
			btn.observe("click", submitSubscription);
		});
		
		var hidden_submit_buttons = $$(".hidden_submit_button");
		hidden_submit_buttons.each(function(hbtn, i){
			hbtn.observe("click", submitSubscription);
			hbtn.click();
		});
	}
	
	function submitSubscription(event){
		var button = Event.element(event);
		var ad_id = button.id.gsub("ad_submit_","");
		var ad_form = $("ad_form_"+ad_id);
		var form = ad_form.down("form");
		last_ad_id = ad_id;
		new Ajax.Request(form.action, 
						{asynchronous:true, method:'post', 						
						onComplete:function(transport){handleFormResponse(transport)}, 
						parameters:Form.serialize(form)});
		ad_form.update("<div><img src='/images/loader-white.gif' class='loading'></img></div>");
	}
	
	function handleFormResponse(response){
		var ad_form = $("ad_form_"+last_ad_id);
		var ad = $("ad_"+last_ad_id);
		ad_form.update(response.responseText);
		if(response.status == 200){
			Effect.SlideUp.delay(3, ad.id);
			Element.remove.delay(5, ad.id);
			showNext();
		}else{
			setUpForms();
		}
	}

	function showNext(){
		var ad = $$(".hidden_ad").first();
		if(ad != null){
			ad.removeClassName("hidden_ad");
			ad.show();
		}
	}

	function submitCompleted(ad_id){
		var ad_form = $("form_wrapper_"+ad_id).down("form");
		new Ajax.Request(ad_form.action, {asynchronous:true, evalScripts:true, onComplete:function(request){completeLoading(request, 7)}, onLoading:function(request){showLoading(request, 7)}, parameters:Form.serialize(ad_form)}); 
		return false;
	}


	function showLoading(request, ad_id){
		var ad_form = $("form_wrapper_"+ad_id);
		var loader = $("loader_"+ad_id);
		ad_form.hide();
		loader.show();
	}

	function completeLoading(request, ad_id){
		var ad_form = $("form_wrapper_"+ad_id);
		var loader = $("loader_"+ad_id);
		loader.hide();
		ad_form.show();
	}


	function setUpAds(ads_html){
		var ad_unit = $("ad_unit_"+ad_unit_id);
		ad_unit.update(ads_html);
		var ads = $$(".ad");
		ads.each(function(ad, i) {
				var ad_id = ad.id.gsub("ad_","");
				var ad_form_id = ad.id.gsub("ad_","ad_form_");
				var ad_image = ad.down(".ad_image");
				var ad_copy = ad.down(".ad_copy");
				Element.insert(ad_image, {'before':"<div class='ad_actions'></div>"});
				var ad_actions = ad.down(".ad_actions");
				var cbx = Element("input", {'id': 'opt_in_'+ad_id, 'class': 'opt_in', 'type': 'checkbox', 'value': ad_id});
				//alert(prechecked.include(ad_id))
				//cbx.checked = prechecked.include(ad_id);
				cbx.observe('click', toggleForm);
				ad_actions.insert(cbx);
				ad_copy.insert("<div class='ad_form' id='"+ad_form_id+"' style='display:none;'></div>");
				if(i > ad_limit-1){
					ad.addClassName("hidden_ad");
					ad.hide();
				}
				if(prechecked.include(ad_id)){
					//cbx.checked = true;
					cbx.click();
				}
	  });
	}

	document.observe('dom:loaded',function() {
	    var ad_unit = $("ad_unit_"+ad_unit_id);
			if(AJAXS_LOAD){
				ad_unit.insert("<div><img src='/images/loader-white.gif' class='loading'></img></div>");
				var url = "/ad_units/"+ad_unit_id+"/display";
				new Ajax.Request(url, 
													{ method: 'get', 
														onSuccess: function(transport){
															setUpAds(transport.responseText);
														}
													});
			}
	});	
