// function to request popup html
function timed_popup(page){
	
	var url = "how-to-buy/order-direct-popup/";
	// set phone number according to Brilliant tracking
	var telephone_number = $("order-direct-contact-telephone").innerHTML;
	
	new Ajax.Request(url, {
		method:'post',
		asynchronous:false,
		parameters:{'page':page, "timed_popup":true, "order_direct_telephone":telephone_number},
		onSuccess: function(transport){
			var result = eval('(' + transport.responseText + ')');
			if (result.msg != "OK") {
				//no popup received, do nothing
			} else {
				//popup returned, add it to the html and show it.
				/*var popup = new Element('div');
				popup.id = "order_direct_popup";
				popup.update(result.html);*/
				$("container").insert(result.html);
				setTimeout(function(){
					correct_view_timed();
				},0.1);
			}
		}	
	});
	
}

function callback_orderdirect_times_timed() {
	var val = this.value;
	new Ajax.Request("./how-to-buy/get-orderdirect-times/", {
		method: "post",
		parameters: "day="+val,
		onSuccess: function(transport) {
			var $response = transport.responseJSON;
			if ($response.msg!="OK") {
				return false;
			}
			// clear dropdown
			$("popup_calltime_timed").options.length = 0;

			if ($response.result_count > 0) {
				for (var i=0; i<$response.result_count; i++) {
					var txt = $response.txt[i];
					var val = $response.vals[i];
					$("popup_calltime_timed").appendChild(new Element("option", {"value":val}).update(txt));
				}
			}
		}
	});
}

function correct_view_timed(viewing_form) {
	if ($("timed-popup")) {
		var $offsets = document.viewport.getScrollOffsets();
		var $viewheight = document.viewport.getHeight();
		var $popheight = $("timed-popup").getHeight();

		var $orig = ($viewheight/2) - ($popheight/2);
		var $top = $offsets[1];

		if (viewing_form && $viewheight < $popheight) {
			$("timed-popup").setStyle({
				top: "20px"
			});
		} else {		
			$("timed-popup").setStyle({
				top:($orig+$top)+"px"
			});
		}
	}
}

function closeTimedPopup(){
	$("timed-popup").remove();
}

function submitTimedPopup(page_name){
	if (submitted) {
		return; // no dups
	}
	
	submitted = true;
	
	var form_name 				= $("popup_callBackConfirmForm");
	var data 					= $("popup_callBackConfirmForm").serialize();
	var error_submitted		= $("popup_error_submitted");
	var loader_div 			= $("popup_loading-form");
	var thanks_div 			= $("popup_thank_you");
	var divLogOrderNumber 	= $("popup_log_order_number");
	
	$("popup_errors").hide();
	
	// do JS validation here - not ideal, but no different to how we currently
	// do it on product pages
	$(error_submitted).update("");  // in case we had a prior error due to email
	$(form_name).hide();
	$(loader_div).show();
	
	new Ajax.Request("how-to-buy/submit/", {
		method:'post',
		parameters:data,
		onSuccess:function(transport) {
			submitted = false; // free up the form
			if (transport.responseJSON == null) {
				//alert("Error recieving response. Please try again");
				// as much as we've love to rely on this being the case, this will
				// actually be executed when someone clicks another link - what a pain
				return;
			}
			var result = transport.responseJSON;
			
			if (result.msg == "OK") {
				$(loader_div).hide();
				if (result.responseTime == true) {
					$("selected-time-timed").update(result.call_response);
				} else {
					if(result.startTime == "09:30") {
						result.startTime = "09:00";
					}                                                                               
					$("selected-time-timed").update(result.responseDay + " between "+ result.startTime +" and "+ result.endTime);
				}

				$('popup_intro-para').hide();
				$('popup_freephone').hide();
				$('popup_callback_error').hide();
				$('popup_form_body').hide();
				$(thanks_div).show();
				
				divLogOrderNumber.style.display = "block";
				var extra_tracking = $("extra-tracking");
				
				
				elementImg = document.createElement("img");
				elementImg.setAttribute("src","http://switch.atdmt.com/action/brmdfs_CallMeBackThankyou_3/v3/ato."+ result.order_number +"/atm1.1/atm2.1");
				elementImg.setAttribute("height", "1");
				elementImg.setAttribute("width", "1");
				extra_tracking.appendChild(elementImg);
				
				elementImg = document.createElement("img");
				elementImg.setAttribute("src","http://tbl.tradedoubler.com/report?organization=1348572&event=154472&leadNumber=" + result.order_number);
				elementImg.setAttribute("height", "1");
				elementImg.setAttribute("width", "1");
				extra_tracking.appendChild(elementImg);
				
				elementImg = document.createElement("img");
				elementImg.setAttribute("src", "http://www.googleadservices.com/pagead/conversion/1067618113/?label=0ysNCMX7URDBnor9Aw&script=0");
				elementImg.setAttribute("height", "1");
				elementImg.setAttribute("width", "1");
				extra_tracking.appendChild(elementImg);
				
				elementImg = document.createElement("img");
				elementImg.setAttribute("src", "http://ad.uk.doubleclick.net/activity;src=2228893;type=DFS-Mar;cat=DFS-Mar;ord=1");
				elementImg.setAttribute("height", "1");
				elementImg.setAttribute("width", "1");
				extra_tracking.appendChild(elementImg);
				
				elementImg = document.createElement("img");
				elementImg.setAttribute("src", "http://ad.yieldmanager.com/pixel?id=278562&id=278561&t=2");
				elementImg.setAttribute("height", "1");
				elementImg.setAttribute("width", "1");
				extra_tracking.appendChild(elementImg);
				
				elementImg = document.createElement("img");
				elementImg.setAttribute("src", "https://media.adrevolver.com/adrevolver/action?account=16440");
				elementImg.setAttribute("height", "1");
				elementImg.setAttribute("width", "1");
				extra_tracking.appendChild(elementImg);
				
				// Wired Minds for when the form was submitted
                                /*
				elementImg = document.createElement("img");
				elementImg.setAttribute("src","http://dfs.wiredminds.com/track/ctin.php?custnum=2501&wm_page_name=5_min_Popup_Submit&wm_group_name=Retail/OrderDirect&wm_campaign=&wm_milestone=HTB_Form_Any_Submit");
				elementImg.setAttribute("height", "1");
				elementImg.setAttribute("width", "1");
				extra_tracking.appendChild(elementImg);
                                */

				elementImg = document.createElement("img");
				elementImg.setAttribute("src","https://www.pricegrabber.com/conversion.php?retid=13003");
				elementImg.setAttribute("height", "1");
				elementImg.setAttribute("width", "1");
				extra_tracking.appendChild(elementImg);
				
				var elScripto = new Element("script", 
					{ "type":"text/javascript", "src":"http://view.atdmt.com/jaction/brmdfs_CallMeBackThankyouUAT_1/v3/ato."+result.order_number+"/[atm1.1/atm2.1]/" });
					
					extra_tracking.appendChild(elScripto);
				
				extra_tracking.style.display = "none";
				divLogOrderNumber.style.display = "none";
				
				
				return;
				
			}
			// if not, what was the problem?

			// assume errors aren't present - populate later if so
			
			var error_name 			= $("popup_error_name");
			var error_phone 		= $("popup_error_phone");
			var error_email		 	= $("popup_error_email");
			var error_alt_phone 	= $("popup_error_alt_phone");
			
			$(error_name).hide();
			$(error_phone).hide();
			$(error_alt_phone).hide();
			$(error_submitted).hide();
			
			switch (result.error_type) {
				case "FORM":
					// bad form data
					if (result.error.name != null && result.error.name != "") {
						$(error_name).update(result.error.name).show();
					}
					if (result.error.phone != null && result.error.phone != "") {
						$(error_phone).update(result.error.phone).show();
					}
					if (result.error.alt_phone != null && result.error.alt_phone != "") {
						$(error_alt_phone).update(result.error.alt_phone).show();
					}
					if (result.error.email != null && result.error.email != "") {
						$(error_email).update(result.error.email).show();
					}
					break;
				case "GENERAL":
					if (result.error_submitted != null && result.error_submitted != "") {
						$(error_submitted).update(result.error_submitted).show();
					}
					break;
				default:
					alert(result.msg);
					break;
			}
			$("popup_errors").show();
			$(loader_div).hide();
			$(form_name).show();
			
			// all ok?
			
		}
	});
}

Event.observe(window, 'load', function() {

	//after window has loaded, show the timed popup
	timed_popup("timed-popup");

});

