function uue(ss3) {	return escape(ss3).replace(/\+/g, '%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40'); }
function validClearType (ptype) { return ( (ptype != 'reset') && (ptype != 'submit') && (ptype != 'button') ); }
function validPostType (ptype) { return ( validClearType(ptype) && (ptype != 'password') ); }


function addLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload == 'function')
	{
		window.onload = function() {
			if (oldonload) oldonload();
			func();
		}
	}
	else
	{
		window.onload = func;
	}
}

function checkAll (formName, nameFilter, chkState, chkMode)
{
	var formCtl = document.getElementById(formName);
	var chkFilter = 'chk_'+nameFilter;
	if (formCtl != null){
		var counter;
		for (counter = 0; formCtl.elements[counter] != null; counter++) {
			var ctrlElement = formCtl.elements[counter];
			if (("checkbox".indexOf(ctrlElement.type)) != -1) {
				if ((ctrlElement.name.substring(0,chkFilter.length)) == chkFilter) {
					var found = true;
					if (chkMode){
						found = (ctrlElement.value.substring(0,1) == chkMode);
					}
					if (found){
						ctrlElement.checked = chkState;
					}
					else {
						ctrlElement.checked = !chkState;
					}
				}
			}
		}
	}
	return false;
}

function getFormPostVars (formName)
{
	var postVars = '';
	var formCtrl = document.getElementById(formName);
	if (formCtrl != null){
		var counter;
		for (counter = 0; formCtrl.elements[counter] != null; counter++){
			var ctrlElement = formCtrl.elements[counter];
			if (ctrlElement.type && ctrlElement.type.length && ctrlElement.name && ctrlElement.name.length){
				var postVar = null;
				if (ctrlElement.type == 'checkbox'){
					if (ctrlElement.checked) postVar = 1;
				}
                else if (ctrlElement.type == 'radio'){
					if (ctrlElement.checked) postVar = ctrlElement.value;
				}
				else if (validPostType(ctrlElement.type)){
					if (ctrlElement.value && ctrlElement.value.length) postVar = ctrlElement.value;
					else postVar = '';
				}
				if (postVar != null){
					if (postVars.length) postVars += '&';
					postVars += ctrlElement.name + '=' + uue(postVar);
				}
			}
		}
	}
	return postVars;
}

function clearFormFields (formName)
{
	var formCtrl = document.getElementById(formName);
	if (formCtrl != null){
		var counter;
		for (counter = 0; formCtrl.elements[counter] != null; counter++){
			var ctrlElement = formCtrl.elements[counter];
			if (ctrlElement.type && ctrlElement.type.length && ctrlElement.name && ctrlElement.name.length && ctrlElement.value){
				var postVar = null;
				if (ctrlElement.type == 'checkbox'){
					ctrlElement.checked = 0;
				}
				else if (validClearType(ctrlElement.type)){
					ctrlElement.value = '';
				}
				if (postVar != null){
					if (postVars.length) postVars += '&';
					postVars += ctrlElement.name + '=' + uue(postVar);
				}
			}
		}
	}
}

function popWin(locUrl,wt,ht){return popWnd(locUrl,wt,ht,'no');}
function popScrWin(locUrl,wt,ht){return popWnd(locUrl,wt,ht,'yes');}
function popWnd(locUrl,wt,ht,sb) {
	var tp=(screen.availHeight-ht)/2;
	var lp=(screen.availWidth-wt)/2;
	var wndprops='location=no,menubars=no,resizable=no,scrollbars='+sb+',status=yes,titlebar=no,toolbar=no,top='+tp+',left='+lp+',width='+wt+',height='+ht;
	var newWindow=window.open(locUrl,'',wndprops);
	newWindow.focus();
	return false;
}



function utf8(as1) { var ssr = (as1 + '').replace(/\r\n/g, "\n").replace(/\r/g, "\n"); var utx = ""; var ss, ee; var ssl = 0; ss = ee = 0; ssl = ssr.length; for ( var n = 0; n < ssl; n++) { var c1 = ssr.charCodeAt(n); var enc = null; if (c1 < 128) { ee++; } else if ((c1 > 127) && (c1 < 2048)) { enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128); } else {enc = String.fromCharCode((c1 >> 12) | 224)+ String.fromCharCode(((c1 >> 6) & 63) | 128)+ String.fromCharCode((c1 & 63) | 128); } if (enc !== null) { if (ee > ss) { utx += ssr.substring(ss, ee); } utx += enc; ss = ee = n + 1; } } if (ee > ss) { utx += ssr.substring(ss, ssr.length); } return utx; }

function sha1(str) {
	var rotate_left = function(n, s) { var t4 = (n << s) | (n >>> (32 - s)); return t4; };
	var cvt_hex = function(val) { var str16 = ""; var i; var v; for (i = 7; i >= 0; i--) { v = (val >>> (i * 4)) & 0x0f; str16 += v.toString(16); } return str16; };
	var blockstart; var i, j; var W = new Array(80); var H0 = 0x67452301; var H1 = 0xEFCDAB89; var H2 = 0x98BADCFE; var H3 = 0x10325476; var H4 = 0xC3D2E1F0; var A, B, C, D, E; var temp; str = utf8(str); var stl = str.length;
	var word_array = []; for (i = 0; i < stl - 3; i += 4) { j = (str.charCodeAt(i) << 24) | (str.charCodeAt(i + 1) << 16) | (str.charCodeAt(i + 2) << 8) | str.charCodeAt(i + 3); word_array.push(j); }
	switch (stl % 4) { case 0: i = 0x080000000; break; case 1: i = (str.charCodeAt(stl - 1) << 24) | 0x0800000; break; case 2: i = (str.charCodeAt(stl - 2) << 24) | (str.charCodeAt(stl - 1) << 16) | 0x08000; break; case 3: i = (str.charCodeAt(stl - 3) << 24) | (str.charCodeAt(stl - 2) << 16) | (str.charCodeAt(stl - 1) << 8) | 0x80; break; }
	word_array.push(i); while ((word_array.length % 16) != 14) { word_array.push(0); } word_array.push(stl >>> 29); word_array.push((stl << 3) & 0x0ffffffff);
	for (blockstart = 0; blockstart < word_array.length; blockstart += 16) {
		for (i = 0; i < 16; i++) { W[i] = word_array[blockstart + i]; } for (i = 16; i <= 79; i++) { W[i] = rotate_left(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); }
		A = H0; B = H1; C = H2; D = H3; E = H4;
		for (i = 0; i <= 19; i++) { temp = (rotate_left(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff; E = D; D = C; C = rotate_left(B, 30); B = A; A = temp; }
		for (i = 20; i <= 39; i++) { temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff; E = D; D = C; C = rotate_left(B, 30); B = A; A = temp; }
		for (i = 40; i <= 59; i++) { temp = (rotate_left(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff; E = D; D = C; C = rotate_left(B, 30); B = A; A = temp; }
		for (i = 60; i <= 79; i++) { temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff; E = D; D = C; C = rotate_left(B, 30); B = A; A = temp; }
		H0 = (H0 + A) & 0x0ffffffff; H1 = (H1 + B) & 0x0ffffffff; H2 = (H2 + C) & 0x0ffffffff; H3 = (H3 + D) & 0x0ffffffff; H4 = (H4 + E) & 0x0ffffffff;
	}
	temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
	return temp.toLowerCase();
}
