/* * * * * * * * * * * * * * * * * * * * * * * * * * *
 *	Copyright 2007 - Russell I/O, LLC
 *	http://www.russellio.com
 *	Last Updated: 12/12/07
 * * * * * * * * * * * * * * * * * * * * * * * * * * */


/*******************************
 *	Toggle display an element (by element's ID), using JQuery
 *	id = element ID
 *	type = type of jquery toggle, defaults to 'slow'
 *	label = the anchor tag containing the toggle link (usually 'this')
 *	label_switch = changes label from minimize[-] to expand[+] rather than vise versa (expand[+] to minimize[-] is default)
 *	label_expand = custom expand label
 *	label_minimize = custom minimize label
 *******************************/
function toggle(id, type, label, label_switch, label_expand, label_minimize) {
	//alert(label);
	if(label) {
		label_expand = label_expand ? label_expand : 'expand [+]';
		label_minimize = label_minimize ? label_minimize : 'minimize [-]';

		if(label_switch) {
			label.innerHTML = (label.innerHTML != label_expand ? label_expand : label_minimize);
		} else {
			label.innerHTML = (label.innerHTML != label_minimize ? label_minimize : label_expand);
		}
	}
	
	id = '#'+id;
	
	if(type=='switch'){
		$(id).toggle();	
/*	} else if(type=='fade') {
		$(id).fadeIn(); */
	} else if(type=='slow') {
		$(id).slideToggle("slow");
	} else {
		$(id).slideToggle("slow");
	}
//	var el = document.getElementById(id);
//	el.style.display = (el.style.display != 'none' ? 'none' : '' );
}



/*******************************************************
 *	Form Validation Functions
 *******************************************************/

function validate_isNotEmpty(elem){
	var str = elem.value;
	var reg_ex = /.+/;
	if(!str.match(reg_ex)){
		return false;
	}
	return true;
}

function validate_isNumber(elem, limit){
	var str = elem.value;
	var reg_ex = /^[-]?\d*\.?\d*$/;
	if(!str.match(reg_ex) || (limit && str.length > limit)) {
			return false
	}
	return true;
}

function validate_isEmailAddr(elem) {
	var str = elem.value;
	var reg_ex = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	if(!str.match(reg_ex)) {
		return false;
	}
	return true;
}

//makes sure a value has been selected in a dropdown menu
function validate_isSelected(elem){
	if(!elem.value || elem.value==''){
		return false;
	}
	return true;
}

function isNum(argvalue, length) {
	
	if (length)
	{
		if (argvalue.length != length) return false;	
	}
	
	argvalue = argvalue.toString();
	
	if (argvalue.length == 0) return false;
	
	for (var n = 0; n < argvalue.length; n++)
	{
		if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9") return false;
	}
	return true;
} // isNum()

function isCreditCardNumber(number) {
	
	if (! isNum(number)) {
		return false;
	}
	
	var no_digit = number.length;
	var oddoeven = no_digit & 1;
	var sum = 0;
	
	for (var count = 0; count < no_digit; count++) 
	{
	var digit = parseInt(number.charAt(count));
	if (!((count & 1) ^ oddoeven)) 
	{
		digit *= 2;
		if (digit > 9)
			digit -= 9;
		}
		sum += digit;
	}
	if (sum % 10 == 0) return true;
	else return false;
} // isCreditCardNumber()