// Browser Detector

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Internet Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function getelementdimension(ID,dimension) {
var elem = document.getElementById(ID);

if (dimension == 'height'){
if (BrowserDetect.browser == 'Opera') { 
xPos = elem.style.pixelHeight;
} else {
xPos = elem.offsetHeight;
}
return xPos;
}

if (dimension == 'width'){
if (BrowserDetect.browser == 'Opera') {
xPos = elem.style.pixelWidth;
} else {
xPos = elem.offsetWidth;
}
return xPos;
}
}

function fadediv(ID,startvalue,endvalue,speed,accel,property) {

var timeamount = 0;
var timeinc = speed/10;
accel = accel/speed;

if (property == 'opacity') {
var framedelay = 5;
var valinc = 1;
if (BrowserDetect.browser == 'Internet Explorer'){
	document.getElementById(ID).style.filter='Alpha(Opacity='+startvalue+')';
var framedelay = 5;
var valinc = 10;
} else if (BrowserDetect.browser == 'Mozilla') {
	document.getElementById(ID).style.MozOpacity=startvalue/100;
} else if (BrowserDetect.browser == 'Konqueror') {
	document.getElementById(ID).style.KhtmlOpacity=startvalue/100;
} else {
	document.getElementById(ID).style.opacity=startvalue/100;
}
if (startvalue < endvalue){
document.getElementById(ID).style.display='';
	for (var curvalue = startvalue; curvalue <= endvalue; curvalue=curvalue+valinc){
		timeamount=timeamount+timeinc;
if (accel != 0){
	curvalue += (endvalue-curvalue)/accel;
	if (curvalue > endvalue) {curvalue = endvalue};
}
		if (BrowserDetect.browser == 'Internet Explorer'){
			setTimeout("document.getElementById('"+ID+"').style.filter='Alpha(Opacity='+"+curvalue+"+')';",timeamount*framedelay)
		} else if (BrowserDetect.browser == 'Mozilla') {
			setTimeout("document.getElementById('"+ID+"').style.MozOpacity='"+curvalue/100+"';",timeamount*framedelay)
		} else if (BrowserDetect.browser == 'Konqueror') {
			setTimeout("document.getElementById('"+ID+"').style.KhtmlOpacity='"+curvalue/100+"';",timeamount*framedelay)
		} else {
			setTimeout("document.getElementById('"+ID+"').style.opacity='"+curvalue/100+"';",timeamount*framedelay)
		}
}
} else {
for (var curvalue = startvalue; curvalue >= endvalue; curvalue=curvalue-valinc){
		timeamount=timeamount+timeinc;
if (accel != 0){
	curvalue += (endvalue-curvalue)/accel;
	if (curvalue > endvalue) {curvalue = endvalue};
}
		if (BrowserDetect.browser == 'Internet Explorer'){
			setTimeout("document.getElementById('"+ID+"').style.filter='Alpha(Opacity='+"+curvalue+"+')';",timeamount*framedelay)
		} else if (BrowserDetect.browser == 'Mozilla') {
			setTimeout("document.getElementById('"+ID+"').style.MozOpacity='"+curvalue/100+"';",timeamount*framedelay)
		} else if (BrowserDetect.browser == 'Konqueror') {
			setTimeout("document.getElementById('"+ID+"').style.KhtmlOpacity='"+curvalue/100+"';",timeamount*framedelay)
		} else {
			setTimeout("document.getElementById('"+ID+"').style.opacity='"+curvalue/100+"';",timeamount*framedelay)
		}
}
if (endvalue == 0) {setTimeout("document.getElementById('"+ID+"').style.display='none';",timeamount*framedelay)}
} //end if startvalue < endvalue
} //end if property == 'opacity'


if (property == 'height') {
if (startvalue == ''){startvalue = getelementdimension(ID,'height')}
if (endvalue == ''){endvalue = getelementdimension(ID,'height')}

var framedelay = 20;
var valinc = 0.5;
	document.getElementById(ID).style.height=startvalue+'px';
if (startvalue < endvalue){


document.getElementById(ID).style.display='';
	for (var curvalue = startvalue; curvalue <= endvalue; curvalue=curvalue+valinc){
timeamount=timeamount+timeinc;
if (accel != 0){
	curvalue += (endvalue-curvalue)/accel;
	if (curvalue > endvalue) {curvalue = endvalue};
} else {
	curvalue += valinc;
}
			setTimeout("document.getElementById('"+ID+"').style.height='"+curvalue+"px';",timeamount*framedelay)
}


} else { //else startvalue < endvalue


for (var curvalue = startvalue; curvalue >= endvalue; curvalue=curvalue-valinc){
		timeamount=timeamount+timeinc;
if (accel != 0){
	curvalue -= (startvalue-curvalue)/accel;
	if (curvalue < endvalue) {curvalue = endvalue};
} else {
	curvalue -= valinc;
}
			setTimeout("document.getElementById('"+ID+"').style.height='"+curvalue+"px';",timeamount*framedelay)
}
if (endvalue == 0) {setTimeout("document.getElementById('"+ID+"').style.display='none';",timeamount*framedelay)}


} //end if startvalue < endvalue
} //end if property == 'height'


if (property == 'width') {
if (startvalue == ''){startvalue = getelementdimension(ID,'width')}
if (endvalue == ''){endvalue = getelementdimension(ID,'width')}

var framedelay = 20;
var valinc = 0.5;
	document.getElementById(ID).style.width=startvalue+'px';
if (startvalue < endvalue){


document.getElementById(ID).style.display='';
	for (var curvalue = startvalue; curvalue <= endvalue; curvalue=curvalue+valinc){
timeamount=timeamount+timeinc;
if (accel != 0){
	curvalue += (endvalue-curvalue)/accel;
	if (curvalue > endvalue) {curvalue = endvalue};
} else {
	curvalue += valinc;
}
			setTimeout("document.getElementById('"+ID+"').style.width='"+curvalue+"px';",timeamount*framedelay)
}


} else { //else startvalue < endvalue


for (var curvalue = startvalue; curvalue >= endvalue; curvalue=curvalue-valinc){
		timeamount=timeamount+timeinc;
if (accel != 0){
	curvalue -= (startvalue-curvalue)/accel;
	if (curvalue < endvalue) {curvalue = endvalue};
} else {
	curvalue -= valinc;
}
			setTimeout("document.getElementById('"+ID+"').style.width='"+curvalue+"px';",timeamount*framedelay)
}
if (endvalue == 0) {setTimeout("document.getElementById('"+ID+"').style.display='none';",timeamount*framedelay)}


} //end if startvalue < endvalue
} //end if property == 'width'


return timeamount*framedelay;
}// end function


function movetoscrolltop(ID){
	if (BrowserDetect.browser == 'Internet Explorer'){
	var fromthetop = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
	document.getElementById(ID).style.top = fromthetop + 'px';
	} else {
	document.getElementById(ID).style.top = window.pageYOffset + 'px';
	}
}


function setloadingimage(){
if (document.getElementById('ZoomPic')){
loadingimage = document.getElementById('ZoomPic').src;
} else {
setTimeout("setloadingimage()",250);
}}
var loadingimage = setloadingimage();


function ZoomImage(img,caption){
document.getElementById('PicZoomCaption').innerHTML=caption;
document.getElementById('PicZoomLayon').style.height = document.documentElement.scrollHeight + 'px';
document.getElementById('PicZoomLayon').style.width = document.documentElement.scrollWidth + 'px';

fadediv('PicZoomLayon',0,80,5,0,'opacity');
setTimeout("fadediv('PicZoom',0,100,5,0,'opacity');",500);
if (caption != ''){setTimeout("fadediv('PicZoomCaption',0,100,5,0,'opacity');",1000);}

document.getElementById('ZoomPic').src = img;
movetoscrolltop('PicZoom');
}


function HideImage() {
fadedifference = 100
timeout = fadediv('PicZoom',100,0,5,0,'opacity');
setTimeout("fadediv('PicZoomCaption',100,0,5,0,'opacity');",fadedifference);
setTimeout("fadediv('PicZoomLayon',80,0,5,0,'opacity');",fadedifference);
setTimeout("document.getElementById('ZoomPic').src = '"+loadingimage+"';",timeout+fadedifference)
}


function stripetable(tableid,class1,class2) {

	var theTable = document.getElementById(eval("tableid"));
if (theTable){
if (theTable.tBodies[0]){
	var rows = theTable.tBodies[0].rows;

	for( var i = 0; i < rows.length; i++ ) {
		if (i % 2) {
			rows[i].className = class1;
		} else {
			rows[i].className = class2;
		}
	}
}}}


var submenus = new Array();

function showsub(menuid){
submenus[menuid] = true;
if (document.getElementById(menuid)){
document.getElementById(menuid).style.display = 'block';
document.getElementById(menuid).style.zIndex = 1000;
}
}

function hidesub(menuid){
if (document.getElementById(menuid)){
submenus[menuid] = false;
document.getElementById(menuid).style.zIndex = 100;
setTimeout("if (!submenus['"+menuid+"']) {document.getElementById('" + menuid + "').style.display = 'none';};",200);
}
}

function togglesub(menuid){
if (document.getElementById(menuid)){
if (submenus[menuid]){
submenus[menuid] = false;
document.getElementById(menuid).style.zIndex = 100;
setTimeout("if (!submenus['"+menuid+"']) {document.getElementById('" + menuid + "').style.display = 'none';};",200);
} else {
submenus[menuid] = true;
document.getElementById(menuid).style.display = 'block';
document.getElementById(menuid).style.zIndex = 1000;
} //submenus[menuid]
} //document.getElementById(menuid)
} //function

function toggleclass(itemid,classname1,classname2){
if (document.getElementById(itemid)){
if (document.getElementById(itemid).className != classname1){
document.getElementById(itemid).className = classname1;
} else {
document.getElementById(itemid).className = classname2;
} //document.getElementById(itemid).className != classname1
} //document.getElementById(itemid)
} //function

function changeclass(itemid,classname1){
	document.getElementById(itemid).className = classname1;
} //function

function formlabel(id,filler,inout){
	if (inout == 0 && document.getElementById(id).value == filler) {
		document.getElementById(id).value = '';
	}
	if (inout == 1 && document.getElementById(id).value == '') {
		document.getElementById(id).value = filler;
	}
}


var hposition = 0;
var vposition = 0;
function scrollbg(id,hsteppixels,vsteppixels,stepdelay){
if(BrowserDetect.browser != 'Internet Explorer' || BrowserDetect.version > 6.5){
	hposition = hposition + hsteppixels;
	vposition = vposition + vsteppixels;
	if (hposition > 1000000) hposition = 1;
	if (vposition > 1000000) vposition = 1;
	document.getElementById(id).style.backgroundPosition = hposition + "px " + vposition + "px";
	window.setTimeout("scrollbg('"+id+"',"+hsteppixels+","+vsteppixels+","+stepdelay+")",stepdelay);
}}


function ajax_command(callurl,pars,divtarget){
	var myAjax = new Ajax.Updater(divtarget, 'ajax/'+callurl, { method: 'post', parameters: (pars)});
}


function ajax_formcheck(callurl,divtarget,firstfield,secondfield,thirdfield,fourthfield,fifthfield){
if(fifthfield != ''){
	ajax_command(callurl,escape(document.getElementById(firstfield).name)+'='+escape(document.getElementById(firstfield).value)+'&'+escape(document.getElementById(secondfield).name)+'='+escape(document.getElementById(secondfield).value)+'&'+escape(document.getElementById(thirdfield).name)+'='+escape(document.getElementById(thirdfield).value)+'&'+escape(document.getElementById(fourthfield).name)+'='+escape(document.getElementById(fourthfield).value)+'&'+escape(document.getElementById(fifthfield).name)+'='+escape(document.getElementById(fifthfield).value),divtarget);
} else if(fourthfield != ''){
	ajax_command(callurl,escape(document.getElementById(firstfield).name)+'='+escape(document.getElementById(firstfield).value)+'&'+escape(document.getElementById(secondfield).name)+'='+escape(document.getElementById(secondfield).value)+'&'+escape(document.getElementById(thirdfield).name)+'='+escape(document.getElementById(thirdfield).value)+'&'+escape(document.getElementById(fourthfield).name)+'='+escape(document.getElementById(fourthfield).value),divtarget);
} else if(thirdfield != ''){
	ajax_command(callurl,escape(document.getElementById(firstfield).name)+'='+escape(document.getElementById(firstfield).value)+'&'+escape(document.getElementById(secondfield).name)+'='+escape(document.getElementById(secondfield).value)+'&'+escape(document.getElementById(thirdfield).name)+'='+escape(document.getElementById(thirdfield).value),divtarget);
} else if(secondfield != ''){
	ajax_command(callurl,escape(document.getElementById(firstfield).name)+'='+escape(document.getElementById(firstfield).value)+'&'+escape(document.getElementById(secondfield).name)+'='+escape(document.getElementById(secondfield).value),divtarget);
} else if(firstfield != ''){
	ajax_command(callurl,escape(document.getElementById(firstfield).name)+'='+escape(document.getElementById(firstfield).value),divtarget);
} else {
	ajax_command(callurl,'',divtarget);
}
}


function set_cookie(c_name,value){
document.cookie=c_name+ "=" +escape(value);
}


function get_cookie(c_name){
if (document.cookie.length>0){
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1){ 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}





var MD5 = function (string) {

	function RotateLeft(lValue, iShiftBits) {
		return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
	}

	function AddUnsigned(lX,lY) {
		var lX4,lY4,lX8,lY8,lResult;
		lX8 = (lX & 0x80000000);
		lY8 = (lY & 0x80000000);
		lX4 = (lX & 0x40000000);
		lY4 = (lY & 0x40000000);
		lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
		if (lX4 & lY4) {
			return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
		}
		if (lX4 | lY4) {
			if (lResult & 0x40000000) {
				return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
			} else {
				return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
			}
		} else {
			return (lResult ^ lX8 ^ lY8);
		}
 	}

 	function F(x,y,z) { return (x & y) | ((~x) & z); }
 	function G(x,y,z) { return (x & z) | (y & (~z)); }
 	function H(x,y,z) { return (x ^ y ^ z); }
	function I(x,y,z) { return (y ^ (x | (~z))); }

	function FF(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};

	function GG(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};

	function HH(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};

	function II(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};

	function ConvertToWordArray(string) {
		var lWordCount;
		var lMessageLength = string.length;
		var lNumberOfWords_temp1=lMessageLength + 8;
		var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
		var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
		var lWordArray=Array(lNumberOfWords-1);
		var lBytePosition = 0;
		var lByteCount = 0;
		while ( lByteCount < lMessageLength ) {
			lWordCount = (lByteCount-(lByteCount % 4))/4;
			lBytePosition = (lByteCount % 4)*8;
			lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
			lByteCount++;
		}
		lWordCount = (lByteCount-(lByteCount % 4))/4;
		lBytePosition = (lByteCount % 4)*8;
		lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
		lWordArray[lNumberOfWords-2] = lMessageLength<<3;
		lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
		return lWordArray;
	};

	function WordToHex(lValue) {
		var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
		for (lCount = 0;lCount<=3;lCount++) {
			lByte = (lValue>>>(lCount*8)) & 255;
			WordToHexValue_temp = "0" + lByte.toString(16);
			WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
		}
		return WordToHexValue;
	};

	function Utf8Encode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n < string.length; n++) {

			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}

		}

		return utftext;
	};

	var x=Array();
	var k,AA,BB,CC,DD,a,b,c,d;
	var S11=7, S12=12, S13=17, S14=22;
	var S21=5, S22=9 , S23=14, S24=20;
	var S31=4, S32=11, S33=16, S34=23;
	var S41=6, S42=10, S43=15, S44=21;

	string = Utf8Encode(string);

	x = ConvertToWordArray(string);

	a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;

	for (k=0;k<x.length;k+=16) {
		AA=a; BB=b; CC=c; DD=d;
		a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
		d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
		c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
		b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
		a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
		d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
		c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
		b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
		a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
		d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
		c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
		b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
		a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
		d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
		c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
		b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
		a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
		d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
		c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
		b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
		a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
		d=GG(d,a,b,c,x[k+10],S22,0x2441453);
		c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
		b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
		a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
		d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
		c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
		b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
		a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
		d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
		c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
		b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
		a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
		d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
		c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
		b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
		a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
		d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
		c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
		b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
		a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
		d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
		c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
		b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
		a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
		d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
		c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
		b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
		a=II(a,b,c,d,x[k+0], S41,0xF4292244);
		d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
		c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
		b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
		a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
		d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
		c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
		b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
		a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
		d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
		c=II(c,d,a,b,x[k+6], S43,0xA3014314);
		b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
		a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
		d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
		c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
		b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
		a=AddUnsigned(a,AA);
		b=AddUnsigned(b,BB);
		c=AddUnsigned(c,CC);
		d=AddUnsigned(d,DD);
	}

	var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);

	return temp.toLowerCase();
}

function encode_md5(source, target) {
document.getElementById(target).value = MD5(document.getElementById(source).value);
}

function encode_password(input_id,hash_id,output_id){
document.getElementById(output_id).value = MD5(document.getElementById(hash_id).value+MD5(document.getElementById(input_id).value));
}


// Macromedia scripts

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

