$(window).ready(function() {
	$('#content-wrap').highlight('safetrade');
});

$(document).ready(function() {
	pageSpecific();
	if ($('.datepicker').length) {
		$('.datepicker').datepicker({
			dateFormat: "DD, d MM, yy",
			minDate: 0
		});
	}
});

function pageSpecific() {
	if ($('.home-template').length) { home(); }
	if ($('#reviews').length) { reviews(); }
	if ($('.companies').length) { companiesPage(); }
	if ($('.company_gallery-template').length) { galleryPage(); }
	if ($('.blog-archive').length) { blogArchive(); }
}

function home() {	
	/* tabs */
	$('#select-post-job').bind('click', function() {
		$('#test li').removeClass('selected');
		$(this).parent().addClass('selected');
		$('#post-job').show();
		$('#find-tradesman').hide();
		$('#description').focus();
	});
	
	$('#select-find-tradesman').bind('click', function() {
		$('#test li').removeClass('selected');
		$(this).parent().addClass('selected');
		$('#post-job').hide();
		$('#find-tradesman').show();
		$('#service').focus();
	});
	
	// steps
	var step = 1;
	var back = $('#post-job .back').bind('click', function(e) {
		e.preventDefault();
		if (step == 2) {
			step1();
		}
		return false;
	});	
	
	function step1() {
		$('#steps').css('left', '');
		step = 1;
		back.addClass('hidden');
		console.log('step1');
	}
	
	function validateFields(selector) {
		var valid = true;
		
		$(selector).each(function() {
			var thisValid = true;
			
			el = $(this);
			if (el.hasClass('required') && el.val().length == 0) {
				thisValid = false;
			}
			if (el.hasClass('email')) {
				var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
				if (!pattern.test(el.val())) {
					thisValid = false;
				}
			}
			
			if (thisValid == false)
			{
				el.addClass('error').bind('focus', function() {
					$(this).removeClass('error');
				});
				valid = false;
			}
		});
		
		return valid;
	}
	
	function step2() {
		$('#steps').css('left', '-281px');
		step = 2;
		back.removeClass('hidden');
	}
			
	var form = $('#post-job form').bind('submit', function(e) {
		if (step == 1) {
			e.preventDefault();
			if (validateFields('#step-one input, #step-one textarea')) {
				step2();
			}
		}
		else {
			if (validateFields('#step-two input')) {
				return true;
			}
		}
		return false;
	});
}

function companiesPage() {
	$('.companies .company').click(function() {
		window.location.href = $(this).find('.title a').attr('href');
	});
}

function galleryPage() {
	if ($('#gallery li a').length) {
		$('#gallery li a').lightBox();
	}
}

function blogArchive() { 
	$('.blog-archive>ul>li>a').click(function(e) {
		$(this).toggleClass('selected');
		$($(this).attr('href')).stop(true, true).slideToggle();
		return false;
	});
}

function reviews() {
	$('#reviews-wrap').masonry({
		itemSelector: '.review'
	});
}

jQuery.fn.highlight=function(pat){function innerHighlight(node,pat){var skip=0;if(node.nodeType==3){var pos=node.data.toUpperCase().indexOf(pat);if(pos>=0){var spannode=document.createElement('span');var safenode=$('<strong class="safe">safe</span>');var tradenode=$('<strong class="trade">trade</span>');var middlebit=node.splitText(pos);var endbit=middlebit.splitText(pat.length);var middleclone=middlebit.cloneNode(true);$(spannode).append(safenode).append(tradenode);middlebit.parentNode.replaceChild(spannode,middlebit);skip=1;}}
else if(node.nodeType==1&&node.childNodes&&!/(script|style)/i.test(node.tagName)){for(var i=0;i<node.childNodes.length;++i){i+=innerHighlight(node.childNodes[i],pat);}}
return skip;}
return this.each(function(){innerHighlight(this,pat.toUpperCase());});};
