// remove whitespaces from right and left
function trim(stringToTrim) 
{
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function set_form_target(target)
{
	f=document.forms[0];
	f.action=target;
	f.submit();
}

function set_form_action(value)
{
	f=document.forms[0];
	f.form_action.value=value;
}

//-----------------------------------------------------------------------
function ck_text (field, zval, str) {
	if (field.value == zval) {
		if (str!=""){
			alert(str);
			field.focus();}
		return false;}
	else
		return true;
	}
//-----------------------------------------------------------------------
function ck_number(field, str, allow_float)
{
	if (field.value=='' || isNaN(Number(field.value)))
	{
		alert(str);
		field.focus();
		return false;
	}
	if (!allow_float){
		if ((parseInt(field.value)+'')!=field.value){
			alert(str);
			field.focus();
			return false;}
		}
	return true;
}
//-----------------------------------------------------------------------
function ck_number_positive(field, str, include_zero, allow_float)
{
	if (!ck_number(field, str, allow_float)){
		return false;}
	if ((include_zero)&&(parseFloat(field.value)<0)||(!include_zero)&&(parseFloat(field.value)<=0)){
		alert(str);
		field.focus();
		return false;}
	return true;
}
//-----------------------------------------------------------------------
function ck_number_positive_limitation(field, str, limit) {
	if (field.value > limit) {
		alert(str);
		field.focus();
		return false;
	}
	return true;
}
//-----------------------------------------------------------------------


//-----------------------------------------------------------------------
function ck_checkbox(field, str)
{
	// checking if there is one checkbox or an array of checkboxes	
	if (typeof(field.length)!='number')
	{	
		if (field.checked==false)
		{
			field.focus();
			alert(str);
			return false;
		}
		else
			return true;
	}
	else
	{	
		for (i=0;i<field.length;i++)
			if (field[i].checked) return i+1;
	
		if (str!="")
		{
			alert(str);
			foc(field[0]);
		}
		return false;									
	}
	
}
//-----------------------------------------------------------------------
function ck_radio (field, str) 
{
	if (field.length == undefined)		// when just one radio button exists
	{
		if (field.checked)
			return true;
	
		alert(str);
		field.focus();
		
		return false;		
	}

	selIndex = -1;
	
	for (i=0; i<field.length; i++)
		if (field[i].checked)
		{
			selIndex = i;
			i = field.length;
		}
		
	if (selIndex==-1)															// when nothing checked
	{
		alert(str);
		field[0].focus();
		return false;
	}
	
	if (field[selIndex].value=='')										// when null value
	{
		alert(str);
		field[0].focus();
		return false;
	}
	
	return true;
}
//-----------------------------------------------------------------------

//-----------------------------------------------------------------------
function ck_identical(field_1, field_2, str) {
	if (field_1.value != field_2.value)	{
		if (str!="") {
			field_2.focus();
			alert(str);
		}
		return false;}
	return true;
	}
//-----------------------------------------------------------------------
function ck_email_str(str, stre){
	if (window.RegExp) {
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
		var reg1 = new RegExp(reg1str);
		var reg2 = new RegExp(reg2str);
		if (!reg1.test(str) && reg2.test(str)) {
			return true;
		}
		alert(stre);
		return false;
	} else {
		if(str.indexOf("@") >= 0){
			return true;
		}
		alert(stre);
		return false;
	}
}
//-----------------------------------------------------------------------
function ck_email(field, stre)
{
	var str = field.value;
	if (str.length==0) return true;

	if (!ck_email_str(str, stre)){
		field.focus();
		return false;}
	return true;
}

function ck_length(field, len, str)
{
	if (field.value.length < len)
	{
		if (str!="")
		{
			field.focus();
			alert(str);
		}
		return false;
	} else
		return true;
}

//-----------------------------------------------------------------------
function ck_luhn(card_field, card_type) {
	//card_type values : Visa, Mastercard, American express, Discover
	var card_number_local;
	var total=0;
	var digit,sum,multiply;

	card_number_local = card_field.value;
	if (card_number_local.length < 13 || card_number_local.length > 16) {
		alert("Invalid card number !");
		card_field.focus();
		return false;
	}
	if (card_type == "Visa") {
		if (card_number_local.charAt(0) != "4") {
			alert("Invalid Visa card !");
			card_field.focus();
			return false;
		}
	}
	if (card_type == "Mastercard") {
		if (card_number_local.charAt(0) != "5") {
			alert("Invalid Mastercard !");
			card_field.focus();
			return false;
		}
	}
	if (card_type == "American express") {
		if (card_number_local.charAt(0) != "3" && card_number_local.charAt(1) != "7") {
			alert("Invalid American express card !");
			card_field.focus();
			return false;
		}
	}
	if (card_type == "Discover") {
		if (card_number_local.charAt(0) != "6") {
			alert("Invalid Discover card !");
			card_field.focus();
			return false;
		}
	}
	while (card_number_local.length < 16)
		card_number_local = "0" + card_number_local;
	for (i=1;i<=16;i++) {
		digit = parseInt(card_number_local.charAt(i-1));
		multiply = 1+(i%2);
		sum = digit * multiply;
		if (sum > 9)
			sum = sum - 9;
		total = total + sum;
	}
	if (total%10 !=0) {
		alert("Invalid card number !");
		card_field.focus();
		return false;
	}
	return true;
}
//-----------------------------------------------------------------------
function set_checkboxes(the_form, chk_elements, do_check) {
	var elts = document.forms[the_form].elements[chk_elements];
    var elts_cnt  = (typeof(elts.length) != 'undefined') ? elts.length : 0;
    if (elts_cnt) {
        for (var i = 0; i < elts_cnt; i++) {
            elts[i].checked = do_check;
        }
    } else {
        elts.checked = do_check;
    }
    return true;
}
//-----------------------------------------------------------------------
function check_selected_records(the_form, chk_elements, str, allow_delete, delete_str, operation) {
	var elts = document.forms[the_form].elements[chk_elements];
	var elts_cnt  = (typeof(elts.length) != 'undefined') ? elts.length : 0;
	var go_down;

	go_down = false;
	if (elts_cnt) {
		for (var i = 0; i < elts_cnt; i++) {
			if (elts[i].checked) {
				go_down = true;
				break;
			}
		}
    } else {
        if (elts.checked) go_down = true;
    }
	if (!go_down) {
		alert(str);
		return false;
	}
	if (allow_delete) {
		if (!confirm(delete_str)) return false;
	}
	document.forms[the_form].caller.value = operation;
	document.forms[the_form].submit();
	return true;
}
//-----------------------------------------------------------------------
function open_window(location, width, height) {
	var w = width * screen.width;
	var h = height * screen.height;
	var winl = (screen.width - width) / 2;
	var wint = (screen.height - height) / 2;

	winprops = 'height='+height+',width='+width+',top='+wint+',left='+winl
	myWin = window.open(location,'picker','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,'+winprops);
	myWin.focus();
}
//-----------------------------------------------------------------------
function check_login_form2(login_form) {
	var f = document.forms.login_form;
	return(ck_text(f.user_name, "", "Please enter your user name !")&&ck_text(f.user_password, "", "Please enter your password !"));
}
//-----------------------------------------------------------------------
function check_login_form(f) {
	return(ck_text(f.user_name, "", "Please enter your user name !")&&ck_text(f.user_password, "", "Please enter your password !"));
}
//-----------------------------------------------------------------------
function check_notification_email_days(email_field, day_field, str) {
	if (email_field[0].checked) {
		return ck_number_positive(day_field, str, false, false);
	}
	return true;
}
//-----------------------------------------------------------------------
function check_external_program_survey(field_1, field_2, str) {
	if (field_1.checked) {
		return ck_text(field_2, "", str);
	}
	return true;
}
//-----------------------------------------------------------------------

// hide/display display div at consecutive calls
function toggleDiv(id)
{
	obj = document.getElementById(id);
	
	if (obj.style.display == 'none')
	{
		obj.style.display = '';
		return 1;
	}
	else 
	{
		obj.style.display = 'none';
		return 0;
	}
}


	// scrolls a textarea/textbox to end 
    function setCaretToEnd(control) 
    {
        if (control.createTextRange) {
            var range = control.createTextRange();
            range.collapse(false);
            range.select();
        }
        else if (control.setSelectionRange) {
            control.focus();
            var length = control.value.length;
            control.setSelectionRange(length, length);
        }
    }


