//popup
function openPopup(name, url, features){

//	url = url.replace('//', '/');
	url = url.replace('default.asp', 'lib/basic_ex.asp');

	var wWin = parent.open(url, name, features);
	if(wWin==null){
		alert (getString("Det går inte att öppna ett fönster. Detta kan bero på att för många webbläsarfönster redan är öppna.")) ;
	}
}


function cancelEvent(e) {
	return false;
}


//validate
function isEmpty(fld){
	if(fld){
	if (!fld.value.length || fld.value==null) {
		_reportError(fld, getString("Det rödmarkerade fältet får inte lämnas tomt!"));
		return true;
	}else {
		return false;
	}
	}else{
	    return true;
	}
}
function isNumeric(fld) {
    if(fld){
	if (isNaN(fld.value)) {
		_reportError(fld, getString("Det rödmarkerade fältet får bara innehålla numeriska värden!"));
		return false;
		}else {
			return true;
		}
	}else{
	    return true;
	}
}

function isDate(fld){
	if(fld){
	if(fld.value.length==0)
		return true;

	var date = fld.value;
	var year = date.substring(0,4);
	var month = date.substring(5,7);
	var day = date.substring(8,10);
	if (_timeValidateDec(year) && _timeValidateDec(month) && _timeValidateDec(day) && date.length == 10) {
		var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		if (parseInt(year/4)*4 == year) { months[1] = 29 }
		if (parseInt(year/100)*100 == year) { months[1] = 28 }
		if (parseInt(year/400)*400 == year) { months[1] = 29 }
		if (_timeCheckInterval(month, 1, 12) && _timeCheckInterval(day, 1, months[parseInt(month)-1]) && date.substring(4,5) == "-" && date.substring(7,8) == "-"){
			return true;
		} else {
			_reportError(fld, getString("Det rödmarkerade fältet innehåller inte ett giltigt datum! Giltigt format är (yyyy-mm-dd)"));
			return false;
		}
	} else {
		_reportError(fld, getString("Det rödmarkerade fältet innehåller inte ett giltigt datum! Giltigt format är (yyyy-mm-dd)"));
		return false;
	}
	}else{
	    return true;
	}
}

function isTime(fld) {
    var val = fld.value;
	if(val.length==0)
		return true;

   	var strTime = /^(\d{1,2})(\:)(\d{1,2})$/;
   	var strFormat = val.match(strTime);
   	
	if (strFormat == null)
	{
		_reportError(fld,getString("Det rödmarkerade fältet är inte i tidsformatet hh:mm!"));
		return false;
	}
   	else {
		// Validate for this format: 15:48

		if (strFormat[1] > 23 || strFormat[1] < 00)
		{
			_reportError(fld,getString("Det rödmarkerade fältet innehåller timme som inte är mellan 00 och 23!"));
			return false;
		}

		if (strFormat[3] > 59 || strFormat[3] < 00)
		{
		    _reportError(fld,getString("Det rödmarkerade fältet innehåller minut som inte är mellan 00 och 59!"));
			return false;
		}

    	return true;
    }
}

function isBetween(fld, min, max){
	if(fld.value<min&&min!=null||fld.value>max&&max!=null){
		_reportError(fld,getString("Det rödmarkerade fältet är inte mellan dom tillåtna gränserna!"));
		return false;
	}else
		return true;
}

function isEmail(fld){
    var re = new RegExp(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
    if(!re.test(fld.value)){
		_reportError(fld,getString("Det rödmarkerade fältet är inte en e-postadress!"));
		return false;
    }else{
        return true;    
    }
}

//**Radio/Checkbox validering**
function isSelected(fld, count){
	var totalCount=count;
	if(fld.length){
		for(var i=0;i<fld.length;i++){
			if(fld[i].checked){
				if(!count){
					return true;
					break;
				}else{
					count--;
					if(count==0){
						return true;
						break;
					}
				}
			}
		}
		if(!count)
			_reportError(fld, getString("Ett av fälten måste vara markerade!"))
		else
			_reportError(fld, totalCount+" "+getString("av fälten måste vara markerade!"))
			
		return false;
	}else{
		if(fld.checked)
			return true;
		else{
			_reportError(fld, getString("Ett av fälten måste vara markerat!"))
			return false;
		}
			
	}
	
}


function _timeValidateDec(dec){
	var b = "0123456789";
	for (n=0; n<dec.length; n++){
		if (b.indexOf(dec.charAt(n)) < 0){
			return false;
			break;
		}
	}
	return true;
}
function _timeCheckInterval(value, minValue, maxValue){
	if (value.indexOf(",") > -1) value = value.substring(0, value.indexOf(",")) + "." + value.substring(value.indexOf(",")+1,value.length)
		value = parseFloat(value);
		if (value > maxValue || value < minValue){
			return false;
		} else {
			return true;
		}
}


//**funktion som hanterar hur felaktigt värde ska hanteras
function _reportError(fld, txt){
	if(fld.length){
		for(var i=0;i<fld.length;i++){
			fld[i].style.borderColor='#ff0000';
		}
	}else{
		fld.style.borderColor='#ff0000';
	}
		
	alert(txt);
}


//quiz, questionnaire
//var gValidate = true;

function setValidating(state){
	gValidate=state;
}

function getValidating(){
	return gValidate;
}

function openQuizWindow(id){
	var url="/lib/quiz/highscore.asp?id="+id
	var wWin = parent.open(url,"quizhighscore"+id,"scrollbars, height=500,width=350");
}

//menu
function mo(itm){}
function mot(itm){}


//language
var lang_strings;

function setLanguage(lcid){
    lang_strings = new Array();
    document.write('<script src="lib/js/lang-' + lcid + '.js" type="text/JavaScript"><\/script>');
}

function getString(id){
    if (lang_strings)
    {
        r = lang_strings[id];
        if(!r)
            r = id
        return r;
    }
    else
        return id;
}