// common.js

// copyright (c) 2002, Vallby InformationsSystem AB, Sweden



// global variables

var giMs;

var giSubmitCount;



///////////////////////////////

// string functions



function fsOnlyDig(sStr)

{

	var i;

	var n;

	var ch;

	var sRet;

	sRet = "";

	n = sStr.length;

	for (i=0; i < n; i++) {

		ch = sStr.substring(i,i+1);

		if (ch >= '0' && ch <= '9')

			sRet += ch;

	}

	return sRet;

}



function fsNoSpace(sStr)

{

	var i;

	var n;

	var ch;

	var sRet;

	sRet = "";

	n = sStr.length;

	for (i=0; i < n; i++) {

		ch = sStr.substring(i,i+1);

		if (ch != ' ')

			sRet += ch;

	}

	return sRet;

}



function fsTrim(sStr)

{

	var i, n;

	var ch;

	var iB, iE;

	var bB, bE;



	bB = bE = false;

	iB = iE = 0;



	n = sStr.length;



	if (n == 0)

		return "";



	for (i=0; i < n; i++) {

		ch = sStr.substring(i,i+1);

		if (ch != ' ') {

			bB = true;

			iE = i;

		} else {

			if (bB == false) iB++;

			iE = i;

		}

	}

	return sStr.substring(iB,iE+1);

}



function fsLeft(sStr,iLen)

{

	var sRet;

	var iCurlen;

	iCurlen = sStr.length;

	sRet = sStr.substring(0,Math.min(iCurlen,iLen));

	while (iCurlen < iLen)

		sRet += ' ';

	return sRet;

}



// base 1 i.e. fsRight("123",2) gives "23"

function fsRight(sStr,iPos)

{

	var sRet;

	var iCurlen;

	iCurlen = sStr.length;

	if (iPos > iCurlen)

		return "";

	else

		return sStr.substring(iPos-1,iCurlen);

}



function fbModule10(sStr)

{

	var sTmp;

	var n;

	var ix;

	var iWeight;

	var iCheckDig;

	var iCheckVal = 0;

	var iCheckSum = 0;

	

	sTmp = fsTrim(sStr);

	sTmp = fsOnlyDig(sTmp);

	n = sTmp.length - 1;

	iCheckDig = parseInt(sTmp.substring(n,n+1))



	for (ix = 0; ix < n; ix++) {



		if ((ix % 2) == 0)

			iWeight = 2;

		else

			iWeight = 1;



		iCheckVal = parseInt(sTmp.substring(ix,ix+1)) * iWeight;

		iCheckSum = iCheckSum + Math.floor(iCheckVal/10) + iCheckVal%10;



	}

	iCheckSum = (10 - (iCheckSum % 10)) % 10;



	if (iCheckSum != iCheckDig)

		return false;



	return true;

}



function fbEmailCheck(sStr)

{

	if (sStr.indexOf('@') < 0)

		return false;



	if (sStr.indexOf('.') < 0)

		return false;



	return true;

}



function fsFormat(sStr, sPat)

{

	var sRet;

	var i, n, j, k;

	var chp, chs;



	sRet = "";

	i = 0;

	j = 0;

	n = sStr.length;

	k = sPat.length;

	while (i < n && j < k) {

		chs = sStr.substring(i,i+1);

		chp = sPat.substring(j,j+1);

		if (chp == '#') {

			sRet += chs;

			i++;

		} else {

			sRet += chp;

		}

		j++;

	}

	return sRet;

}



////////////////////////////////

// SpecialFunction for timestamp



function fsTID()

{

  var sDate;

  sDate = new Date();

  return sDate.getTime();

}

function fsMilli()
{
  var sDate;
  sDate = new Date();
  return sDate.getMilliseconds();
}


///////////////////////////////

// Functions on an Window



function fwxZeroSubmitCount()

{

	giSubmitCount = 0;

	giMs = fsTID();

}



function fwxEnter()

{

	fwxZeroSubmitCount();

}



function fwxVerify()

{

	if ((fsTID() - giMs) > 1000) fwxZeroSubmitCount();

	return (++giSubmitCount == 1) ? true : false;

}



function fwxDefaultStatus(sText)

{

	window.defaultStatus = sText;

}



function fwbStatus(sText)

{

	window.status = sText;

	return true;

}


function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}


///////////////////////////////

// Functions on an Element



function feeCtrl(form,sName)

{

	var ctrl;

	var i;

	var n;

	n = form.elements.length;

	for	(i=0; i < n; i++) {

		ctrl = form.elements[i];

		if (ctrl.name == sName)

			return ctrl;

	}

	return null;	

}



function fexOnlyDig(ctrl)

{

	ctrl.value = fsOnlyDig(ctrl.value);

}



function fexNoSpace(ctrl)

{

	ctrl.value = fsOnlyDig(ctrl.value);

}



function fexToUpper(ctrl)

{

	ctrl.value = ctrl.value.toUpperCase();

}



function fexToLower(ctrl)

{

	ctrl.value = ctrl.value.toLowerCase();

}



function fexTrim(ctrl)

{

	ctrl.value = fsTrim(ctrl.value);

}



function febIsEmpty(ctrl)

{

	fexTrim(ctrl);

	if (ctrl.value.length < 1)

		return true;

	else

		return false;

}



function febEmailCheck(ctrl)

{

	return fbEmailCheck(ctrl.value);

}



function fexFormat(ctrl,pattern)

{

	ctrl.value = fsFormat(ctrl.value,pattern);	

}



function febCheckCivilRegNo(ctrl,iDigits)

{

	var bOK;

	var sTmp;



	sTmp = ctrl.value;

	fexOnlyDig(ctrl);



	bOK = true;

	if (ctrl.value.length != iDigits)

		bOK = false;

	else if (fbModule10(ctrl.value) == false)

		bOK = false;



	return bOK;

}



// countdown for a textbox

function fexMaxTextboxLen(ctrl,maxLength, ctrlCounter)

{

	if (ctrl.value.length > maxLength) { 

		ctrl.value = ctrl.value.substring(0,maxLength);

		charleft = 0;

    } else {

		charleft = maxLength - ctrl.value.length;

	}

	eval("ctrl.form." + ctrlCounter + ".value = charleft");

}



// function for url in popup with focus at popup-window for prenumeration
function show(url)
     {

    w = window.open(url,"pren","height=500,width=550,status=no,toolbar=no,menubar=no,location=no");
    w.focus();

    }

//  End 


// eof

