//Basic Regex validations (cross-form)
function checkEmail( formElement ) {
	//alert('run email check');
	if (!(/^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/.test( $( formElement ).value))){		
		return false;	
	} else {
		return true;
	}
}

function checkDate(formElement) {	
	if(!(/^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/.test($(formElement).value))) {		
		return false;	
	} else {
		return true;
	}
}

function checkYear(formElement) {	
	if(!(/^((19|20)[0-9]{2})$/.test($(formElement).value))) {		
		return false;	
	} else {
		return true;
	}
}

function checkNumeric(formElement) {	
	if(!(/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/.test($(formElement).value))) {		
		return false;	
	} else {
		return true;
	}
}

function checkZip(formElement) {
	return(/^([0-9]{5})(-[0-9]{4})?$/.test($(formElement).value));	
}

function checkPhone(formElement) {
	return (/^([0-9]{3}-)?([0-9]{3}-){1}([0-9]{4}){1}$/.test($(formElement).value));	
}

function checkCreditCard(formElement) {
	return (/^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$/.test($(formElement).value));	
}

function checkCheckbox(formElement) {	
	return $(formElement).checked;
}

function checkRadio( formElement ) {
	var valid = 0;
	
	for( i = 0; i < eval('document.registration.' + formElement + '.length'); i++ ) {
		if( eval('document.registration.' + formElement + '[i].checked') )
			valid = 1;
	}
	
	return valid;
}

function getRadioValue(formElement) {
	var value = false;
	for (var i=$(formElement).length-1; i > -1; i--) {
        if (formElement[i].checked) {value = $(formElement)[i].value; break;}
    }	
	
	return value;
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function formatCurrency(num) {
	
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
	
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;
	
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));

	return (((sign)?'':'-') + '$' + num + '.' + cents);
	
}
