/***************************
 * SITE-SPECIFIC FUNCTIONS *
 ***************************/
 
 
/*********************
 * UTILITY FUNCTIONS *
 *********************/
 
function sendMail(user,domain,tld,subject,message) {
	if (!user) user = 'info';
	if (!domain) domain = 'reaching';
	if (!tld) tld = 'com';
	locationstring = 'mailto:' + user + '@' + domain + '.' + tld;
	if (subject) locationstring += '?subject=' + encodeURIComponent(subject);
	if (message) locationstring += '&body=' + encodeURIComponent(message);
	window.location = locationstring;
}

function openWindow(url,features) {
	var newWin = window.open(url,'new-window',features);
	newWin.focus();
}

function closeWindow() {
	if (window.opener) {
		self.close();	
	}
}

function printPage() {
	if (window.print != null) {
		window.print();
	}
	else {
		alert("To print this page, please select Print from your browser's File menu.");
	}
}

function makeExternalLinks(){
    $('a, area').filter(function(){
        return this.hostname && this.hostname != location.hostname;
    })
	 .attr({
		target: "_blank", 
		title: "Opens in a new window"
	})
	.not(':has(img), a.button')
	.addClass('external-link');
}

function handleLinkedFiles() {
	// Open linked files in a new window
	$('a').filter(function() {
        return (/(pdf$)|(doc$)|(ppt$)|(pps$)/i).test( $(this).attr('href'));
	}).attr('target','_blank');
	// Assign a class to link
	$('a[href$=".pdf"]').not('a:has(img)').addClass('pdf-link');
	$('a[href$=".doc"]').not('a:has(img)').addClass('doc-link');
	$('a[href$=".pps"], a[href$=.ppt]').not('a:has(img)').addClass('ppt-link');
	$('a[href^="javascript:printPage"]').not('a:has(img)').addClass('print-link');
}

function makeRollovers(){
	$('a.rollover').each(function() { // preload over states
		var img = new Image();
		var upimage = $(this).find('img').attr('src');
		img.src = upimage.replace('_up','_ov');
	});
	$('a.rollover').hover(
		function() {
			var overimage = $(this).find('img').attr('src').replace('_up','_ov');
			$(this).find('img').attr('src',overimage);
		},
		function() {
			var upimage = $(this).find('img').attr('src').replace('_ov','_up');
			$(this).find('img').attr('src',upimage);
		}
	);
	$('input.rollover').hover(
		function() {
			var overimage = $(this).attr('src').replace('_up','_ov');
			$(this).attr('src', overimage);
		},
		function() {
			var upimage = $(this).attr('src').replace('_ov','_up');
			$(this).attr('src', upimage);
		}
	);
}

function makeActionLinks() {
	$('a.action').append(' &#187;');
}

function makeSelfClearingFields() {
	$('input.self-clearing').focus(function(){
		var field = $(this);
		if (field.val() == field.attr('defaultValue')) {
			field.val('');
		}
	})
	.blur(function() {
		var field = $(this);
		if (field.val()=='') {
			field.val(field.attr('defaultValue'));
		}
	});
}

function ncsForms() {
	$('form.ncsform input[type="text"]').addClass('text');
	
	$('form.ncsform input, form.ncsform textarea')
	.focus(function(){$(this).addClass('focused')})
	.blur(function(){$(this).removeClass('focused')});
}

function ncsNotifications() {
	$('.notice, .warning').prepend('<a class="dismiss fade" title="Dismiss this message."><img src="/images/icons/dismiss.png" alt="Dismiss" width="16" height="16" /></a>');
	
	$('a.dismiss').click(function(){
		$(this).parent().fadeOut();
	});
	
	
}

function ncsFade() {
	$('.fade').hover(function(){
		$(this).fadeTo('fast', 0.5);
	}, function(){
		$(this).fadeTo('fast', 1);
	});
}

function init() {
	makeExternalLinks();
	handleLinkedFiles();
	makeRollovers();
	makeActionLinks();
	makeSelfClearingFields();
	$('.panel').before('<div class="panel-top"></div>').after('<div class="panel-bottom"></div>');
	$('#email-signup').ajaxForm({
		target: '#email-response',
		url: '/ajax/process_email_signup.php',
		success: function() {
			$('#email-response').dialog({
				modal: true,
				title: 'Email List',
				buttons: { "Ok": function() { $(this).dialog("close"); } }
			})
		},
		resetForm: true
	});
	/*$('a[href*=donate]').click(function(){
		$('#donations-message').dialog({
			modal: true,
			width: 400,
			buttons: { "Ok": function() { $(this).dialog("close"); } }
		});
		return false;
	});*/
	$('.overflow').hide(0);
	$('a[href="#readmore"]').click(function(){
		$('#readmore').slideDown('slow');
	});
	ncsForms();
	ncsNotifications();
	ncsFade();
}

