function GenerateCode(preFix, control)
{
    var length;
    var sVal = preFix;
    length = 16;

    for (i=0; i < length; i++) {

        numI = getRandomNum();
        while (checkPunc(numI)) { numI = getRandomNum(); }

        sVal = sVal + String.fromCharCode(numI);
    }

    control.value = sVal

    return true;
}

function getRandomNum() {

    // between 0 - 1
    var rndNum = Math.random()

    // rndNum from 0 - 1000
    rndNum = parseInt(rndNum * 1000);

    // rndNum from 33 - 127
    rndNum = (rndNum % 94) + 33;

    return rndNum;
}

function checkPunc(num) {
	var val = String.fromCharCode(num);
	var allow = '-.@_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	if(allow.indexOf(val)>=0)
	{
		return false;
	}
	return true; //not allow !"#$%&'()*+,/:;<=>?[\]^`{|}~
}
function checkPunc1(num) {

    if ((num >=33) && (num <=47)) { return true; }
    if ((num >=58) && (num <=64)) { return true; }
    if ((num >=91) && (num <=96)) { return true; }
    if ((num >=123) && (num <=126)) { return true; }
	
    return false;
}
