var requirement_fields=new Array();
var cur_ind=0;

function rfield(name, text, req_fld, max_chars, min_chars, eml, num){
	this.name = name;
	this.text = text;
        if(isNaN(parseInt(req_fld))){
		this.req = 1;
	}else{
		this.req = parseInt(req_fld);
	}
        if(!isNaN(parseInt(max_chars))){
		this.max_chars = parseInt(max_chars);
	}else{
		this.max_chars = 0;
	}
        if(!isNaN(parseInt(min_chars))){
		this.min_chars = parseInt(min_chars);
	}else{
		this.min_chars = 0;
	}
        if(!isNaN(parseInt(eml))){
		this.eml = parseInt(eml);
	}else{
		this.eml = 0;
	}
        if(!isNaN(parseInt(num))){
		this.num = parseInt(num);
	}else{
		this.num = 0;
	}
}

function checkForm(objForm){
	var r = /\S+/;
	for (var i=0; i<requirement_fields.length; i++){
		var rf = requirement_fields[i];
		var arr = getFieldByName(objForm, rf.name);
		//alert(arr.length);
		var check = true;
		for (j=0; j<arr.length; j++){
			var fld = arr[j];
			//alert(fld.name+' '+fld.type);
			if (fld.type=="textarea" || fld.type=="text"){
				var val = fld.value;
				if (rf.req){
				if (!r.test(val)){
					alert("Please fill in "+rf.text+" field");
					return false;
				}
				}
				if (rf.max_chars>0 && val.length>rf.max_chars){
					alert("Max field length for "+rf.text+" must be less "+rf.max_chars);
					return false;
				}
				if (rf.min_chars>0 && val.length<rf.min_chars){
					alert("Field "+rf.text+" must be at least "+rf.min_chars+" characters");
					return false;
				}
				if (rf.eml && !checkEmail(val)){
					alert("Incorrect e-mail");
					return false;
				}
				if (rf.num && !checkNumber(val)){
					alert(rf.text+" field must be integer positive digit greater or equal 1 and less 1000");
					return false;
				}
			}
			if (fld.type=="checkbox" || fld.type=="radio"){
				if (!j){
					check = false;
				}
				check = check||fld.checked;
			}
			if (fld.type=="select-one"){
				if (rf.req && fld.value==""){
					alert("Please select "+rf.text+" field");
					return false;
				}
			}
		}
		if (!check){
			alert("Please select "+rf.text+" field");
			return false;
		}
	}
	return true;
}

function getFieldByName(objForm, name){
	var ret = new Array();
	var i=0;
	for (j=0; j<objForm.elements.length; j++){
		var fld = objForm.elements[j];
		if (fld.name.indexOf(name)==-1){
			continue;
		}
		ret[i]=fld;
		i++;
	}
	return ret;
}

function resetFlds(objFrm){
	for(var i=0;i<objFrm.elements.length;i++){
		var elm = objFrm.elements[i];
		if (elm.type=='text' || elm.type=='textarea'){
			elm.value='';
		}
	}
}

function checkNumber(val) 
{
	var nmb = parseInt(val);
	return !isNaN(nmb)&&nmb>0&&nmb<999;
}

function checkEmail(email) 
{
  	var not_valid = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
  	var valid = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;

  	return (!not_valid.test(email) && valid.test(email));
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location.href='"+args[i+1]+"'");
}

function copyField(src, dst){
	var val = "";
	if (src.type=='select-one'){
		val = src.value
	}else{
		val = src.value
	}
	if (dst.type=='select-one'){
		for (var i=0; i<dst.length; i++){
			if (dst[i].value == val){
				dst.selectedIndex = i;
				return;
			}	
		}
		return;
	}
	dst.value = val;
}

function copyDSpecField(frm, tbl_pref, src1, src2, dst){
	var arrs = getFieldByName(frm, tbl_pref+src1);
	var arrs1 = getFieldByName(frm, tbl_pref+src2);
	var arrd = getFieldByName(frm, tbl_pref+dst);
	arrd[0].value = arrs[0].value+' '+arrs1[0].value;
}

function copySpecField(frm, tbl_pref, src, dst){
	var arrs = getFieldByName(frm, tbl_pref+src);
	var arrd = getFieldByName(frm, tbl_pref+dst);
	copyField(arrs[0], arrd[0]);
}

function copyFields(frm, tbl_pref, src_pref, dst_pref){
	var fprefix = tbl_pref+dst_pref;
	var arr = getFieldByName(frm, fprefix);
	for (var i=0; i<arr.length; i++){
		var fld=arr[i];
		var fname = fld.name
		fname = fname.substr(fprefix.length);
		var arr1 = getFieldByName(frm, tbl_pref+src_pref+fname);
		if (arr1.length>0){
			copyField(arr1[0], arr[i]);
		}
	}
}
