$(function() {

	// show slideshow navigation arrows if window is wide enough, otherwise hide
	$(window).width() < 1008 ? $('#slidenav').hide() : $('#slidenav').show();

	// initialize homepage slideshow
	$('#slideshow').cycle({
		timeout: 8000, // milliseconds between slide transitions (0 to disable auto advance)
		fx: 'custom', // choose transition - fade or custom
		cssBefore: { left: 828 }, // custom animation
		animIn:  { left: 0 },
		animOut: { left: -828 },
		prev: '#slideprev', // click trigger for next slide
		next: '#slidenext', // click trigger for previous slide
		pause: true, // true to enable "pause on hover"
		pauseOnPagerHover: true // true to pause when hovering over pager link
	});

	// initialize solution accordion
	$('#accordion').liteAccordion({
		containerWidth : 837,
		containerHeight : 288,
		headerWidth : 45,
		slideSpeed : 700,
		autoPlay : true,
		pauseOnHover : true,
		cycleSpeed : 8000
	});

	// make full li clickable in sub menus
	// $('#navigation ul li .sub ul li').click( function() {
	// 	window.location = $(this).find('a').attr('href');
	// 	return false;
	// });

	// allow sub menus to be toggled using their drop down arrows
	// $('#navigation ul li span').click( function() {
	// 	var sub = $(this).parent().parent().find('.sub');
	// 	sub.is(':hidden') ? sub.stop(true,true).slideDown(300) : sub.stop(true,true).slideUp(300);
	// 	return false;
	// });

	// scroll body to 0px on click
	// $('#back-to-top a').click(function () {
	// 	$('body,html').animate({
	// 		scrollTop: 0
	// 	}, 800);
	// 	return false;
	// });

	// search box fade animation and send request to google
	// javascript placeholder text if placeholder not supported
	var searchInput = $('#search-input');
	if (! ("placeholder" in document.createElement("input"))) {
		var placeholder = searchInput.attr('placeholder');
		if (searchInput.val() === '') searchInput.val(placeholder);
		searchInput.bind({
			focus: function() {
				$(this).parent().fadeTo(300,1);
				if ($(this).val() === placeholder) {
					this.plchldr = placeholder;
					$(this).val('');
				}
			},
			blur: function() {
				$(this).parent().fadeTo(300,0.5);
				if ($(this).val() === '' && $(this).val() !== this.plchldr) {
					$(this).val(this.plchldr);
				}
			}
		});
		$('#search-form').submit( function() {
			if ($(this).val() === $(this).attr('placeholder')) {
				$(this).val('');
			}
			googleSearch();
			return false;
		});
	} else {
		searchInput.bind({
		    focus: function() {
				$(this).parent().fadeTo(300,1);
		    },
		    blur: function() {
				$(this).parent().fadeTo(300,0.5);
		    }
		});
		$('#search-form').submit( function() {
			googleSearch();
			return false;
		});
	}

	// form validation
	$('#contact-form').formly({}, function() {
		var name = $('#name').val();
		woopraTracker.addVisitorProperty('name',name);
		if (freeEmail('#contact-form','#email')) {
			woopraTracker.pushEvent({name: 'Attempt to Use Free Email', user: name});
			return false;
		}

		var str = $('#contact-form').serialize();

		$.ajax({
			type: "POST",
			url: "/include/mail/mail.php",
			data: str,
			success: function(msg) {
				$('#contact-form').ajaxComplete(function(event,request,settings) {
					if(msg == 'OK') {
						$(this).replaceWith('<div id="form-success"><h1>Message Sent!</h1></div>');
						$('#form-success').fadeTo(0, 0).fadeTo(600, 1);
						setCookie('registered','true',90);
						woopraTracker.pushEvent({name: 'Filled Out Contact Form', user: name});
						$('.register').unbind("click");
						$('#highlight .block a').click( function() {
							window.location = $(this).attr('href');
							return false;
						});
					} else {
						$(this).replaceWith(msg);
						$('#form-error').fadeTo(0, 0).fadeTo(600, 1);
						woopraTracker.pushEvent({name: 'Error Sending Contact Form', user: name});
					}
				});
			}
		});
		return false;
	});

	$('#highlight .block').click( function() {
		$(this).children('a').trigger('click');
		return false;
	});

	if (getCookie('registered')) {
		$('#highlight .block a').click( function() {
			window.location = $(this).attr('href');
			return false;
		});
	} else {
		// modal activation
		$('.register').click( function() {
			modal('#register');
			return false;
		});

		// form validation
		$('#register-form').formly({}, function() {
			var name = $('#register-name').val();
			woopraTracker.addVisitorProperty('name',name);
			if (freeEmail('#register-form','#register-email')) {
				woopraTracker.pushEvent({name: 'Attempt to Use Free Email', user: name});
				return false;
			}

			var str = $('#register-form').serialize();

			$.ajax({
				type: "POST",
				url: "/include/mail/mail.php",
				data: str,
				success: function(msg) {
					$('#register-form').ajaxComplete(function(event,request,settings) {
						$('a.close').remove();
						if(msg == 'OK') {
							$(this).replaceWith('<div id="form-success"><h1>Registration Successful!</h1></div>');
							$('#form-success').fadeTo(0, 0).fadeTo(600, 1, function() {
								$('#fade , #register').delay(600).fadeOut(1000, function() {
									$('#fade').remove();
								});
							});
							setCookie('registered','true',90);
							woopraTracker.pushEvent({name: 'Filled Out Registration Form', user: name});
							$('.register').unbind("click");
							$('#highlight .block a').click( function() {
								window.location = $(this).attr('href');
								return false;
							});
						} else {
							$(this).replaceWith(msg);
							$('#form-error').fadeTo(0, 0).fadeTo(600, 1, function() {
								$('#fade , #register').delay(600).fadeOut(1000, function() {
									$('#fade').remove();
								});
							});
							woopraTracker.pushEvent({name: 'Error Sending Registration Form', user: name});
						}
					});
				}
			});
			return false;
		});

	}

});

$(window).resize(function() {
	// hide/show slideshow navigation arrows when window resizes
	$(window).width() < 1008 ? $('#slidenav').hide() : $('#slidenav').show();
});

// $(window).scroll(function() {
// 	// fix navigation to top of screen if user scrolls it off the screen
// 	if ( $(window).scrollTop() > 107 ) {
// 		$('#navigation').appendTo('#navigation-fixed');
// 		$('#back-to-top').fadeIn();
// 	} else {
// 		$('#navigation').appendTo('#navigation-standard');
// 		$('#back-to-top').fadeOut();
// 	}
// });

// check email against list of bad values, post error if matched
function freeEmail(form,email) {
	var temp = new Array();
	temp = $(email).val().split('@');

	// email addresses to filter
	var filter = new Array("yahoo.com","hotmail.com","test.com","tes.com","paymetric.com");

	for(var i=0;i<filter.length;i++) {
		if(temp[1] == filter[i]) {
			temp = form.split('#');
			$(form).find('.formlyAlerts').append('<div class="formlyInvalid formlyAlert" id="'+temp[1]+'email">Your free email address not accepted</div>');
			$(form+'email').fadeIn();
			$(form+' .formlyInvalid').hide().fadeIn();
			var borderColor = $(form+'email').css('background-color');
			$(email).css('border-color', borderColor);
			return true;
		}
	}

	return false;
}

// simple modal window
function modal(selector) {
	woopraTracker.pushEvent({name: selector+' Popup Opened', url: document.location.href});

	// fade in modal and add close button
	$(selector).fadeIn();
	$(selector).prepend('<a href="#" class="close"><img src="/include/images/x.png" class="btn_close" title="Close Window" alt="Close" /></a>');

	// define margin for center alignment
	var margTop = (selector == '#search-results') ? 0 : $(selector).height() / 2;
	var margLeft = $(selector).width() / 2;

	// apply margin
	$(selector).css({
		'margin-top' : -margTop,
		'margin-left' : -margLeft
	});

	// create and fade in backdrop
	$('body').append('<div id="fade"></div>');
	$('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn();

	// fade out modal and backdrop when close button or backdrop is clicked
	$('a.close, #fade').click( function() {
		$('#fade , #register, #search-results').fadeOut( function() {
			$('#fade, a.close').remove();
		});
		woopraTracker.pushEvent({name: selector+' Popup Closed', url: document.location.href});
		return false;
	});

	return false;
}

function setCookie(name,value,days) {
	var expires = "";
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		expires = "; expires="+date.toGMTString();
	}
	document.cookie = name+"="+value+expires+"; path=/";
}

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function deleteCookie(name) {
	setCookie(name,"",-1);
}

function googleSearch(settings) {
	var query = $('#search-input').val();
	var term = 'site:prinpay.com '+query;
	var apiURL = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&callback=?';
	var resultsDiv = $('#search-results');

	var defaults = {append:false,page:0};

	woopraTracker.pushEvent({name: 'Site Search', query: query, url: document.location.href});

	settings = $.extend({},defaults,settings);

	var page = (settings.page) ? settings.page : 0;

	$.getJSON(apiURL,{
		q : term,
		rsz : 8,
		start : page
	}, function(r) {

		var results = r.responseData.results;
		$('#more').remove();

		if(results.length) { // results
			var pageContainer = $('#result-container');
			if(!settings.append) pageContainer.empty();

			for(var i=0; i<results.length; i++) {
				pageContainer.append(new result(results[i]) + '');
			}

			var cursor = r.responseData.cursor;

			if(+cursor.estimatedResultCount > (page + 1) * 8) {
				$('<div>',{id:'more',text:'more results...'}).appendTo(pageContainer).click(function(){
					googleSearch({append:true,page:page + 1});
					$(this).fadeOut();
				});
			}
		} else { // no results
			resultsDiv.empty();

			$('<div>', {
				className : 'result-container',
				html : $('<div>', {
					className : 'search-result',
					html : $('<h2>', {
						text : 'No results found.'
					})
				})
			}).hide().appendTo(resultsDiv).fadeIn();
		}

		// fade in modal and add close button
		modal('#search-results');
		return false;
	});
}

function result(r) {
	var arr = [
		'<div class="search-result">',
			'<h2><a href="',r.url,'">',r.title,'</a></h2>',
			'<p><span>',r.url,'</span></p>',
			'<p>',r.content,'</p>',
		'</div>'
	];

	this.toString = function() {
		return arr.join('');
	};
}

// <!-- Start of Woopra Code -->
function woopraReady(tracker) {
	tracker.setDomain('prinpay.com');
	tracker.setIdleTimeout(300000);
	tracker.track();
	return false;
}
(function() {
	var wsc = document.createElement('script');
	wsc.src = document.location.protocol+'//static.woopra.com/js/woopra.js';
	wsc.type = 'text/javascript';
	wsc.async = true;
	var ssc = document.getElementsByTagName('script')[0];
	ssc.parentNode.insertBefore(wsc, ssc);
})();
// <!-- End of Woopra Code -->
