// remap jQuery to $
(function($){})(window.jQuery);

//Function can check for CSS support in browsers
var supports = (function() {
	var div = document.createElement("div"),
		vendors,
		len;
		
		return function(prop) {
			if( prop in div.style ) {
				return true;
			}
			
			prop = prop.replace(/^[a-z]/, function(val) {
				return val.toUpperCase();
			});
			
			vendors = ["Moz", "ms", "O", "Webkit"];
			len = vendors.length;
			
			while (len--) {
				if( vendors[len] + prop in div.style ) {
					return true;
				}
			}
			return false;
		}
})();


var isMobile = function() {
	var ua = navigator.userAgent.toLowerCase(),
		mobile = ['iphone', 'blackberry', 'android', 'webos', 'windows phone'];
		
		for(i in mobile) {
			if(ua.search(mobile[i]) > -1) {
				var a = true;
				break;
			}
			else { var a = false; }
		}
	return a;
}

var mobile = isMobile();

/* trigger when page is ready */
$(document).ready(function (){

	$('.learn-more-link').click(function() {
		if(!mobile) {
			$('#outlook-wufoo').fadeIn();
			$('#overlay').fadeIn();
			return false;
		}
	});

	$('.close').click(function() {
		$(this).parent().fadeOut();
		$('#overlay').fadeOut();
		return false;
	});

	navArrow();
	blogRoll();
	scaleScreenshot();
	if(!mobile) {
	getItNowPopup();
	}
	faq();
	
	$('iframe.auto-height').each(function(){
		$(this).hide().attr('scrolling','no').attr('background','transparent').width('100%');
	       $(this).load(function(){
	            $(this).show();
	            var id = $(this).attr('id') || "iframe"+Math.round(Math.random()*10000);
	            $(this).attr('id', id);
	            $(this)[0].contentWindow.postMessage('{"action":"height", "id":"'+id+'"}','*');
	       });
	   });

});

//Used for iFrame auto-height
var receiveMessage = function(event) {
	event = event || window.event;
	try {
   		var message = $.parseJSON(event.data);
   		$('#'+message.id).height(parseInt(message.clientHeight) + 120);
   	}
   	catch(e) {}
};

if($("iframe.auto-height").length > 0 ) {
	if(window.addEventListener) {
		window.addEventListener("message", receiveMessage, false);
	}
	else {
		window.attachEvent("message", receiveMessage, false);
	}
}


//Navigation arrow for Slider on Home Page.
function navArrow() {
	var $anchor = $('#home-nav ul li a');
	
	$anchor.click(function(){
		var $this = $(this),
			slideId = $this.attr('href');
			
		$anchor.removeClass('active');
		$this.addClass('active');
		
		contentSlider(slideId);
		return false;
	}).mouseup(function() {
		animatedScroll('home-nav');
	});
	
	$('.features').click();
}//End navArrow()


function animatedScroll(id) {
	var obj = $('#' + id),
		top = obj.offset().top;
		
	$('html, body').animate({
		scrollTop: top
	});
}

//Slide Animation Function for Home Page.
function contentSlider(id) {
	var width = 940,
		$contentId = $(id),
		pos = 940,
		$slides = $('.slide-wrap');
	
	pos = ($contentId.index() * width) * -1;	
	$slides.stop().animate({
		left: pos + 'px'
	}, 500, 'easeOutCubic');
}//End contentSlider

//Gets blogs titles and cycles through them on the home page.
function blogRoll() {
	var $blogRoll = $('.blog-roll'),
		blogPath = '../wp-content/themes/fullcontact-consumer/blog-roll.php'
		data = '',
		$item = '',
		limit = '';
		
	function hideAll() {
		$item.fadeOut(400);
	}
	
	function hideShow(index) {
		var el = $item[index];
		hideAll();
		$(el).delay(600).fadeIn(800);
	}
	
	function cycle() {
		if(i > limit) { i = 0 };
		hideShow(i);
		t = setTimeout(cycle, 15000);
		i++;
	}
	
	$.post(blogPath, function(response){
		data = response;
		$blogRoll.append(data);
		$item = $('.blog-item');
		limit = $item.length - 1;
		i = 0;
		cycle();
	});
}//End blogRoll()

//Screenshot scaler
function scaleScreenshot() {
	var $screenshots = $('.screenshot img')
		src = '',
		width = 900,
		height = 595;
		
	$screenshots.click(function(){
		var $this = $(this);
		src = $this.attr('data-src');
		
		createLrgScreenshot(src, width, height);
	});
	
	$('.close-img').live('click', function(){
		var $this = $(this);
		$this.parents('div').removeClass('scale');
		var img = document.getElementById('lrg-screenshot');
		
		var t = setTimeout(function(){ $this.parents('div').remove();}, 150);
		return false;
	});
	
	
	function loadImage(path,w,h) {
		var pathToResizer = '/wp-content/themes/fullcontact-consumer/assets/helpers/image.php',
			imgPath = '../../assets/screenshots/',
			qstring = '?url=' + imgPath + path + '&w=' + w + '&h=' + h;
		return pathToResizer + qstring;
	}
	
	function createLrgScreenshot(path,w,h) {
		removeScreen();
		$('body').append('<div id="lrg-screenshot"><a class="close close-img" href="#">✖</a><img alt="" src="'+ loadImage(path,w,h) +'" /></div>');
		$('#lrg-screenshot img').load(function(){
			$(this).parents('div').addClass('scale');
		});
	}
	
	function removeScreen() {
		$('#lrg-screenshot').remove();
	}
}//End scaleScreenshot()


//Shows / Hides "Get it Now" popup menu.
function getItNowPopup() {
	var $button = $('#get-it-now'),
		$popup = $('#get-it-now-form'),
		$form = $popup.find('form'),
		$overlay = $('#overlay'),
		$cancel = $('#get-it-now-form .cancel');
		
	$('body').append('<div id="form-message"></div>');
	
	function hideAll() {
		$('.checkbox').removeClass('selected').children('.hidden').hide().find('input').removeClass('required');
	}
	
	$button.click(function(){
		$popup.addClass('show');
		$overlay.addClass('show');
		return false;
	});
	
	$cancel.click(function(){
		$popup.removeClass('show');
		$overlay.removeClass('show');
		$form.clearForm();
		hideAll();
		return false;
	});
	
	$overlay.click(function(){
		$(this).removeClass('show');
		$popup.removeClass('show');
		$form.clearForm();
		hideAll();
	});
	
	
	(function checkbox() {
		var $checkboxes = $('.checkbox input[type=checkbox]');
		
		$checkboxes.click(function() {
			hideAll();
			$('input:checked').parents('div').addClass('selected').children('.hidden').show().find('input').addClass('required');
		});
		
	})();
	
	function submitFormAJAX(form) {
		if($(form).find('input[type=checkbox]:checked').length == 0) {
				$('<p/>', {
					text: 'Please check at least one checkbox above.'
				}).appendTo(form).delay(500).fadeOut(1500, function(){ $(this).remove(); });
			return false;
		}
		$overlay.removeClass('show');
		$popup.removeClass('show');
		$.post('/wp-content/themes/fullcontact-consumer/assets/helpers/get-app.php', $(form).serialize(), function(data){
			if(data.indexOf('http') > -1) window.location.href = data;
			else {
				$('#form-message').html(data).addClass('show');
				var t = setTimeout(function(){ $('#form-message').removeClass('show'); }, 5000);
			}
			$form.clearForm();
			hideAll();
		});	
	}
	
	/*$form.submit(function(){
		submitFormAJAX(this);
		return false;
	});*/
	
	jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
	    phone_number = phone_number.replace(/\s+/g, ""); 
		return this.optional(element) || phone_number.length > 9 &&
			phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
	}, "Please specify a valid phone number");
	
	$form.validate({
		rules: {
			emailAddress: {
				email: true
			},
			mobile: {
				phoneUS: true
			}
		},
		submitHandler: function(form) {
			submitFormAJAX(form);
			return false;
		}
	});
	
}//End getItNowPopup()

//Faq Accordion List Toggle
function faq() {
	var $links = $('#faq-toc li'),
		$faqItem = $links.children('.faq-item'),
		$hidden = $('#faq-toc .hidden');
	
	function closeAll() {
		if(!mobile) {
			$hidden.stop().slideUp(400);
		}
		else {
			$hidden.hide();
		}
		$links.removeClass('selected');
	}
	
	$faqItem.click(function(event){
		var $this = $(this);
		event.preventDefault();
		closeAll();
		$this.parents('li').addClass('selected');
		if(!mobile) {
			$this.siblings('.hidden').stop().delay(200).slideDown(400);
		}
		else {
			$this.siblings('.hidden').show();
		}
		//return false;
	});
}

/* Adds iOS App ads to Blog pages */
function blogAds() {
	var p = $('.ad-space'),
		ua = navigator.userAgent.toLowerCase(),
		ad, isApple;
	
	isApple = (ua.search('iphone') > -1 || ua.search('ipod') > -1) ? true : false;
	
	ad = '<a class="ios-ad" href="http://ful.lc/vUFiLQ" target="_blank">';
	
	if(isApple) {
		ad += '<img style="width: 300px;" alt="Get FullContact for the iPhone, it\'s FREE!" src="/wp-content/themes/images/ios-ad-mobile.png" />';
	}
	else {
		ad += '<img alt="Get FullContact for the iPhone, it\'s FREE!" src="/wp-content/themes/images/ios-ad-lrg.png" />';
	}
	
	ad += '</a>';
	
	p.html(ad);
}

/* optional triggers

$(window).load(function() {
	
});

$(window).resize(function() {
	
});

*/
