var testimonial_offset = 0;
var testimonial_running = false;

jQuery(document).ready(
	function() { 
		// Log errors
		/*
		jQuery(document).ajaxError(
			function(request,settings) {
				console.log(request);
			}
		);
		*/

		// Setup required input bg color toggle
		jQuery('input.required, textarea.required, select.required').bind('focus', function() { jQuery(this).addClass('white'); });
		jQuery('input.required, textarea.required, select.required').bind('blur', function() { jQuery(this).removeClass('white'); });

		// Setup job listing slidetoggle
		/*
		if(jQuery('.jobs-title a:first').attr('href') != undefined) { 
			jQuery('.jobs-title a').each(
				function(int) { 
					// Expand first listing
					// if(int == 0) {
					//	jQuery(this).toggleClass('close').parent('div').siblings('div.details').slideToggle();
					// }

					jQuery(this).bind('click', 
						function() { 
							jQuery(this).toggleClass('close').parent('div').siblings('div.details').slideToggle();
							return false;
						}
					);
				}
			);
		};
		*/

		// Setup testimonial previous/next
		if(jQuery('div.testimonials span.list-links a.last-link').attr('href') != undefined) { 
			jQuery('div.testimonials span.list-links a').bind('click', 
				function() { 
					if(testimonial_running) {
						return false;
					}

					testimonial_running = true;
					var move = jQuery(this).attr('class').substr(0,4);
					jQuery.getJSON('ajax-testimonials.html', { move: move, offset: testimonial_offset }, 
						function(data, status) {
							testimonial_offset = data.offset;
							jQuery.each(data.records, function(i, item) {

								if(jQuery('div.testimonials li:eq('+i+')').html() == null) { 
									jQuery('div.testimonials ul').append('<li style="display:none;"><img src="'+item.file_name+'" alt="'+item.image_alt+'" width="109" height="109"><div><p><span>'+item.body+'</span></p><span class="by">- '+item.author+'</span></div></li>').fadeIn('slow');
								} else { 
									jQuery('div.testimonials li:eq('+i+')').fadeTo('slow', 0, 
										function() { 
											jQuery('div.testimonials li:eq('+i+') a').attr({ href: item.url });
											jQuery('div.testimonials li:eq('+i+') img').attr({ src: item.file_name, alt: item.image_alt });
											jQuery('div.testimonials li:eq('+i+') div p span').html(item.body).fadeTo('slow', 1);
											jQuery('div.testimonials li:eq('+i+') div span.by').html('- '+item.author).fadeTo('slow', 1);
	
											jQuery(this).fadeTo('slow', 1);
										}
									);
								}
							});
							testimonial_running = false;
						}
					);
	
				return false;
			});
		}

		// Setup navigation drop downs (necessary for ie)
		jQuery('#navigation'+((jQuery('#navigation .sub ul').length == 0)?'':' .sub')+' li').each(
			function() {
				jQuery(this).bind('mouseover',
					function() {
						jQuery(this).addClass('hover');
					}
				);
				jQuery(this).bind('mouseout',
					function() {
						if(jQuery(this).attr('class').indexOf('active') === -1) { 
							jQuery(this).removeClass('hover');
						}
					}
				);
			}
		);
	}
);

function popup(url, width, height, center, lockdown) { 
	if(url == undefined) {
		return false;
	}

	var left 		= (screen.width/2)-(width/2);
	var top			= (screen.height/2)-(height/2);
	var parameters	= 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,width='+width+',height='+height;

	if(lockdown === true) { 
		parameters += ',resizable=0';
	} else { 
		parameters += ',resizable=1';
	}

	if(center === true) { 
		parameters += ',left='+left+',top='+top;
	}

	var day	= new Date();
	var id	= day.getTime();
	var win	= window.open(url, id, parameters);

	if(win.focus) { 
		win.focus();
	}

	return false;
}

function sleep(millis) {
	var date = new Date();
	var curDate = null;

	do { curDate = new Date(); } 
	while(curDate-date < millis);
} 

function formatPhoneNumber(num, clean) {
	var digits=num.replace(/[^0-9]/ig,'');

	if(!digits) {
		return num;
	} else if(clean === true) { 
		return digits;
	} else if(digits.length==11) { 
		return digits.substring(0,1)+" ("+digits.substring(1,4)+") "+digits.substring(4,7)+'-'+digits.substring(7,11);
	} else if(digits.length==10) {
		return "("+digits.substring(0,3)+") "+digits.substring(3,6)+'-'+digits.substring(6,10);
	}
	
	return digits;
};

function moveNext(c_field, n_field, maxlength) { 
	maxlength = maxlength == undefined ? jQuery('#'+c_field).attr('maxlength') : maxlength;

	if(jQuery('#'+c_field).attr('value').length == maxlength) { 
		jQuery('#'+n_field).focus();
	}

	return true;
}

function submitCallMeNow() { 
	var p1 = jQuery('#p1').attr('value');
	var p2 = jQuery('#p2').attr('value');
	var p3 = jQuery('#p3').attr('value');

	if((p1 == undefined || p1.length < 3) || (p2 == undefined || p2.length < 3) || (p3 == undefined || p3.length < 4)) { 
		alert('Your 10 digit phone number is required.');
		return false;		
	}

	jQuery('#phone_to_call').attr('value', p1+p2+p3);
	return true;
}