$(document).ready(function() {
	
	var zipEntered = false;
	var curZip = $("input#zip").val();
	if (curZip != '') {
		var zipEntered = true;
		$('#step1').css('background-image','url(/images/number1.gif)');
		$('#step2').css('background-image','url(/images/number2-on.gif)');
	}
	

	/* Zip code entry forms */
	
	$("#zipSearch").validate({
		'errorElement': "div",
		rules: {
			zip: {
				minlength: 5
			}
		},
		submitHandler: function(form) {
			$(form).ajaxSubmit({
				target: '#currentZipCode',
				success: function() {
					if (success == 0) {
						$('#zipSearch').append('<div class="error">Zip code not found in our database. Please try again.</div>');
					} else {
						if ($('#zipSearch').hasClass("secondary")) {
							$('.blueButton').attr("disabled","disabled");
							location.reload();
							return false;
						} else {
							zipEntered = true;
							scroll(0,0);
							$('#step1').css('background-image','url(/images/number1.gif)');
							$('#step2').css('background-image','url(/images/number2-on.gif)');
							$('#step2').effect('bounce', { times: 2 }, 300);
							$('#zipIntroText').html('Your Zip Code:');
							$('#zipSearch').hide();
							$('#changeZip').show();
							$('#currentZipCode').show();
						}
					}
				}
			});
		}
	});
	
	/* Member and advertiser signup forms */
	
	$("#advertiserSignup input#signup_code").blur(function(){		
		if ($(this).val() == ('FWEEP')) {			
			$('.billingFields input').removeClass('required');
			$('#advertiserSignup').attr('action', 'advertiser-profile.php');
		
			// fix freeform contents bug when using FWEEP
			var freeformContent = tinyMCE.get('freeform').getContent();
			$('textarea#freeform').val(freeformContent);
		}
	})
		
	$("#advertiserSignup").validate({
		rules: {
			password_first: "required",
			password_confirm: {
				equalTo: "#password_first"
			}
		},
		submitHandler: function(form) {
			$('input.blueButton').val('Processing...');
			$.post('process-advertiser.php', $(form).serialize(), function(data){
				form.submit();
			});
		}
	});
		
	/* Member profile edit form */
	$('#editMemberProfile').validate({
		rules: {
			password_confirm: {
				equalTo: "#password_first"
			}
		},
		submitHandler: function(form){
			$(form).ajaxSubmit({
				target: '.profileResults',
				beforeSubmit: function(){ $('#editMemberProfile .blueButton').val('Updating...'); },
				success: function(){
					$('.profileResults').fadeOut(400, function(){
						$('#editMemberProfile .blueButton').val('Submit Changes');
						$(this).fadeIn(400);
					});
				}
			});
		}
	});
	
	/* Share with Friend form */
	$('#sendToFriend').validate();
	
	$('#changeZip').click(function() {
		$('#currentZipCode').hide();
		$('#changeZip').hide();
		$('#step1').css('background-image','url(/images/number1-on.gif)');
		$('#step2').css('background-image','url(/images/number2.gif)');
		$('#step2').html('Click a Category');
		$('#step3').css('background-image','url(/images/number3.gif)');
		$('#zipSearch').show();
	});
	
	$('a.categoryChoice').click(function() {
		if (zipEntered != true) {
			scroll(0,0);
			$('#step1').effect('bounce', { times: 2 }, 300);
		} else {
			var curCategory = $(this).html();
			scroll(0,0);
			$('#step2').html('Category: <b>' + curCategory + '</b>');
			$('#step2').css('background-image','url(/images/number2.gif)');
			$('#step3').css('background-image','url(/images/number3-on.gif)');
			$('#step3').effect('bounce', { times: 2 }, 300);
			$('#chosenCategory').val(curCategory);
			$('#processCategory').submit();
		}
	});
	
	/* Coupon mailing */
	$("#generateCoupon :input").click(function() {
			var promo = $(this).attr('id');
			$('#generateCoupon').attr({ action: '/mail-coupon.php?promo=' + promo });
			$(this).addClass('clicked');
			$(this).attr("disabled","disabled");
			$(this).val('Generating...');
			$('#couponStatus').overlay({ top: 260 });
			var api = $("#couponStatus").data("overlay");
			api.load();
			
			$('#generateCoupon').ajaxSubmit({
				target: '#successMessage',
				success: function() {
					if (success == 1) {
						// show success message
						$('input.clicked').val('Coupon Sent!');
						$('#couponStatus').stop().fadeOut(400);
						api.close();
						$('#couponSuccess').overlay({ top: 260 });
						api = $("#couponSuccess").data("overlay");
						api.load();
						$('#couponSuccess').delay(2500).fadeOut(400);
						api.close();
					} else {
						// make the user log in
						$('#couponStatus').fadeOut(400);
						window.location = "/member-not-signed-in.php?promo=" + promo;
					}
				}
			});
			
			return false;
	});
	
	/* Tooltips on advertiser search page */
	$("a[title]").tooltip({
		effect: "fade",
		position: "top right",
		offset:  [0,-30]
	});
	
	/* Coupon creation - scroll sample coupon with page */
	// NOTE: This is temporarily disabled due to display problems on small/wide monitors
	/* var $scrollingDiv = $("#couponSample");

	$(window).scroll(function(){
	       $scrollingDiv
	              .stop()
	              .animate({"marginTop": ($(window).scrollTop()) + "px"}, "slow" );
	}); */
	
	// jQuery for filling out the sample coupon
	$("#coupon_description").change(function() {
		$("#cDescription").html($(this).val());
       });
	$("#coupon_restrictions").change(function() {
		$("#cRestrictions").html($(this).val());
	});
	$("#coupon_freeform").change(function() {
		$("#cFreeform").html($(this).val());
	});
	$("#duration").change(function() {
		$("#cExpiration").html("Expires in " + $(this).val() + " Days");
	});
	// select input/textarea text on focus
	$("#coupon_freeform").focus(function(){
		// only select if the text has not changed
		if (this.value == this.defaultValue) {
			this.value = '';
		}
	});
	
	$("#editCoupon").submit(function(){
		$(this).ajaxSubmit({
			target: '.couponResults',
			beforeSubmit: function(){ $('#editCoupon .blueButton').val('Updating...'); },
			success: function(){
				$('.couponResults').fadeOut(400, function(){
					$('#editCoupon .blueButton').val('Submit Changes');
					$(this).fadeIn(400);
				});
			}
		});
		
		return false;
	});
	
	/* Premium coupons - make them gold on creation page */
	
	$("#premium_coupon").change(function(){
		if(this.checked) {
			$("#couponSample").css("background","url('images/bg-gold.png') top left repeat-x #e4e3be");
			/* $('.hover').stop().animate({
	              'opacity': 1
	              }, 200); */
		} else {
			$("#couponSample").css("background","#fff");
			/* $('.hover').stop().animate({
	              'opacity': 0
	              }, 200); */
		}
	});
	
	/* Birthday datepicker */
	$("#birthday").datepicker({
		changeMonth: true,
		changeYear: false,
		dateFormat: 'mm/dd',
    		monthNamesShort: ['January','February','March','April','May','June','July','August','September','October','November','December']
	});
	
	/* Advertiser payment form - Calculate total */
	
	if ($('input.services'.length)) {
		var totalCost = 0;
		
		$('input.services').click(function(){

			if ($(this).is(':checked')) {
				if($(this).val() == 'service-all') {
					$('input.services').not(this).attr('checked','checked');
					totalCost = 997;
				} else {
					if ($('input.service1').is(':checked') && $('input.service2').is(':checked') && $('input.service3').is(':checked')) {
						$('input.services.all').attr('checked','checked');
						totalCost = 997;
					} else {
						if($('input.services.all').not(':checked')) {
							totalCost += parseInt($(this).val());
						}
					}
				}
			} else {
				if($(this).val() == 'service-all') {
					$('input.services').not(this).attr('checked',false);
					totalCost = 0;
				} else {
					$('input.services.all').attr('checked',false);
					totalCost = 0;
					$('input.services.single:checked').each(function(){
						totalCost += parseInt($(this).val());
					});
				}
			}
			
			$('input#ssl_amount').val(totalCost);
			$('.order-amount').html(totalCost);
		});
	}
});

/* Analytics link tracking */
function recordOutboundLink(link, category, action) {
	console.log('recording outbound link for ' + action);
	_gat._getTrackerByName()._trackEvent(category, action);
	setTimeout('document.location = "' + link.href + '"', 500);
}

// ADVERTISERS: Deleting of coupons and images
function confirmDelete(type,id,num) {
	if (type == 'coupon') {
		if (confirm("Are you sure you want to delete this coupon?")) {
			$.post("/coupon-delete.php", { coupon_id: id }, function(data){
				location.reload();
			});
		}
	} else if (type == 'image') {
		if (confirm("Are you sure you want to delete this image?")) {
			$.post("/image-delete.php", { image_path: id, image_num: num }, function(data){
				location.reload();
			});
		}
	}
}

function setMainImage(path) {
	$.post("/image-set-main.php", { path: path }, function(data){
		location.reload();
	});
}

// Reviews section

var vote;
var api;
$(document).ready(function() {

	var overlayTrig = $(".toolsOverlay").overlay(
		{  mask: {
			color: '#6293f0',
			loadSpeed: 200,
			opacity: 0.7
		},
		closeOnClick: false
     });

	api = $(".toolsOverlay").data("overlay");
});

function methodRequest(strURL, strParams){
	var xmlHttp;

	if(window.XMLHttpRequest){
		var xmlHttp = new XMLHttpRequest();
	} else if(window.ActiveXObject){
		var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}

	xmlHttp.open('POST', strURL, true);
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.setRequestHeader("Content-length", strParams.length);
	xmlHttp.setRequestHeader("Connection", "close");
	
	for (x in xmlHttp) {
		x++
	}
	xmlHttp.onreadystatechange = function(){
		if (xmlHttp.readyState == 4){
			updateSendReview(xmlHttp.responseText);
		}
	}

	xmlHttp.send(strParams);
}

function starVote(id){
	for (i=1; i<=4; i++){
		if (i <= id){
			document.getElementById("star"+i).src = "/images/star_full.png";
		} else {
			document.getElementById("star"+i).src = "/images/star.png";
		}
	}
	
	if(id == 1){
		 document.getElementById('startype').innerHTML = 'Poor';
	} else if(id == 2){
		document.getElementById('startype').innerHTML = 'Fair';
	} else if(id == 3){
		document.getElementById('startype').innerHTML = 'Good';
	} else if(id == 4){
		document.getElementById('startype').innerHTML = 'Excellent';
	} else {
		document.getElementById('startype').innerHTML = '';
	}
}

function returnVote(){
	var sel = document.getElementById('vote').value;
	
	for (i=1; i<=4; i++){
		if (i <= sel){
			document.getElementById("star"+i).src = "/images/star_full.png";
		} else {
			document.getElementById("star"+i).src = "/images/star.png";
		}
	}
	
	if(sel == 1){
		 document.getElementById('startype').innerHTML = 'Poor';
	} else if(sel == 2){
		document.getElementById('startype').innerHTML = 'Fair';
	} else if(sel == 3){
		document.getElementById('startype').innerHTML = 'Good';
	} else if(sel == 4){
		document.getElementById('startype').innerHTML = 'Excellent';
	} else {
		document.getElementById('startype').innerHTML = '';
	}
}

function voteStar(vote){
	if(vote > 4){
		vote = 0;
	}
	
	document.getElementById('vote').value = vote;
	returnVote();
}

function sendReview(){
	var adv_id = document.getElementById('adv_id').value;
	var vote = document.getElementById('vote').value;
	var customer = document.getElementById('customer').value;
	var msg = document.getElementById('msg').value;
	
	if(msg == "" || vote == ""){
		alert("Please fill out all required fields.");
	} else {
		var params = "vote="+vote+"&customer="+customer+"&msg="+msg+"&adv_id="+adv_id;
		methodRequest('/write_review.php', params);
	}
	
	api.close();
}

function updateSendReview(sel){
	document.getElementById('vote').value = "";
	document.getElementById('msg').value = "";
	
	if(sel == "success"){
	} else {
		alert("Error: review not posted. Please contact support.");
	}
}

function noAuth(){
	var cur_page = encodeURIComponent(location.href);
	window.location = "/member-not-signed-in.php?p=" + cur_page;
}
