var searchTerm = '';
var searchType = '';
var activeTab = false;
var usingCalendar = false;

var offsets = {
	".tab_popup": 586,	
	"#smart_search_wrapper": 790
}

function smartSearch(){
	var newTerm = $("#smart_search_input").val();

	if(newTerm == ''){ $("#smart_search_results").hide(); }
    if(newTerm == searchTerm){ return true; }
    searchTerm = newTerm;
    
    $.post('/smart_search', {'q' : searchTerm}, function(data, status){
		data = eval(data);

		if(searchTerm == $("#smart_search_input").val()){
			var list = '<ul>';
			var className = "alt";
			
			if(data){
			jQuery.each(data, function(i, item) {
				if(className == "alt"){
					className = '';
				}else{
					className = "alt";
				}
				list += "<li class='" + className + "' onclick=\"javascript: location.href='" + item['url'] + "';\"><a href='" + item['url'] + "'>" + item['term'] + "</a></li>";
			});
			}
			list += "</ul>";
			
			$("#smart_search_results").html('');
			$("#smart_search_results").append(list);
			
			if(data.length){
				$("#smart_search_results").show();
			}else{
				$("#smart_search_results").hide();
			}
			
			$.keynav.reset();
			$("#smart_search_results li").keynav("keynav_focusbox", "");
			$("#smart_search_results li:first").addClass('keynav_focusbox');
		}
    });
    
}

function adjustOffsets(){	
	var pos = $("#phone_number").position()
	var o = Math.round(pos['left']);
	
	if(o < 0){ o = 0};
	$.each(offsets, function(element, offset){
		var left = offset + o;
		$(element).css({'left': left});
	});
	$("#smart_search_wrapper").show();
}

function displayHeaderPopup(tabName){
	$("img.nav_tab_overlay").hide();
	$("img.nav_tab_overlay_active").hide();
	$(".tab_popup").hide();
	usingCalendar = false;
	if(activeTab == tabName || !tabName){
		activeTab = false;
		return true;
	}

	$("#tab_" + tabName).children("img.nav_tab_overlay_active").show();
	$("#tab_popup_" + tabName).show();
	activeTab = tabName;
}

function weekNumDescription(weekNum){
	var html = '';
	html += "Week numbers are used to refer to a specific week of the year that a timeshare can be used.  The exact dates will vary slightly from year to year.<br /><br />";
    
	if(weekNum == 0){
		html += "This is a <b>float</b> timeshare that can be used throughout the year.  Please contact us for date availability.";
	}else{
		html += "<b>Upcoming Week " + weekNum + " dates:</b><br /><br />";
		html += "<table width='100%' class='week_num_hint_table' border='0' cellpadding='0' cellspacing='0'>";
		html += "<tr><td><b>Year</b></td><td><b>First Day</b></td><td><b>Last Day</b></td></tr>"    

		var years = [];
		$.each(weekNums[weekNum], function(k){ years.push(parseInt(k)) });
		$.each(years.sort(), function(i, year){
			if(i <= 2){
				var yearString = year + '';
				//console.log(yearString);
				week = weekNums[weekNum][yearString];
				html += "<tr>";
				html += "<td>" + year + "</td>";
				html += "<td>" + week['f'] + "</td>";
				html += "<td>" + week['l'] + "</td>";
				html += "</tr>";
			}
		});                    
		html += "</table>";    
	}
	return html;
}

$(function(){
	
	//smart search
	$("#smart_search_input").keyup(function(){
        smartSearch();
    });

	$("#smart_search_input").change(function(){
        smartSearch();
    });
	
	$("#smart_search").submit(function(){
			var active = $("#smart_search_results li.keynav_focusbox");
			if(active){ active.click(); }
			return false;
	});
    	
    //preload images
    $("img.hover").each(function(i){
        jQuery("<img>").attr("src", this.src.replace("_inactive","_active"));
    });

    //set mouseovers
    $("img.hover").hover(
        function(){ this.src = this.src.replace("_inactive","_active"); },
        function(){ this.src = this.src.replace("_active","_inactive"); }
    );
   
	//create rounded corners for capsule divs
	$("div.capsule_borderless").prepend("<div class='left bottom_pad_10 5x5'><img src='/images/capsule_borderless_corner_tl.gif' class='5x5'/></div><div class='right bottom_pad_10 5x5'><img src='/images/capsule_borderless_corner_tr.gif' class='5x5' /></div><div class='clear'></div>").append("<div class='left top_pad_10 5x5'><img src='/images/capsule_borderless_corner_bl.gif' class='5x5'/></div><div class='right top_pad_10 5x5'><img src='/images/capsule_borderless_corner_br.gif' class='5x5' /></div><div class='clear'></div>");	
	$("div.capsule").prepend("<div class='capsule_top'><div class='left'><img src='/images/capsule_corner_tl.gif' /></div><div class='right'><img src='/images/capsule_corner_tr.gif' /></div><div class='clear'></div></div>").append("<div class='capsule_bottom'><div class='left'><img src='/images/capsule_corner_bl.gif' /></div><div class='right'><img src='/images/capsule_corner_br.gif' /></div><div class='clear'></div></div>");
	
	//header tabs
	$(window).click(function(event){
		if (usingCalendar) return true;
		displayHeaderPopup();
	});
	
	$('.tab_popup').click(function(event){
     event.stopPropagation();
 	});

	$("#tab_buy").click(function(event){
     	displayHeaderPopup('buy');
		event.stopPropagation();
 	});

	$("#tab_sell").click(function(event){
     	displayHeaderPopup('sell');
		event.stopPropagation();
 	});

	$("#tab_rent").click(function(event){
     	displayHeaderPopup('rent');
		event.stopPropagation();
 	});

	$("#tab_info").click(function(event){
     	displayHeaderPopup('info');
		event.stopPropagation();
 	});


	//tab hover actions
	$(".nav_tab").hover(function(e){
			$(e.target).children("img.nav_tab_overlay").show();
		}
	);
	$(".nav_tab_overlay").hover(function(e){
			//event is triggered by the parent hover
		},
		function(e){
			$(e.target).hide();
		}
	);
	
	var startTime = 0;
	$("img.nav_tab_overlay").each(function(e){
		startTime += 300;
		$(this).fadeTo(startTime, 0).fadeIn(600).fadeTo(800, 1).fadeOut(600);
	});
	
	$(".tab_popup").css({'top': headerHeight + 39});
	
	$(window).bind('resize', function() {
		adjustOffsets();
	});	
	
	adjustOffsets();
	
	$("#tab_popup_sell_form").submit(function(){
		var fail = false;
		$("#tab_popup_sell_form input").each( function(i){
				if( $(this).val() == '' ){
					if($(this).attr('name') != 'alt_phone'){ fail = true; }
				}
			}
		);
		if(fail){
			alert("Please enter data for each field.");
			return false;
		}
		return true;
	});
	
	//week number hints
	$("span.week_num").each(function(i){
		var el = $(this);
		var html = weekNumDescription(el.attr('title'));
		el.removeAttr('title');
		el.click(function(){ });
		el.simpletip({ content: html });
	});
	
	
	//datepicker
	Date.format = 'mm/dd/yyyy';
    $('.date-pick').datePicker({startDate:'01/01/2009'});
	

	
	$('#tab_popup_buy_input_start_date').bind(
			'dpClosed',
			function(e, selectedDates)
			{
				var d = selectedDates[0];
				if (d) {
					d = new Date(d);
					$('#tab_popup_buy_input_end_date').dpSetStartDate(d.addDays(1).asString());
				}
			}
		).bind(
			'dpDisplayed',
			function(e, div)
			{
				usingCalendar = true;
			}
		).dpSetOffset(-5, -310);

	$('#tab_popup_buy_input_end_date').bind(
		'dpClosed',
		function(e, selectedDates)
		{

			var d = selectedDates[0];
			if (d) {
				d = new Date(d);
				$('#tab_popup_buy_input_start_date').dpSetEndDate(d.addDays(-1).asString());
			}
		}
	).bind(
			'dpDisplayed',
			function(e, div)
			{
				usingCalendar = true;
			}
		).dpSetOffset(-5, -310);
		
	$('#tab_popup_rent_input_start_date').bind(
			'dpClosed',
			function(e, selectedDates)
			{
				var d = selectedDates[0];
				if (d) {
					d = new Date(d);
					$('#tab_popup_rent_input_end_date').dpSetStartDate(d.addDays(1).asString());
				}
			}
		).bind(
				'dpDisplayed',
				function(e, div)
				{
					usingCalendar = true;
				}
			).dpSetOffset(-5, -310);
	$('#tab_popup_rent_input_end_date').bind(
		'dpClosed',
		function(e, selectedDates)
		{
			var d = selectedDates[0];
			if (d) {
				d = new Date(d);
				$('#tab_popup_rent_input_start_date').dpSetEndDate(d.addDays(-1).asString());
			}
		}
	).bind(
			'dpDisplayed',
			function(e, div)
			{
				usingCalendar = true;
			}
		).dpSetOffset(-5, -310);
	
	
	
	var d = new Date();
	$("form.verify").append("<input type='hidden' name='v' value='" + d.getTime() + "' />");
});




