
var _VALIDATE  = true ;

var _CHECKBOX  =  1 ;
var _RADIO     =  2 ;
var _TEXT      =  3 ;
var _OTHER     = -1 ;

var _NONULL    =  1 ;
var _ALLVALUES =  0 ;

var _NOERROR            = 0 ;
var _ERROR_NONULL       = 1 ;
var _ERROR_NONULLFLOAT  = 2 ;
var _ERROR_NOINT        = 3 ;
var _ERROR_NOFLOAT      = 4 ;

function noValidate() {
	_VALIDATE = false ;
}

function fieldValue( thisOne, allowed ) {

	switch( fieldValueTest( thisOne, allowed ) ) {
		case _ERROR_NONULL : alert('Verdier mindre enn 1 er ikke lov i dette feltet') ; break ;
		case _ERROR_NOINT  : alert('Feltet kan kun inneholde hele tall') ; break ;
		default: break ;
	}
}

function fieldValueFloat( thisOne, allowed ) {

	switch( fieldValueFloatTest( thisOne, allowed ) ) {
		case _ERROR_NONULLFLOAT : alert('Verdier mindre enn eller lik 0 er ikke lov i dette feltet') ; break ;
		case _ERROR_NOFLOAT     : alert('Feltet kan kun inneholde tall') ; break ;
		default: break ;
	}
}

function fieldValueTest( thisOne, allowed ) {

	var v = thisOne.value ;
	var ok = 1 ;
	var ret = _NOERROR ;
	
	if (!v) ok = 0 ;
	
    var Chars = "0123456789";

    for (var i = 0; i < v.length; i++) {
       if (Chars.indexOf(v.charAt(i)) == -1)
          ok = 0 ;
    }
    
	if(ok == 0) {
		ret = _ERROR_NOINT ;
	} else {
		if(allowed == _NONULL) {
			var vv = v + 1 - 2 + 1 ;
			if( vv <= 0) ret = _ERROR_NONULL ; // alert('Verdier mindre enn 1 er ikke lov i dette feltet') ;
		}
	}
	
	thisOne.focus() ;
	
	return ret ;
}

function fieldValueFloatTest( thisOne, allowed ) {
	var v = thisOne.value ;
	var ok = 1 ;
	ret = _NOERROR ;
	
	if (!v) ok = 0 ;
	
    var Chars = "0123456789.,";

    for (var i = 0; i < v.length; i++) {
       if (Chars.indexOf(v.charAt(i)) == -1)
          ok = 0 ;

    }
    
	if(ok == 0) {
		ret = _ERROR_NOFLOAT ;
	} else {
		if(allowed == _NONULL) {
			var vv = v + 1.5 - 2.5 + 1.0 ;
			if( vv <= 0) ret = _ERROR_NONULLFLOAT ;
		}
	}
	
	thisOne.focus() ;
	
	return ret ;
}

function clearFirst( thisOne ) {

	eval("var tmpForm = document." + strFormName) ;
	
	var elements = tmpForm.elements.length ;
	var lastCheckbox = null ;
	
	var onOrOff = thisOne.checked ;
	var counter = 0 ;
	
    for (var i = 0; i<elements; i++) {
	
		var element  = tmpForm.elements[i] ;
		
		lastType = isA( element ) ;
		
		if(lastType == _CHECKBOX) {
		
			if( getName( element ) == getName( thisOne ) ) {
				lastCheckbox = getName( element ) ;
				counter = 1 ;
			} else {
				lastCheckbox = null ;
				counter = 0 ;
			}
		}
		
		if( lastCheckbox != null && lastType == _RADIO ) {
			// alert( counter ) ;
			if(onOrOff == true) {
				if( counter == 1) {
					element.checked = true ;
					counter = 0 ;
				}
			} else {
				element.checked = false ;
			}
		}
    }
}

function switchFirst( thisOne ) {

	eval("var tmpForm = document." + strFormName) ;
	
	var elements = tmpForm.elements.length ;
	var lastCheckbox = null ;
	
    for (var i = 0; i<elements; i++) {
	
		var element  = tmpForm.elements[i] ;
		
		lastType = isA( element ) ;
		
		if(lastType == _CHECKBOX) {
			lastCheckbox = getName( element ) ;
		}
		
		if( lastType == _RADIO ) {
			
			if( getName( element ) == getName( thisOne ) ) {
			
				eval( "tmpForm." + lastCheckbox + ".checked = true ") ;
				break ;
			
			}
			
		}
    }
	
}

function anySelected () {
	
	eval("var tmpForm = document." + strFormName) ;

	var ret = false ;
    
	for (var i = 0; i<sections.length; i++) {
	
		var e = document.formName ;
		var val = false ;
		
		str = "val = getStatus( tmpForm."+ sections[i] +" ) ; " ;
		
		eval( str ) ;
		
		if( val == true) ret = true ;
	}
	
	return ret ;
}

function anyTextSelected () {
	
	eval("var tmpForm = document." + strFormName) ;

	var ret = true ;
	
	var sections = tmpForm.elements ;
    
	// alert( sections.length ) ;
	
	for (var i = 0; i<sections.length; i++) {
	
		var e = document.formName ;
		var val = false ;
		
		val = isA( sections[i] ) ;

		if( val == _TEXT) {
			
			ww = fieldValueFloatTest( sections[i], _ALLVALUES ) ;
			
			// alert(ww) ;
	
			if(ww != _NOERROR) ret = false ;
		}
	}
	
	return ret ;
}

function isA( thisOne ) {
	var n = thisOne.type ;
	// alert(thisOne.type.indexOf('checkbox')) ;
	if ( thisOne.type.indexOf('checkbox') == 0) { 
		return _CHECKBOX ; 
	} else {
		if ( thisOne.type.indexOf('radio') == 0) { 
			return _RADIO ; 
		} else {
			if ( thisOne.type.indexOf('text') == 0) { 
				return _TEXT ; 
			} else {
				return _OTHER ;
			}
		}
	}
}

function getName( thisOne ) {
	return thisOne.name ;
}

function getValue( thisOne ) {
	return thisOne.tabIndex ;
}

function getStatus( thisOne ) {
	if ( thisOne.checked != 0) { 
		return true ; 
	} else {
		return false ;
	}
}


function cycle() {
	if(_VALIDATE) {
		if (anySelected() == false) {
			alert('Ingen valgte : minst èn checkbox må være valgt') ; 
			return false;
		}
	}
	return true ;
}

function cycleText() {
	if(_VALIDATE) {
		if (anyTextSelected() == false) {
			alert('Alle feltene må fylles ut') ; 
			return false;
		}
		if(!cycle()) {
			return false ;
		}
	}
	return true ;
}
