//Attach event handlers here (jquery)
$j(document).ready(function(){
	// Store Search
	$j(function() {
		var cache = {},
				lastXhr,
				term;
		if($j('#tb_search').length)
			$j('#tb_search').autocomplete({
									delay: 100,
									source: 
										function(request,response) {
													term = request.term;
													// Check if we have this term in cach
													if (term in cache) {response(cache[term]);return;}
													lastXhr = $j.post("/ajaxsearch/store_search.php",{tb_search: term},function(data,status,xhr){cache[term] = data;if(xhr===lastXhr){response(data);}},'json');
											},
									select:
										function( event, ui ) {
												// Set the value for the search box (we want it to equal the default domain of store)
												var queryval = ui.item.path.slice(1)
												if(ui.item.path.slice(-4).indexOf('.') == -1)
													queryval = queryval+'.com';
												$j('#tb_search').val(queryval);
												// redirect the user to the store page
												window.location = ui.item.path;
												return false;
										}											
									})
									.data("autocomplete")._renderItem = function( ul, item ) {
										term=term.charAt(0).toUpperCase() + term.slice(1); // Uppercase first letter
										if(item.label.length>=20)item.label=item.label+'&hellip;'
										var listItem;
										var re = new RegExp('^'+term.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"),'i');
										if(item.value.match(re)) listItem="<a>" + item.value.replace(re,'<B>'+term+'</B>') + "</a>";
										else listItem = "<a>" + item.value + " <span style=\"color:#CECECE;font-size:12px;\">(" + item.label.replace(re,'<b style="color:#838383">'+term+'</b>') + ")</span></a>";
										return $j("<li></li>").data("item.autocomplete",item).append(listItem).appendTo(ul);
									};
									
		});
	
	// Overlay
	var overlay_obj;
	$j(function(){
			$j("a.overlay").overlay({
								mask:{color:'#3b3b3b',loadSpeed:200,opacity:0.5},
								onBeforeLoad:setupOverlay,
								onClose:closeOverlay
			});
	});
});

// Activate overlay for a trigger programmatically
function activateOverlay(link) {
	$j(link).overlay({mask:{color:'#3b3b3b',loadSpeed:200,opacity:0.5},onBeforeLoad:setupOverlay,onClose:closeOverlay});
	$j(link).overlay().load();
	return false;
}

function setupOverlay() {
	var overlay_div = this.getOverlay();
	var overlay_trigger = this.getTrigger();
	overlay_obj = overlay_trigger.overlay();
	overlay_div.width(overlay_trigger.attr("params").match(/overlay_width=(\d+)/)[1]);
	overlay_div.height(overlay_trigger.attr("params").match(/overlay_height=(\d+)/)[1]);
	overlay_div.find("#overlayiframe").attr('src', this.getTrigger().attr("href"));
}

function closeOverlay() {
	this.getOverlay().find("#overlayiframe").attr('src', '');
}

//Subscribe to our coupon newsletter (jquery)
function checkNewsletterRegistration()
{
	var filter=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if( !filter.test($j('#tb-newsletter-email').val()) )
	{
		alert('Please provide a valid email address');
		$j('#tb-newsletter-email').focus();
		return false;
	}
	else
	{
		p = {};
		p['email_address'] = $j('#tb-newsletter-email').val();
		$j.post('/cajax/newsletter_signup', p, function(data) {
			$j('#tb-newsletter-email').closest('.scoop, .border').html(data);
			_gaq.push(['_trackEvent', 'Newsletter', 'New Subscriber']);
		});
	}
}

//############################
//TOGGLE CAUSE DISPLAY AT TOP OF PAGES
//############################
function toggle_cause_display(id)
{
	$j.cookie('cause_display', id, { expires: 365, path: '/' });
	if (id==1){
		$j('#cause-line').slideUp();
		$j('#cause-box').slideDown();
	} else {
		$j('#cause-box').slideUp();
		$j('#cause-line').slideDown();
	}
}

// Utility to bookmark CouponChief.com (used on store pages, when no coupons are available)
function bookmark(){
	var url = "http://www.couponchief.com";
	var title = "Online Coupons from Coupon Chief";
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
		window.external.AddFavorite(url,title);
	} else if (navigator.appName == "Netscape") {
		window.sidebar.addPanel(title,url,"");
	} else {
		alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
	}
	return false;
}

// Events and Widgets to load AFTER the page is completely done loading (does not count against page load time)
$j(window).load(function() {
	// Newsletter subscription
	$j('#newsletter-sub').submit(function(event) {
		event.preventDefault();
		checkNewsletterRegistration();
	});
	
	// Load the background image for the user tooltip after window load
	$j('.tooltip').css('background', 'url(http://c498344.r44.cf2.rackcdn.com/user_tooltip1.png) no-repeat');
 	
	// Load the avatar images
	$j(function(){
		$j('.has-avatar').css('background',function(index,val){return 'url('+$j(this).attr('data-avatar')+') no-repeat scroll 0 0 transparent';});
	});
	
	// Load the big facebook like box as an iframe
 	if($j('#fb-like-box-iframe').length)
 			$j('<iframe />',{frameborder:0,scrolling:'no',src:'http://www.facebook.com/connect/connect.php?id=329439005229&connections=5&stream=0'}).appendTo($j('#fb-like-box-iframe'));
 	else if($j('#fb-like-box-iframe-small').length)
 			$j('<iframe />',{frameborder:0,scrolling:'no',src:'http://www.facebook.com/connect/connect.php?id=329439005229&connections=4&stream=0'}).appendTo($j('#fb-like-box-iframe-small'));

	// Google Plus 1
 	if($j('#store-social-buttons').length){
 		var gp = document.createElement('script');
		gp.type = 'text/javascript';
  		gp.async = true;
 		gp.src = 'https://apis.google.com/js/plusone.js';
		
  		var s=document.getElementsByTagName('script')[0];
  		s.parentNode.insertBefore(gp, s);
 	}
 	
 	// Facebook JS so we can use the fb callback function
 	if ($j('#fblike-button').length) {
	 	window.fbAsyncInit = function() {
			FB.init({appId: '170104573041662', status: true, cookie: true, xfbml: false, oauth: true});
			FB.XFBML.parse(document.getElementById('fblike-button'));
			FB.Event.subscribe('edge.create', function(targetUrl) {
	 			_gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);
			});
			FB.Event.subscribe('edge.remove', function(targetUrl) {
	 			_gaq.push(['_trackSocial', 'facebook', 'unlike', targetUrl]);
			});
		};
		(function() {
			var e = document.createElement('script'); e.async = true;
			e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
	 		s=document.getElementsByTagName('script')[0];
	 		s.parentNode.insertBefore(e, s);
		}());
 	}
});



