	/***************************************************/
	/**** Functions to get a set of random numbers *****/
	var strCurrentPicks = "";
	var prevPicks = "";

	function getRandom(iMax){
		iMax++;
		iExp = parseInt("0" + Math.log(iMax)/Math.log(10))+1;
	
		vData = Math.round(Math.pow(10,iExp) * Math.random())%iMax;
		if(isNaN(vData)) vData =0;
		return vData;
	}

	function pickNumbers(iNumOfVal,iMax){
		var iRanVal = 0;
	
		//exit the recurring function
		if(iNumOfVal==0){prevPicks = strCurrentPicks;	return; }

		//check valid numeric and Max number values
		if((2*iNumOfVal > iMax+1) || iNumOfVal=="" || isNaN(iNumOfVal) || iMax=="" || isNaN(iMax) || iNumOfVal > 20) return "";
		
		iRanVal = getRandom(iMax);

		while(String("#" + strCurrentPicks).indexOf("#" + iRanVal + "#")!=-1 || String("#" + prevPicks).indexOf("#" + iRanVal + "#")!=-1){
			iRanVal++;
			if(iRanVal>iMax)	iRanVal=0;
		}
		
		strCurrentPicks	+= iRanVal + "#";

		pickNumbers(iNumOfVal-1,iMax);
	}
	/***************************************************/
