var qs = 2;

$(document).ready(function() {
	
	//Blog
	if ($('.author_widget #user').length) {
		$('.author_widget #user').change(function() {
			var option = $('.author_widget #user option:selected');
			if (option.val() != '0') {
				var authorslug = option.val().replace(/\s+/g, '-').toLowerCase();
				window.location = "/author/" + authorslug;
			}
		});
	}
	
	if ($('#blogcats').length) {
		$('#blogcats input').change(function() {
			var cururl = String(window.location);
			cururl = cururl.split("?")[0];
			var cats = '';
			var querystring = '';
			
			$('#blogcats input:checked').each(function() {
				if (cats != '') {
					cats += ",";
				}
				cats += $(this).val();
			});

			if (cats != '') {
				querystring = "?c=" + cats;
			}
			window.location = cururl + querystring;
		});
	}

	
	//Sermons
	if ($('#sermon-drops').length) {
		$('#sermon-drops select').change(function() {
			var series = $('#series-drop').val();
			var cat = $('#cat-drop').val();
			var date = $('#month-drop').val();
			var pastor = $('#pastor-drop').val();
			var book = $('#book-drop').val();
			
			date = date.substr(7);
			domain = document.domain.length;
			date = date.substr(domain+1);
			var month = date.substr(5, 2);
			var year = date.substr(0, 4);
			
			var cururl = String(window.location);
			cururl = cururl.split("?")[0];
			
			var cats = '';
			
			if (series != 0) {
				cats += series;
			}
			
			if (book != 0) {
				if (cats != '') {
					cats += ",";
				}
				cats += book;
			}
			
			if (cat != 0) {
				if (cats != '') {
					cats += ",";
				}
				cats += cat;
			}
			
			var querystring = '';
			
			if (cats != '') {
				querystring = "?c=" + cats;
			}
			
			if (month != '') {
				if (querystring != '') {
					querystring += "&";
				} else {
					querystring += "?";
				}
				querystring += "mo=" + month + "&y=" + year;
			}
			
			if (pastor != 'all') {
				if (querystring != '') {
					querystring += "&";
				} else {
					querystring += "?";
				}
				querystring += "p=" + pastor;
			}
			
			// if (book != 'all') {
			// 				if (querystring != '') {
			// 					querystring += "&";
			// 				} else {
			// 					querystring += "?";
			// 				}
			// 				querystring += "b=" + book;
			// 			}
			
			window.location = cururl + querystring;
		});
		
		if (querySt('c') != null && querySt('c') != '') {
			var catsarray = querySt('c').split(",");

			$('#series-drop option').each(function() {
				for (i=0;i<catsarray.length;i++) {
			    	if ($(this).val() == catsarray[i]) {
			        	$(this).attr('selected', 'selected');
			    	}
				}
			});

			$('#cat-drop option').each(function() {
				for (i=0;i<catsarray.length;i++) {
			    	if ($(this).val() == catsarray[i]) {
			        	$(this).attr('selected', 'selected');
			    	}
				}
			});
			
			$('#book-drop option').each(function() {
				for (i=0;i<catsarray.length;i++) {
			    	if ($(this).val() == catsarray[i]) {
			        	$(this).attr('selected', 'selected');
			    	}
				}
			});
		}

		$('#month-drop option').each(function() {
		    if ($(this).val() == "http://" + document.domain + "/" + querySt('y') + "/" + querySt('mo') + "/") {
		        $(this).attr('selected', 'selected');
		    }
		});
		
		$('#pastor-drop option').each(function() {
		    if ($(this).val() == unescape(querySt('p'))) {
		        $(this).attr('selected', 'selected');
		    }
		});
	}
	
	//Events Calendar
	
	if ($('#fullcalendar').length) {
		var oneday = 86400;
		var onemonth = oneday*30;
		var sixmonths = oneday*183;
		var oneyear = oneday*365;
		
		$('#fullcalendar').fullCalendar({
			events: function(start, end, callback) {
					$.ajax({
			            url: 'http://' + document.domain + '/wp-content/themes/redemption/eventservice.php?fields=nocontent&' + getCatsAndLocs(),
			            dataType: 'json',
						data: {
							start: Math.round((start.getTime() / 1000) - sixmonths),
							end: Math.round(end.getTime() / 1000 + oneyear)
							// start: Math.round((start.getTime() / 1000)),
							// end: Math.round(end.getTime() / 1000)
						},
			 			success: function(data) {
							var events = [];
							var timezone = 25200000;
							var fullday = 86400;
							var allday;
							
				
							$.each(data, function() {
								var eventurl = "http://" + location.host + "/event/" + this["post_name"];
										if ((this["enddate"] - this["startdate"]) > fullday) {
											allday = true;
										} else {
											allday = false;
										}
										events.push({
											title: this["post_title"],
											start: new Date(this["startdate"]*1000+timezone),
											end: new Date (this["enddate"]*1000+timezone),
											allDay: allday,
											className: this["campus"],
											id: this["ID"],
											url: eventurl
										});
							});
						callback(events);
						}
	   				});
				},
				timeFormat: 'h(:mm)TT - '
		});
		
		if ($('.calendar #events-top').length) {
			eventstopchecking();
			$('#events-top input').change(function() {
				eventstopchecking();
				$('#fullcalendar').fullCalendar('refetchEvents');
			});
		}
		
		if ($('.calendar #sidebar-cat').length) {
			sidebarcatchecking($('#checkallcats'));
			$('#sidebar-cat input').change(function() {
				sidebarcatchecking($(this));
				$('#fullcalendar').fullCalendar('refetchEvents');
			});
		}
	}
	
	
	//Events
	
	if ($('.upcoming #events-top').length) {
		eventstopchecking();
		$('#events-top input').change(function() {
			eventstopchecking();
			loadEventslist(1);
		});
	}
	
	if ($('.upcoming #sidebar-cat').length) {
		sidebarcatchecking($('#checkallcats'));
		$('#sidebar-cat input').change(function() {
			sidebarcatchecking($(this));
			loadEventslist(1);
		});
	}
	
	function eventstopchecking() {
		var boxlength = $('#events-top input').length;
		var boxeschecked = 0;
		for (i=0;i<boxlength;i++) {
			if ($('#events-top input').eq(i).attr('checked') == true) {
				boxeschecked++;
			}
		}
		if (boxeschecked == 0) {
			$('#events-top input').attr('checked','true');
		}
	}
	
	function sidebarcatchecking(thisone) {
		var boxlength = $('#sidebar-cat input').length;
		var boxeschecked = 0;
		for (i=0;i<boxlength;i++) {
			if ($('#sidebar-cat input').eq(i).attr('checked') == true) {
				boxeschecked++;
			}
		}
		if (boxeschecked == 0) {
			$('#checkallcats').attr('checked','true');
		} else if (boxeschecked == (boxlength-1) && $('#checkallcats').attr('checked') == false) {
			$('#sidebar-cat input').removeAttr('checked');
			$('#checkallcats').attr('checked','true');
		} else if (thisone.attr("id") == "checkallcats") {
			$('#sidebar-cat input').removeAttr('checked');
			$('#checkallcats').attr('checked','true');
		} else {
			$('#checkallcats').removeAttr('checked');
		}
	}

	var searchDefault = "I'm looking for...";

	$('#s').blur(function() {
		if ($(this).val() == '') {
			$(this).val(searchDefault);
			$(this).removeClass('typing');
		}
	});

	$('#s').focus(function() {
		if ($(this).val() == searchDefault) {
			$(this).val('');
			$(this).addClass('typing');
		}	
	});

	if ($('#content-feed').length) {
		// console.log($('#content-feed .post-title').height());
		
		$('#content-feed .content-post .info').each(function() {
			var excerpt = $(this).children('.excerpt').html();
			var newExcerpt;
			var title = $(this).children('.post-title');
			var lineLength = 40;
			var charLimit;
			if (title.height()<30) {
				charLimit = 3*lineLength;
				 newExcerpt = excerpt.substr(0,charLimit) + "...";
			} else if (title.height()<55) {
				charLimit = 1*lineLength;
				 newExcerpt = excerpt.substr(0,charLimit) + "...";
			} else {
				charLimit = 1*lineLength;
				newExcerpt = excerpt.substr(0,charLimit) + "...";
			}
			$(this).children('.excerpt').html(newExcerpt);
		});
	}
	
	if ($('#featured-content').length) {
		var prevFeatured = 1;
		var currentFeatured = 1;
		var totalFeatured = $('.featured-item').length;
		var featuredTimeout;
		if (location.href == 'http://' + document.domain + '/im-new-here/' || location.href == 'http://' + document.domain + '/im-new-here') {
			var stopped = true;
		} else if (totalFeatured > 1) {
			var stopped = false;
			setNextFeatured();
		} else {
			var stopped = true;
		}
		// console.log(location.href);
		// console.log('http://' + document.domain + '/im-new-here/');
		// if (location.href == 'http://' + document.domain + '/im-new-here/' || location.href == 'http://' + document.domain + '/im-new-here') {
		// 	var stopped = true;
		// }
		
	
		$("#featured-content-inner").mouseover (
			function () {
				stopRotate();
			}
		);
		
		$("#featured-content-inner").mouseout (
			function () {
				if (stopped == false) {
					setNextFeatured();
				}
			}
		);

		$('.video-player').mouseover(function() {
			stopRotate();
		});
		
		$('#jplayer_play').click(function() {
			stopRotate();
		});
	
		$('.number').click(function() {
			numberClicked($(this).html());
			stopRotate();
			return false;
		});
		/*if ($('.number').length > 0) {
			$("#featured-content-inner").height($('#featured-1').outerHeight() + $('#featured-1 .info').outerHeight());
		}*/
		
	}
	
	function stopRotate() {
		if (featuredTimeout) {
			clearTimeout(featuredTimeout);
		}
		stopped = true;
	}
	
	function setNextFeatured () {
		window.clearTimeout(featuredTimeout);
		featuredTimeout = window.setTimeout(function() {
				prevFeatured = currentFeatured;
				currentFeatured++;
				if (currentFeatured > totalFeatured) {
					currentFeatured--;
					return false;
				}
				gotoFeatured (prevFeatured, currentFeatured);
			},
			6000
		);
	}

	function gotoFeatured (prevFeatured, currentFeatured) {
		// $('#featured-' + prevFeatured).fadeOut('slow');
		// $('#featured-' + currentFeatured).fadeIn('slow');
		$('#featured-' + prevFeatured).animate({opacity: 0}, 'slow', function() { $('#featured-' + prevFeatured).css('left', '-9999px'); });
		$('#featured-' + currentFeatured).css('left', '0px');
		$('#featured-' + currentFeatured).animate({opacity: 1}, 'slow');
		$('#featured-numbers span').removeClass('featured');
		$('#featured-numbers #number-' + currentFeatured).addClass ('featured');
		setNextFeatured();
	}

	function numberClicked (clickedFeatured) {
		stopped = true;
		window.clearTimeout(featuredTimeout);
		if (clickedFeatured != currentFeatured) {
			prevFeatured = currentFeatured;
			currentFeatured = clickedFeatured;
			// $('#featured-' + prevFeatured).fadeOut('slow');
			// 		$('#featured-' + currentFeatured).fadeIn('slow');
			$('#featured-' + prevFeatured).animate({opacity: 0}, 'slow', function() { $('#featured-' + prevFeatured).css('left', '-9999px'); });
			$('#featured-' + currentFeatured).css('left', '0px');
			$('#featured-' + currentFeatured).animate({opacity: 1}, 'slow');
			$('#featured-numbers span').removeClass('featured');
			$('#featured-numbers #number-' + currentFeatured).addClass ('featured');
			
			//$("#featured-content-inner").height($('#featured-' + currentFeatured).outerHeight() + $('#featured-' + currentFeatured + ' .info').outerHeight());
		}
	}
	
});

function getCatsAndLocs() {

	var campus = querySt('campus');
	if (campus != undefined) {
		qs--;
	}
		
	if (qs > 0 && qs < 2) {
		locslist = campus;
		$('#events-top input').removeAttr('checked');
		
		var boxlength = $('#events-top input').length;
		for (i=0;i<boxlength;i++) {
			if ($('#events-top input:eq(' + i + ')').val() == campus) {
				$('#events-top input:eq(' + i + ')').attr('checked','true');
			}
		}
		
	} else {
	
		var locslist = '';
		$('#events-top input').each(function() {
			if ($(this).is(':checked')) {
				locslist += $(this).val() + ",";
			}
		});
		locslist = locslist.slice(0, -1);
	
		if (locslist == "churchwide,tempe,arcadia,gilbert,gateway") {
			locslist = '';
		}
	
	}

	var catslist = '';
	$('#sidebar-cat input').each(function() {
		if ($(this).attr('checked') == true) {
			if ($(this).val() != "") {
				catslist += $(this).val() + ",";
			}
		}
	});
	catslist = catslist.slice(0, -1);

	if (catslist == "on") {
		catslist = '';
	}
	
	var params = '';
	
	if (locslist != '') {
		if (params != '') {
			params += "&"
		}
		params += 'locs=' + locslist;
	}
	
	if (catslist != '') {
		if (params != '') {
			params += "&"
		}
		params += "cats=" + catslist;
	}
	return params;
}

function loadEventslist(page) {
	$('#eventscover').show();
	$('#eventsloader').show();
	
		var ajaxurl = 'http://' + document.domain + '/wp-content/themes/redemption/eventservice.php?fields=nocontent&' + getCatsAndLocs();
		var loadurl = "http://" + document.domain + "/wp-content/themes/redemption/eventslist.php";
		
		$.ajax({
			url: ajaxurl,
		 	success: function(data) {
				$('#eventlist').load(loadurl, { data: eval('(' + data + ')'), curpage: page }, function() {
				setupClicks(page);
				fireDatePicker(data);
			});
		  }
		});
}

function setupClicks(curpage) {
	$('.eventspaging .page').unbind();
	$('.eventspaging .page').click(function() {
		loadEventslist($(this).html());
		window.location.hash='top';
		return false;
	});
	
	$('.eventspaging .prev').unbind();
	$('.eventspaging .prev').click(function() {
		loadEventslist(parseInt($('.eventspaging .current').html())-1);
		window.location.hash='top';
		return false;
	});	
	
	$('.eventspaging .next').unbind();
	$('.eventspaging .next').click(function() {
		loadEventslist(parseInt($('.eventspaging .current').html())+1);
		window.location.hash='top';
		return false;
	});
}

function fireDatePicker(data) {
	if ($('.hasDatepicker').length == 0) {
		$('#smcal').datepicker({
			beforeShowDay: function(date) {
				var timezone = 25200000;
				var highlight = false;
				var evtitle = '';
				var evid = '';
				var evnum = 0;
				var olddate = '';
				var savedate = '';
				var parsedData = $.parseJSON(data);
				$.each(parsedData, function() {
					
					olddate = this["startdate"];
					var evdate = new Date(olddate*1000 + timezone);
					var evmonth = evdate.getMonth();
					var evday = evdate.getDate();
					var evyear = evdate.getFullYear();
					
					if (date.getMonth() == evmonth && date.getDate() == evday && date.getFullYear() == evyear) {
						// [disable/enable, class for styling appearance, tool tip]
						highlight = true;
						evtitle = this["post_title"];
						evid = this["post_name"];
						evnum++;
						savedate = this["startdate"];
					}
				});
				
				var makedate = '';
				var mmonth = date.getMonth() + 1;
				if (mmonth < 10) {
					mmonth = "0" + mmonth;
				}
				var mday = date.getDate();
				if (mday < 10) {
					mday = "0" + mday;
				}
				makedate = "d" + mmonth + mday + date.getFullYear();
				
				if (highlight == true) {
					if (evnum > 1) {
						return [true, "highlight multi date-" + savedate + " " + makedate, "Multiple events"];
					} else {
						return [true, "highlight single id-" + evid + " " + makedate, evtitle];
					}
				} else {
					return [true, ""];
				}
				
			},
			onSelect: function(dateText, inst) {
				dateClicked(dateText);
			},
			dayNamesMin: ['S', 'M', 'T', 'W', 'T', 'F', 'S']
		});
	}
}

function dateClicked(thedate) {
	var thenewdate = thedate.replace("/", "");
	thenewdate = thenewdate.replace("/", "");
	var datetd = $('.' + "d" + thenewdate);
	if (datetd.hasClass("highlight")) {
		if (datetd.hasClass('multi')) {
			$('#eventscover').show();
			$('#eventsloader').show();
			var classes = datetd.attr('class').split(/\s+/);

			$.each(classes, function(index, item) {
				var thisclass = item.substring(0,5);
				if (thisclass == "date-") {
					gotodate = item.substring(5);
					gotodate = Math.floor(gotodate/86400)*86400;
				}
			});

			var ajaxurl = 'http://' + document.domain + '/wp-content/themes/redemption/eventservice.php?fields=nocontent&';
			ajaxurl += 'date=' + gotodate;

			$.ajax({
				url: ajaxurl,
			 	success: function(data) {
					$('#eventlist').load("http://" + document.domain + "/wp-content/themes/redemption/eventslist.php", { data: eval('(' + data + ')'), curpage: 1, type: "single", date: gotodate }, function() {
					setupClicks(1);
					});
				  }
			});

			return false;
		} else {
			var classes = datetd.attr('class').split(/\s+/);
			var gotoslug = "error";
			$.each(classes, function(index, item) {
				var thisclass = item.substring(0,3);
				if (thisclass == "id-") {
					gotoslug = item.substring(3);
				}
			});

			window.location = "/event/" + gotoslug;

			return false;
		}
	} else {
		return false;
	}
}

function querySt(ji) {
	hu = window.location.search.substring(1);
	gy = hu.split("&");
	for (i=0;i<gy.length;i++) {
		ft = gy[i].split("=");
		if (ft[0] == ji) {
			return ft[1];
		}
	}
}
