
loadTime = (new Date()).getTime();
var password = '';

function show_el(el_id) {
	var obj = document.getElementById(el_id);

    obj.style.visibility = "visible";
    obj.style.display = "inline";
}

function hide_el(el_id) {
	var obj = document.getElementById(el_id);

	obj.style.visibility = "hidden";
	obj.style.display = "none";
}

function addLink_sel() {
	Hide_and_Clear();
	show_el('slotType');
	document.forms[0].link_type_checked.value = '1';
	document.forms[0].submit();
}

function pressLink_sel() {
	Hide_and_Clear();
	show_el('slotType');
	document.forms[0].link_type_checked.value = '1';
	document.forms[0].submit();
}

function Contextual_sel() {
	Hide_and_Clear();
	show_el('Contextual');
}

function Random_sel() {
	Hide_and_Clear();
	show_el('Random');
}

function Hide_and_Clear() {
	hide_el('Contextual');
	hide_el('Random');
	hide_el('AddDestLink');
	hide_el('UorC');
	hide_el('formFinish');

	Contextual_Alpha_Clear();
	Random_Alpha_Clear();
	AddDestLink_clear();
}

function Contextual_Alpha_Confirm() {
	var obj = document.getElementById('CA_conf_box');

	obj.style.background = '#33CC33';
	obj.innerText = document.forms[0].Contextual_Alpha_text_prev.value;
	
	document.getElementById('Contextual_Alpha_text').disabled = true;
	document.getElementById('Contextual_Alpha_text').style.background = '#33CC33';
	
	show_el('AddDestLink');
}

function Contextual_Alpha_Clear() {
	var obj = document.getElementById('CA_conf_box');
	var obj_st = document.getElementById('Contextual_Alpha_status_text');
	obj.style.background = '#FFFFFF';
	obj.innerText = '';
	
	document.getElementById('Contextual_Alpha_text').disabled = false;
	document.getElementById('Contextual_Alpha_text').style.background = '#FFFFFF';

	document.getElementById('Contextual_Alpha_Confirm_but').disabled = true;
	document.getElementById('Contextual_Alpha_Check_but').disabled = false;
	
	document.forms[0].Contextual_Alpha_text.value = '';
	document.forms[0].Contextual_Alpha_text_prev.value = '';
	obj_st.innerText = '';
	
	document.getElementById('AddDestLink_text').value = '';
	AddDestLink_check();

	hide_el('AddDestLink');
	hide_el('UorC');
}

function Random_Alpha_Generate() {
	password = '';
	var pw_length = 10;
	var obj = document.getElementById('RA_rand_box');
	
	seed = Math.round((new Date()).getTime() % Math.pow(2, 31));
	ran0 = new LEcuyer((seed ^ Math.round(loadTime % Math.pow(2, 31))) & 0x7FFFFFFF);
	for (j = 0; j < (5 + ((seed >> 3) & 0xF)); j++) {
		n = ran0.nextInt(31);
	}
	while (n-- >= 0) {
		seed = ((seed << 11) | (seed >>> (32 - 11))) ^ ran0.next();
	}
	seed &= 0x7FFFFFFF;
	
    ran1 = new LEcuyer(seed);
	
	for (nchars = 0; nchars < pw_length; nchars++) {
		password += ran1.nextInt(9);
	}
	obj.innerText = password;
	obj.innerHTML = password;
	document.getElementById('Random_Alpha_Confirm_but').disabled = false;
}

function Random_Alpha_Confirm() {
	var obj = document.getElementById('RA_conf_box');

	obj.innerText = password;
	obj.style.background = '#33CC33';
	document.getElementById('Random_Alpha_Generate_but').disabled = true;
	show_el('AddDestLink');
	document.forms[0].RA_rand_box_h.value = password;
}

function Random_Alpha_Clear() {
	var obj_conf = document.getElementById('RA_conf_box');
	var obj_rand = document.getElementById('RA_rand_box');

	obj_conf.innerText = '';
	obj_conf.style.background = '#FFFFFF';
	obj_rand.innerText = '';
	document.getElementById('Random_Alpha_Confirm_but').disabled = true;
	document.getElementById('Random_Alpha_Generate_but').disabled = false;

	AddDestLink_clear();

	hide_el('AddDestLink');
	hide_el('UorC');
}

function AddDestLink_check() {
	var obj_text = document.getElementById('AddDestLink_text');
	var obj_but = document.getElementById('AddDestLink_but');

	if (obj_text.value == '') {
		obj_but.disabled = true;
	} else {
		obj_but.disabled = false;
	}
}

function AddDestLink_clear() {
	document.getElementById('AddDestLink_text').value = '';
	document.getElementById('AddDestLink_text').style.background = '#FFFFFF';
	document.getElementById('AddDestLink_text').disabled = false;
	AddDestLink_check();
	hide_el('UorC');
}

function AddDestLink_confirm() {
	document.getElementById('AddDestLink_text').style.background = '#33CC33';
	document.getElementById('AddDestLink_text').disabled = true;
	show_el('UorC');
}

function update() {
//	show_el('formFinish');
	document.getElementById('AddDestLink_text').disabled = false;
	document.forms[0].submit();
}

// Random Number Generate Functions
function LEcuyer(s) {
    var i;

    this.shuffle = new Array(32);
    this.gen1 = this.gen2 = (s & 0x7FFFFFFF);
    for (i = 0; i < 19; i++) {
        this.gen1 = uGen(this.gen1, 40014, 53668, 12211, 2147483563);
    }

    // Fill the shuffle table with values

    for (i = 0; i < 32; i++) {
        this.gen1 = uGen(this.gen1, 40014, 53668, 12211, 2147483563);
        this.shuffle[31 - i] = this.gen1;
    }
    this.state = this.shuffle[0];
    this.next = LEnext;
    this.nextInt = LEnint;
}

function uGen(old, a, q, r, m) {      // Schrage's modular multiplication algorithm
    var t;

    t = Math.floor(old / q);
    t = a * (old - (t * q)) - (t * r);
    return Math.round((t < 0) ? (t + m) : t);
}

function LEnext() {                   // Return next raw value
    var i;

    this.gen1 = uGen(this.gen1, 40014, 53668, 12211, 2147483563);
    this.gen2 = uGen(this.gen2, 40692, 52774, 3791, 2147483399);

    /* Extract shuffle table index from most significant part
       of the previous result. */

    i = Math.floor(this.state / 67108862);

    // New state is sum of generators modulo one of their moduli

    this.state = Math.round((this.shuffle[i] + this.gen2) % 2147483563);

    // Replace value in shuffle table with generator 1 result

    this.shuffle[i] = this.gen1;

    return this.state;
}

//  Return next random integer between 0 and n inclusive

function LEnint(n) {
    return Math.floor(this.next() / (1 + 2147483562 / (n + 1)));
}

