$().ready(function() {
/* ---------------------------------------------------------------------------------------------------------------------- */
/* Tooltips ------------------------------------------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------------------------------------------------- */
$(".showtip").tipsy({
	live: true,
	gravity: 's',
	opacity: 1,
	fade: true
});


/* ---------------------------------------------------------------------------------------------------------------------- */
/* Alerts --------------------------------------------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------------------------------------------------- */
if($(".thealert").length) {
	$(".thealert").hide();
	$(".alert-inside").css({"opacity":"0"});
	$(".thealert").delay(250).slideDown("slow",function() {
		$(".alert-inside").fadeTo("fast",1);
	});

	if($(".thealert").hasClass("good-alert")) {
		setTimeout("closeAlert()",4000);
	}
}

$(".close-it").live("click",function() {
	closeAlert();	
	return false;
});

$(".delete").live("click",function() {
	if(!confirm("Are you sure you want to delete this record?")) return false;
});




/* ---------------------------------------------------------------------------------------------------------------------- */
/* Expanding Content ---------------------------------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------------------------------------------------- */
$('.content-chop').expander({
	slicePoint: 150,
	widow: 2,
	expandSpeed: 250,
	expandPrefix: ' ',
	expandText: '... more',
	userCollapseText: '... less'
});


/* ---------------------------------------------------------------------------------------------------------------------- */
/* ---------------------------------------------------------------------------------------------------------------------- */
});

function closeAlert() {
	$(".alert-inside").fadeTo("fast",0,function() {
		$(".thealert").slideUp("slow",function() { $(this).remove(); });
	});
}

var theout;
function showAlert(msg,type) {
	clearTimeout(theout);
	
	thealert = '\
		<div class="'+type+'-alert thealert fixed">\
			<div class="alert-inside">\
				<a href="" class="'+type+'-alert-close close-it icon minus"><span><span>x</span></span></a>\
				'+msg+'\
			</div>\
		</div>\
	';
	
	$(".thealert").remove();
	$("body").prepend(thealert);
	
	$(".thealert").hide();
	$(".alert-inside").css({"opacity":"0"});
	$(".thealert").delay(250).slideDown("slow",function() {
		$(".alert-inside").fadeTo("fast",1);
	});


	if(type="good") {
		theout = setTimeout("closeAlert()",4000);
	}
}



/* ----------------------------------------------------------------------------------------- */
/* Helper Functions ------------------------------------------------------------------------ */
/* ----------------------------------------------------------------------------------------- */
// Force only numeric values
$(".numeric-only").live("keydown",function(event) {
	if(!allowNumbersOnly(event)) event.preventDefault();
});
$(".numeric-only").live("keyup",function(event) {
	myString = $(this).val();
	myString = myString.replace(/\D/g,'');
	$(this).val(myString);
});

// Force only monetary values (numbers and .)
$(".monetary-only").live("keydown",function(event) {
	if(!allowMonetaryOnly(event)) event.preventDefault();
});
$(".monetary-only").live("keyup",function(event) {
	myString = $(this).val();
	myString = myString.replace(/[^0-9\.]/g,'');
	myString = parseFloat(myString);
	$(this).val(myString);
});

// No spaces
$(".no-spaces").live("keydown",function(event) {
	if(!allowNoSpaces(event)) event.preventDefault();
});
$(".no-spaces").live("keyup",function(event) {
	$(this).val($(this).val().split(' ').join(''));
});


// Certain Special Characters
$(".only-certain-special-chars").live("keydown",function(event) {
	if(!onlyCertainSpecialChars(event)) event.preventDefault();
});
$(".only-certain-special-chars").live("keyup",function(event) {
	myString = $(this).val();
	myString = myString.replace("'",'');
	myString = myString.replace('"','');
	myString = myString.replace("\\",'');
	myString = myString.replace("/",'');
	myString = myString.replace("`",'');
	$(this).val(myString);
});


// Letters and Numbers Only
$(".letters-numeric-only").live("keydown",function(event) {
	if(!allowLettersAndNumbersOnly(event)) event.preventDefault();
});
$(".letters-numeric-only").live("keyup",function(event) {
	myString = $(this).val();
	myString = myString.replace(/[^A-Za-z0-9]/g,'');
	$(this).val(myString);
});



function allowNumbersOnly(event) {
	if(!(
		   event.keyCode == 8                               // backspace
		|| event.keyCode == 9                               // tab
		|| event.keyCode == 13                              // enter
		|| event.keyCode == 46                              // delete
		|| (event.keyCode >= 35 && event.keyCode <= 40)     // arrow keys/home/end
		|| (event.keyCode >= 48 && event.keyCode <= 57)     // numbers on keyboard
		|| (event.keyCode >= 96 && event.keyCode <= 105)    // number on keypad
		|| (event.ctrlKey && event.keyCode == 65) 			// ctrl + a
		|| (event.ctrlKey && event.keyCode == 67) 			// ctrl + c
		|| (event.ctrlKey && event.keyCode == 86) 			// ctrl + v
		|| (event.ctrlKey && event.keyCode == 88) 			// ctrl + x
		|| (event.ctrlKey && event.keyCode == 90) 			// ctrl + z
	)) {
		return false;
	} else {
		return true;
	}
}

function allowMonetaryOnly(event) {
	if(!(
		   event.keyCode == 8                               // backspace
		|| event.keyCode == 9                               // tab
		|| event.keyCode == 13                              // enter
		|| event.keyCode == 46                              // delete
		|| (event.keyCode >= 35 && event.keyCode <= 40)     // arrow keys/home/end
		|| (event.keyCode >= 48 && event.keyCode <= 57)     // numbers on keyboard
		|| (event.keyCode >= 96 && event.keyCode <= 105)    // number on keypad
		|| event.keyCode == 110                             // .
		|| event.keyCode == 190                             // .
		|| (event.ctrlKey && event.keyCode == 65) 			// ctrl + a
		|| (event.ctrlKey && event.keyCode == 67) 			// ctrl + c
		|| (event.ctrlKey && event.keyCode == 86) 			// ctrl + v
		|| (event.ctrlKey && event.keyCode == 88) 			// ctrl + x
		|| (event.ctrlKey && event.keyCode == 90) 			// ctrl + z
	)) {
		return false;
	} else {
		return true;
	}
}

function allowNoSpaces(event) {
	if(event.keyCode == 32) {
		return false;
	} else {
		return true;
	}
}

function onlyCertainSpecialChars(event) {
	if((
		   event.keyCode == 192                             // tilde (`)
		|| event.keyCode == 191                             // slash /
		|| event.keyCode == 220                             // slash \
		|| event.keyCode == 222                             // quotes (' & ")
	)) {
		return false;
	} else {
		return true;
	}
}

function allowLettersAndNumbersOnly(event) {
	if(!(
		   event.keyCode == 8                               // backspace
		|| event.keyCode == 9                               // tab
		|| event.keyCode == 13                              // enter
		|| event.keyCode == 46                              // delete
		|| (event.keyCode >= 35 && event.keyCode <= 40)     // arrow keys/home/end
		|| (event.keyCode >= 48 && event.keyCode <= 57)     // numbers on keyboard
		|| (event.keyCode >= 96 && event.keyCode <= 105)    // number on keypad
		|| (event.keyCode >= 60 && event.keyCode <= 90)     // letters
	)) {
		return false;
	} else {
		return true;
	}
}


// Check for Valid Email
function checkEmail(email) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(email) == false) {
		return false;
	} else {
		return true;
	}
}
