function Generate(){
var low=ranNum.low.value;
if (low==""){low=1;ranNum.low.value=1}
var high=ranNum.high.value;
if (high==""){high=20;ranNum.high.value=20}
var quantity=ranNum.quantity.value;
if (quantity==""){quantity=10;ranNum.quantity.value=10}
if (quantity>high-low+1)
{alert ("There are only "+(high-low+1)+" numbers available. For best results restrict number to about "+Math.round((high-low+1)*.67));ranNum.quantity.value=parseInt(high-low+1);quantity=parseInt(high-low+1);ranNum.grn.focus();return false;}

num= new Array(quantity);
for (n=0; n<quantity; n++)
{numb=parseInt(high*Math.random()+1);
while (numb<low) 
{numb=parseInt(high*Math.random()+1)}
num[n]=numb;	

//try to eliminate duplicate numbers
for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}

for (y=0; y<n; y++)
{if (num[n]==num[y])
	{numb=parseInt(high*Math.random()+1);
	while (numb<low) 
		{numb=parseInt(high*Math.random()+1)}
		num[n]=numb}
	}
}

random.innerHTML="Random Numbers : ";
sorted.innerHTML="Sorted Numbers : ";
thestring="";
for (n=0; n<quantity; n++)
{if (n==quantity-1)
{random.innerHTML=random.innerHTML+num[n];
thestring=thestring+num[n]}
else
{random.innerHTML=random.innerHTML+num[n]+" "
thestring=thestring+num[n]+" "}
	}

inputString = thestring;
inputNumbers = inputString.split(" ");
for (var i = 0; i < quantity; i++) 
{inputNumbers[i] = parseInt(inputNumbers[i], 10)}

inputNumbers = bubbleSort(inputNumbers, 0, quantity - 1);
sorted.innerHTML=sorted.innerHTML+resultString(inputNumbers, 0);
}

function resultString(inputArray, quantity) {
if ((inputArray.length  - 1) >= quantity) 
return (inputArray[quantity] + " " + resultString(inputArray,(quantity + 1)));
else return "";
}
function bubbleSort(inputArray, start, rest) {
for (var i = rest - 1; i >= start;  i--) {
for (var j = start; j <= i; j++) {
if (inputArray[j+1] < inputArray[j]) {
var tempValue = inputArray[j];
inputArray[j] = inputArray[j+1];
inputArray[j+1] = tempValue;
      }
   }
}
return inputArray;
}

var clockID=0
function UpdateClock()
{
if (clockID)
{clearTimeout(clockID);
clockID = 0;}

var H,M,S,Mth,Day,AMPM,Yr
var tDate = new Date();
Day=tDate.getDate()
if (Day<10)
{Day="0"+Day;}

Mth=tDate.getMonth()+1
if (Mth==1){Mth="Jan"}
if (Mth==2){Mth="Feb"}
if (Mth==3){Mth="Mar"}
if (Mth==4){Mth="Apr"}
if (Mth==5){Mth="May"}
if (Mth==6){Mth="Jun"}
if (Mth==7){Mth="Jul"}
if (Mth==8){Mth="Aug"}
if (Mth==9){Mth="Sep"}
if (Mth==10){Mth="Oct"}
if (Mth==11){Mth="Nov"}
if (Mth==12){Mth="Dec"}

Yr=tDate.getFullYear()

H=tDate.getHours();
if (H>11){AMPM="pm";}
else
{AMPM="am";}

if (H>12){H=H-12;}
if (H<10){H="0"+H;}

M=tDate.getMinutes()
if (M<10){M="0"+M;}

S=tDate.getSeconds()
if (S<10){S="0"+S;}

theTime.innerHTML = Day + " " + Mth + " " + Yr + "::"
+ H + ":" + M + ":" + S + AMPM;
clockID = setTimeout("UpdateClock()",1000);
}

function StartClock() {
clockID = setTimeout("UpdateClock()",1000);
}

function KillClock() {
if (clockID)
 {clearTimeout(clockID);
 clockID = 0;}
}

function addbookmark()
{
if (document.all)
{window.external.AddFavorite(document.location,document.title)}
}
