/*
*	Fil för att hantera validering av fält
*/
function checkAndSubmitForcedFields(e){
	if(e && e.tagName && e.tagName=='FORM'){
		frm=e;
	}else{
		frm=Event.findElement(e,'form');
	}	
	if(checkForcedFields(e)){
		if($('destinator_doWCM')!=null){
			$('destinator_doWCM').value='save';
		}
		frm.submit();
	}
}
function checkForcedFields(e){
	if(e && e.tagName && e.tagName=='FORM'){
		frm=e;
	}else{
		frm=Event.findElement(e,'form');
	}
	if($('destinator_maint_text_password')){
		if($('destinator_maint_text_password').value != $('destinator_maint_text_password2').value){
			alertSysMsg('NOPASSWORDMATCH');
			return false;
		}
	}
	var ret=$A(frm.elements).detect(function(elm, index){
		$(elm).removeClassName('D_ERROR');
		if(Element.hasClassName(elm, 'D_VALIDATE')){
			if(Element.hasClassName(elm, 'D_NOTEMPTY')){
				if(!FormValidation.isNotEmpty(elm)){
					return true;
				}
			}
			if(Element.hasClassName(elm, 'D_EMAIL')){
				if(!FormValidation.isEmailAddress(elm)){
					return true;
				}
			}else if(Element.hasClassName(elm, 'D_NUMBER')){
				if(!FormValidation.isNumber(elm)){
					return true;
				}
			}else if(Element.hasClassName(elm, 'D_RADIO')){
				if(!FormValidation.isValidRadio(elm)){
					return true;
				}
			}
		}
	});
	if(ret!=null){
		FormValidation.checkHiddenAndFocus(ret);
		return false;
	}
	var cb=$A($$('div.D_CHECKED'));
	if(cb.length && cb.length >0){
		if(!cb.any(FormValidation.checkCheckboxes)) {
			return false;
		}
	}
	/*
	if($('captcha-input')){
		var test=false;
		new Ajax.Request('/admin/ajax/ajax_core.php', {method:'post', postBody:'doWCM=captcha&captcha='+$('captcha-input').value, asynchronous:false, onSuccess:function(t){var msg=t.responseText; if(msg=='OK'){test=true;}else{test=false;}}});
		if(!test){
			alertSysMsg('CAPTCHAERR');
			FormValidation.setErrorClass($('captcha-input'));
			$('captcha-input').focus();
			return false;
		}else{
			FormValidation.clearErrorClass($('captcha-input'));
		}
	}
	*/
	return true;
}
var FormValidationPrototype=Class.create();

FormValidationPrototype.prototype = {
	initialize: function(settings){
	},
	checkCheckboxes:function(elm) {
		var str = '#' + elm.id + ' input';
		if(!$A($$(str)).any(FormValidation.isChecked)) {
			alertSysMsg('NOTCHECKED');
			return false;
		}
		else {
			return true;
		}
	},
	isChecked:function(element) {
		return element.checked ? true : false;
	},
	checkHiddenAndFocus:function(elm){
		var field=elm;
		while(elm=FormValidation.getChild(elm)){
			if(!Element.visible(elm)){
				Element.toggle(elm);
			}
		}
		field.focus();
		$(field).addClassName('D_ERROR');
		return false;
	},
	getChild:function(field){
		if(field.parentNode && field.parentNode.tagName && field.parentNode.tagName=='BODY'){
			return false;
		}else{
			return field.parentNode;
		}
	},
	isValidRadio:function(radio,alertText){
		var valid=false;
		/*Ladda alla radioknappar med samma namn*/
		radio = $$('input[name="'+radio.name+'"]');
		//alert(radio.value+' ' + radio.name);
		for(var i=0;i < radio.length;i++){
			if(radio[i].checked){
				return true;
			}
		}
		if(alertText) {
			alertSysMsg(alertText);
		}
		else {
			alertSysMsg('NOVALIDRADIO');
		}
		return false;
	},
	isNotEmpty:function(field, markdivid){
		var str=field.value;
		var re=/.+/;
		if(!str.match(re)){
			alertSysMsg('NOTEMPTY');
			FormValidation.setErrorClass(field);
			field.focus();
			if($(markdivid)){
				$(markdivid).addClassName('error');
			}
			return false;
		}
		FormValidation.clearErrorClass(field);
		return true;
	},
	isNumber:function(field){
		var str=field.value;
		var re=/^[-]?\d*\.?\d*$/;
		str=str.toString();
		if(!str.match(re)){
			alertSysMsg('JUSTNUMBERS');
			FormValidation.setErrorClass(field);
			field.focus();
			return false;
		}
		FormValidation.clearErrorClass(field);
		return true;
	},
	isEmailAddress:function(field){
		var str=field.value;
		var re=/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
		if(!str.match(re)){
			alertSysMsg('NOTVALIDEMAIL');
			FormValidation.setErrorClass(field);
			field.focus();
			return false;
		}else{
			FormValidation.clearErrorClass(field);
			return true;
		}
	},
	setErrorClass:function(elm){
		$(elm).addClassName('validation_error');
	},
	clearErrorClass:function(elm){
		$(elm).removeClassName('validation_error');
	}
}
var FormValidation=new FormValidationPrototype();

function numeralsOnly(evt){
	var elm=Event.element(evt);
	evt=(evt)?evt:event;
	var charCode=(evt.charCode)?evt.charCode:((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
	if(charCode>31 && (charCode <48 || charCode>57) && charCode!=46 && !(charCode >95 && charCode < 106)){
		alertSysMsg('JUSTNUMBERS');
		var retstr=elm.value.substring(0,elm.value.length -1);
		elm.value=retstr;
		return false;
	}
	return true;
}
function checkMaxChars(max, evt){
	var elm=Event.element(evt);
	var curlength=elm.value.length;
	var countspan=$(elm.id+'_counter');
	if(curlength >= max+1 && max > 0){
		elm.value=elm.value.substring(0,max);
		curlength=elm.value.length;
		return false;
	}
	if(countspan){
		Element.update(countspan, (max - curlength) + ' ' +lang('SIGNSLEFT'));
	}
}