function checkform(requiredText, requiredNumbers, requiredEmail, requiredCheckboxes, requiredCheckboxGroups) {
	
	try {
		requiredNumbers.length;
	} catch (e) {
		requiredNumbers = new Array();
	} 
	
	
	try {
		requiredEmail.length;
	} catch (e) {
		requiredEmail = new Array();
	} 
	
	requiredCheckboxes = typeof checkform.arguments[3] == "undefined" ? new Array() : checkform.arguments[3];
	/*
	try {
		requiredCheckboxes.length;
	} catch (e) {
		requiredCheckboxes = new Array();
	} 
	*/
	
	
	try {
		requiredCheckboxGroups.length;
	} catch (e) {
		requiredCheckboxGroups = new Array();
	} 
	
	
	
	
	var el = $('input[type=text],textarea');
	for (var i = 0; i < el.length; i++) {
		$(el[i]).val( $.trim($(el[i]).val()) );
	}
	
	requiredText = array_reverse(requiredText);
	requiredNumbers = array_reverse(requiredNumbers);
	requiredEmail = array_reverse(requiredEmail);
	
	var focus = false;
	var error = false;
	var length = 0;
	
	for (var i = 0; i < requiredEmail.length; i++) {
		if (!$('#' + requiredEmail[i]).val().match(/^[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,4}$/g)) {
			error = true;
			focus = requiredEmail[i];
			$('#label' + requiredEmail[i]).addClass('formerror');
		}
		else {
			$('#label' + requiredEmail[i]).removeClass('formerror');
		}
	}
	for (var i = 0; i < requiredNumbers.length; i++) {
		length = 0;
		if (requiredNumbers[i].match(/:/)) {
			var val = requiredNumbers[i].split(':');
			requiredNumbers[i] = val[0];
			length = val[1];
		}
		$('#' + requiredNumbers[i]).val( $('#' + requiredNumbers[i]).val().replace(/\D/g, '') );
		if ($('#' + requiredNumbers[i]).val() == '' || (length > 0 && $('#' + requiredNumbers[i]).val().length != length)) {
			error = true;
			focus = requiredNumbers[i];
			$('#label' + requiredNumbers[i]).addClass('formerror');
		}
		else {
			$('#label' + requiredNumbers[i]).removeClass('formerror');
		}
	}
	for (var i = 0; i < requiredText.length; i++) {
		length = 0;
		if (requiredText[i].match(/:/)) {
			var val = requiredText[i].split(':');
			requiredText[i] = val[0];
			length = val[1];
		}
		if ($('#' + requiredText[i]).val() == '' || (length > 0 && $('#' + requiredText[i]).val().length != length)) {
			error = true;
			focus = requiredText[i];
			$('#label' + requiredText[i]).addClass('formerror');
		}
		else {
			$('#label' + requiredText[i]).removeClass('formerror');
		}
	}
	
	
	for (var i = 0; i < requiredCheckboxes.length; i++) {
		if (!$('#' + requiredCheckboxes[i]).attr('checked')) {
			error = true;
			focus = requiredCheckboxes[i];
			$('#label' + requiredCheckboxes[i]).addClass('formerror');
		}
		else {
			$('#label' + requiredCheckboxes[i]).removeClass('formerror');
		}
	}
	
	
	for (var i = 0; i < requiredCheckboxGroups.length; i++) {
		var labelToHighlight = "";
		var checkboxGroup = new Array();
		if (requiredCheckboxGroups[i].match(/:/)) {
			var val = requiredCheckboxGroups[i].split(':');
			temp = val[0];
			labelToHighlight = val[1];
			checkboxGroup = temp.split('|');
		}
		var atLeastOneChecked = false;
		for (var n = 0; n < checkboxGroup.length; n++) {
			if ($('#' + checkboxGroup[n]).attr('checked')) {
				atLeastOneChecked = true;
			}
		}
		
		if(atLeastOneChecked == true){
			$(labelToHighlight).removeClass('formerror');
		}else{
			$('#' + labelToHighlight).addClass('formerror');
			error = true;
		}

	}
	return error;
}

function array_reverse(array) {
	var array_new = new Array();
	var index = 0;
	for (var i = array.length; i > 0; i--) {
		array_new[index] = array[i-1];
		index++;
	}
	return array_new;
}
$('.tx-srfreecap-pi2-image').click(function(){
	var param = "&time=" + (new Date()).getTime();
	var src = this.src.replace(/&time=[0-9]{10,16}/, '');
	this.src = src + param;
});
function checkdate(day, month, year) {
	day = day.replace(/^[0]{1,11}/, '');
	month = month.replace(/^[0]{1,11}/, '');
	
	day = parseInt(day);
	month = parseInt(month);
	year = parseInt(year);
	
	if (day == '' || isNaN(day) || day < 1 || day > 31) {
		return false;
	}
	if (month == '' || isNaN(month) || month < 1 || month > 12) {
		return false;
	}
	if (year == '' || isNaN(year) || year < 1) {
		return false;
	}
	
	leap = false;
	if (year % 4 == 0) {
		leap = true;
	}
	if (year % 100 == 0) {
		leap = false;
	}
	if (year % 400 == 0) {
		leap = true;
	}
	
	switch (month) {
		case 4:
		case 6:
		case 9:
		case 11:
			if (day > 30) {
				return false;
			}
			break;
		case 2:
			if (leap && day > 29) {
				return false;
			}
			if (!leap && day > 28) {
				return false;
			}
			break;
	}
	
	return true;
}
