var prev_search_val = "";
var modal_divs = new Array("share_code_div", "subscription_div", "messages_div", "flag_code_div", "messaging");

function send_share_request(frm, submit_name, submit_value) { 
	var url = "/share";

	form_fields = form_submit(frm, submit_name, submit_value);
	makeRequest(url, form_fields);	

	frm.action = "javascript:void(0)";
}

function send_flag_request(frm, submit_name, submit_value) { 
	var url = "/flag";

	form_fields = form_submit(frm, submit_name, submit_value);
	makeRequest(url, form_fields);	

	frm.action = "javascript:void(0)";
}

function send_subscribe_request(frm, submit_name, submit_value) { 
	var url = "/subscribe";

	form_fields = form_submit(frm, submit_name, submit_value);
	makeRequest(url, form_fields);	

	frm.action = "javascript:void(0)";
}

function ajax_search(search_input) { 
	if (search_input != prev_search_val) { 
		var url = "/search?search_input="+search_input;
		makeRequest(url, null);
		prev_search_val = search_input;
	}
}

function show_warning(code) {
	document.getElementById('warn_'+code).style.display = 'block';
}

function hide_warning(code) { 
	document.getElementById('warn_'+code).style.display = 'none';
}

function update_page(http_request) {
	try {
		if (http_request.readyState == 4) {
	        if (parseInt(http_request.status) == 200) {
	        	var response = http_request.responseText;
	        	if (response) { 
		        	if (response.length > 0) { 
		        		if (response.indexOf("messages") >= 0) {
		        			update_div('messages_div', response); 
		
			        		// specific to grabacode / voucher
							try { toggle_lightbox('lightbox_cover', 'share_code_div', true); } catch (e) {}
							try { toggle_lightbox('lightbox_cover', 'flag_code_div', true); } catch (e) {}
							try { toggle_lightbox('lightbox_cover', 'subscription_div', true); } catch (e) {}
		
							toggle_lightbox('lightbox_cover', 'messages_div', false);
							//http_request = false;
							reload_codes();
						} else {
							if (response.indexOf("Share a Code") >= 0) { 
								update_div('share_code_div', response);
								// generate a new captcha
								img = document.getElementById("captcha_img");
								img.src = get_domain_from_url()+"/visual-captcha.php?"+Math.random();
							} else if(response.indexOf("*ajax_sug_count*") >= 0) {
								var response_info = response.split('*ajax_sug_count*');
								num_suggestions = response_info[0];
								update_div('search-suggest', response_info[1]);
								getting_suggestions = false;
								set_suggest_box(num_suggestions);
								if (queued_get_suggests  || document.getElementById('search_input').value.length > 1) {
									queued_get_suggests = false;
									refining_search_term();
								}
							} else { 
		        				update_div('mid-wrapper', response);
							}
						}
					}
				}
	        }
	    	try { recalc(); } catch (x) {}
	    	try { document.recalc(); } catch (x) {}
	    }
	} catch(error) {
	//	alert(error.message);
	}
	//http_request = false;
}

function reload_codes() {
	var content = document.getElementById('mid-wrapper').innerHTML;
	if (content.indexOf("coupon-details") >= 0) { 
		// we are looking at codes, and an ajax request may have affected our view.
		// NOTE: this function won't work if we have an empty merchant.  ie: a merchant
		// that has no codes.
		makeRequest(window.location.href, "type=ajax");
	}
}

function share_code() { 
	for(var i = 0; i < document.forms["frm_share"].elements.length; i++) {
		var elem = document.forms["frm_share"].elements[i];
		if ((elem.type != "button") && (elem.type != "submit")) { 
			elem.value = "";
		}
	}
	img = document.getElementById("captcha_img");
	img.src = get_domain_from_url()+"/visual-captcha.php?"+Math.random();
	toggle_lightbox("lightbox_cover", "share_code_div", false);
}

function get_domain_from_url() { 
	var http_host = window.location.href;
	var len = http_host.length;
	var x = 0;

	for (var i = 0; i < len; i++) { 
		if (http_host.charAt(i) == "/") { 
			x++;
		}
		
		if (x == 3) { 
			http_host = http_host.substr(0, i);
			break;
		}
	}
	return http_host;
}

function grab_code(merchant_id, network, link, code) { 
	// copy the code to the clipboard	
	copy_to_clipboard(code);
	// log the click
	log_click(merchant_id, network, link, code);
	// open the url, passing our affiliate code
	window.open(link);
}

function log_click(merchant_id, network, link, code) { 
	var url = "/click"+
				"?merchant_id="+merchant_id+
				"&network="+network+
				"&code="+code+
				"&link="+escape(link);

	// google analytics tracking
	try { 
		pageTracker._trackPageview(url);
	} catch (e) {}

	makeRequest(url, null);
}

function subscribe(category_id, merchant_id) { 
	var frm = document.forms["frm_subscribe_ajax"];
	frm.elements["category_id"].value = category_id;
	frm.elements["merchant_id"].value = merchant_id;
	frm.elements["email_address"].value = "";
	toggle_lightbox("lightbox_cover", "subscription_div", false);
}

function flag_code(code_id) { 
	for(var i = 0; i < document.forms["frm_flag"].elements.length; i++) { 
		if (document.forms["frm_flag"].elements[i].type != "button") {
			if (document.forms["frm_flag"].elements[i].type == "radio") { 
				document.forms["frm_flag"].elements[i].checked = false;
			} else { 
				document.forms["frm_flag"].elements[i].value = "";
			}
		}
	} 
	document.forms["frm_flag"].elements["code_id"].value = code_id;
	toggle_lightbox("lightbox_cover", "flag_code_div", false);
}

function copy_to_clipboard(code) {
	if (window.clipboardData) {
		window.clipboardData.setData("Text", code);
	} else {
		var flashcopier = 'flashcopier';
		if(!document.getElementById(flashcopier)) {
			var divholder = document.createElement('div');
		    divholder.id = flashcopier;
		    document.body.appendChild(divholder);
		}
	    document.getElementById(flashcopier).innerHTML = '';
	    var divinfo = '<embed src="/_clipboard.swf" FlashVars="clipboard='+escape(code)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
	    document.getElementById(flashcopier).innerHTML = divinfo;
	}
}