/*-------------------------------------------------------------------------
 *	Common stuff
 *-------------------------------------------------------------------------*/
var started = 0;			// product is started (end install)
var initTimer = 0;			// identifier that cancels the checkvm() timer
var statsTimer = 0;			// identifier that cancels the showstats() timer
var currentTimer = 0;		// identifier that cancels the showcurrentfile() timer
var timeout = 0;			// wait to load the Applet
var scanStartDate;			// scan stating date
var scanning = 0;			// scan process is working
var stopscan = 0;			// scan has been stopped (interrupted)
var updating = 1;			// updating KAV Bases
var updateSuccess = 1;		// update state (set to 0 if failed)
var productName = "Kaspersky OnLine Scanner";

var isPro = false;

function setProductType(productName_,isPro_){
	productName = productName_
	isPro = isPro_
	document.title = productName_
	

// 	var el = findItem("prName_1")
// 	if (el!=null) el.appendChild(document.createTextNode(productName))
	
	//alert(el)
// 	el = findItem("prName_2")
// 	if (el!=null) el.appendChild(document.createTextNode(productName))
	
// 	el = findItem("prName_3")
// 	if (el!=null) el.appendChild(document.createTextNode(productName))
	
// 	el = findItem("prName_4")
// 	if (el!=null) el.appendChild(document.createTextNode(productName))
	if (isPro) {
		el = findItem("pr_img")
		if (el!=null) el.src="../../images/product_pro.png"
	}
	else {
// 		el =findItem("btDeleteSel")
// 		if (el!=null) el.parentNode.removeChild(el)
// 		el =findItem("btCureSel")
// 		if (el!=null) el.parentNode.removeChild(el)
	}
}

function findItemUnchecked( idItem )
{
	if( document.getElementById )
		return document.getElementById(idItem);
	else if( document.all )
		return document.all.item(idItem);
	else if( document.layers )
		// TODO: doesn't work in NS 4.0
		return document.layers[idItem];
}

function findItem(idItem)
{
	var rval = findItemUnchecked(idItem);
	if(rval == null)
		window.alert(idItem + ' couldnt be found');
	return rval;
}

function openPage(page)
{
	window.open(page, "_blank");
	return false;
}

function isOverUserForumLink(x, y)
{
	if( (y >= 371 && y <= 384) && (x >= 307 && x <= 362) )
		return true;

	return false;
}

function openPageIfNotOverUserForum(e, page)
{
	if( !e )  var e = window.event;
	var x = getX(e);
	var y = getY(e);

	if( isOverUserForumLink(x,y) == false )
	 	openPage(page);
}


function formatTime(nr_seconds)
{
	var s = "";
	var c = ":";
	var hours = 0;
	var minutes = 0;
	var seconds = 0;


	hours = Math.floor(nr_seconds / 3600);
	minutes = Math.floor((nr_seconds % 3600) / 60);
	seconds = nr_seconds % 60;

	if( hours < 10 ) s += '0';
	s += hours + c;
	if( minutes < 10 ) s += '0';
	s += minutes + c;
	if( seconds < 10 ) s += '0';
	s += seconds;

	return s;
}

function formatDate(date)
{
	var d = "";

	d += date.getMonth() + 1 + "/";
	if( date.getDate() < 10 ) d += '0';
	d += date.getDate() + "/";
	d += date.getFullYear() + " ";
	d += date.getHours() + ":";
	if( date.getMinutes() < 10 ) d += '0';
	d += date.getMinutes() + ":";
	if( date.getSeconds() < 10 ) d += '0';
	d += date.getSeconds();

	return d;
}

function getLength(string)
{
	if( string == null )
		return 0;

	if( typeof(string.length) == 'number' )
		return string.length;

	return string.length();
}

function shortName(name, size)
{
	var half = size / 2;
	var str = null;
	var name_size = getLength(name);

	if( name_size < size )
		return name;

	str = (name.substring(0, half-3) + "..."
		+ name.substring(name_size-half));
	return str;
}

function getX(e)
{
	var x = 0;

	if( e.pageX ) x = e.pageX;
	else if( e.clientX )
		x = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft - 2;

	return x;
}

function getY(e)
{
	var y = 0;

	if( e.pageY ) y = e.pageY;
	else if( e.clientY )
		y = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop - 2;

	return y;
}

if( document.all ) {
	//ie has to block in the key down
    document.onkeydown = onKeyPress;
}
else {
	if( document.layers || document.getElementById )
		//NS and mozilla have to block in the key press
	    document.onkeypress = onKeyPress;
}

var browserInfo = navigator.userAgent.toLowerCase();
var ieIndex = browserInfo.indexOf("msie");
var isIE = ( ieIndex != -1 );
var IEVersion = parseFloat(browserInfo.substring(ieIndex + 5));


function onKeyPress(e)
{
	var oEvent = ( window.event ) ? window.event : e;
    var nKeyCode =  oEvent.keyCode ? oEvent.keyCode :
                    oEvent.which ? oEvent.which : void 0;
	var sChar = String.fromCharCode(nKeyCode).toUpperCase();
    var bCtrlPressed = (oEvent.ctrlKey) ? oEvent.ctrlKey :
						oEvent.modifiers & 2 > 0;

	if( (bCtrlPressed && (sChar == 'N' || sChar == 'O' || sChar == 'T'))
		|| (nKeyCode == 40) || (nKeyCode == 39) )
	{
        oEvent.returnValue = false;
        oEvent.cancelBubble = true;

        if( document.all ) { // IE
            oEvent.keyCode = 0;
        } else { // NS
            oEvent.preventDefault();
            oEvent.stopPropagation();
        }

		// alert('That functionality is restricted.');

		return false;
	}

	return true;
}

function getCursor()
{
	if(isIE == true && IEVersion < 6.0)
		return 'hand';
	else
		return 'pointer';
}

/*-------------------------------------------------------------------------
 *	EULA PANEL
 *-------------------------------------------------------------------------*/
function reportError(text)
{
	findItem("idTooltip").style.color="#FF0000";
	findItem("idTooltip").innerHTML = text;
	alert(text);
}

function checkSystemRequirements()
{
	var win_indx = browserInfo.indexOf("windows ");
	var lnx_indx = browserInfo.indexOf("linux");

	var end1 = browserInfo.indexOf(";", win_indx);
	var end2 = browserInfo.indexOf(")", win_indx);
	var end3 = browserInfo.indexOf("-", win_indx);
	var end = (end1 != -1) ? end1 : (end2 != -1) ? end2 : (end3 != -1) ? end3 : 0;

	var isNT = (browserInfo.substr(win_indx+8, 2) == "nt");
	var isOpera = (browserInfo.indexOf("opera") != -1);
	var OSVersion = navigator.userAgent.substring(win_indx+8, end);
	var isSafari = (browserInfo.indexOf("safari") != -1);

	if( (win_indx == -1 && lnx_indx == -1 ) ||
		(isIE == true && IEVersion < 6.0) ||
		(win_indx != -1 && isNT == false) ||
		(isNT == true && (OSVersion == "NT 4.0" || OSVersion.length == 2)) ||
		(lnx_indx != -1 && isOpera == true) )
	{
		if (isIE == true && IEVersion < 6.0) findItem("idBrowser").style.color="#FF0000";
		else
			if (lnx_indx != -1 && isOpera == true) findItem("idBrowser").style.color="#FF0000"; 
			else findItem("idOSName").style.color="#FF0000";
		if (isSafari) findItem("idBrowser").style.color="#FF0000";
		return false;
	}
	if (isSafari) {
		findItem("idBrowser").style.color="#FF0000";
		return false;
	}
	return true;
}

function checkvm()
{
	if (!window.navigator.javaEnabled()) {
			findItem("idJavaEnabled").innerHTML="false";
			findItem("idJavaEnabled").style.color="#FF0000";
			findItem("idTooltip").style.color="#FF0000";
			findItem("idTooltip").innerHTML = VM_OPTIONS;
		window.clearInterval(initTimer);
		return	
	}
	
	
	if( typeof(document.javavm) != "undefined" &&
		typeof(document.javavm.isActive) != "undefined" && document.javavm.isActive() )
    {
		findItem("idJavaEnabled").innerHTML = ( window.navigator.javaEnabled() ) ? "true" : "false";
		findItem("idOSName").innerHTML = document.javavm.getOSName();
		findItem("idOSArch").innerHTML = document.javavm.getOSArchitecture();
		findItem("idBrowser").innerHTML = document.javavm.getBrowserInfo(
			navigator.userAgent, navigator.appVersion, navigator.appName );
		findItem("idJavaVendor").innerHTML = document.javavm.getJavaVendor();
		findItem("idJavaVersion").innerHTML = document.javavm.getJavaVersion();
	}
	if( checkSystemRequirements() == false ) {
		window.clearInterval(initTimer);

		reportError(VM_UNSUPPORTED);
		findItem("idTooltip").style.color="#FF0000";
		findItem("idTooltip").innerHTML = VM_UNSUPPORTED;
		return;
	}

	if( typeof(document.javavm) != "undefined" &&
		typeof(document.javavm.isActive) != "undefined" && document.javavm.isActive() )
    {
    	window.clearInterval(initTimer);

/*		findItem("idJavaEnabled").innerHTML = ( window.navigator.javaEnabled() ) ? "true" : "false";
		findItem("idOSName").innerHTML = document.javavm.getOSName();
		findItem("idOSArch").innerHTML = document.javavm.getOSArchitecture();
		findItem("idBrowser").innerHTML = document.javavm.getBrowserInfo(
			navigator.userAgent, navigator.appVersion, navigator.appName );
		findItem("idJavaVendor").innerHTML = document.javavm.getJavaVendor();
		findItem("idJavaVersion").innerHTML = document.javavm.getJavaVersion();
*/
		if( window.navigator.javaEnabled() == true ) {
			if( (findItem("idOSName").innerHTML.indexOf("Vista") > 0) &&
					((document.javavm.getJavaMajorVersion() == 1) &&
					(document.javavm.getJavaMinorVersion() < 6)) ) {
				findItem("idJavaVersion").style.color="#FF0000";	
				reportError(VM_INSTALL_VISTA);
				findItem("idTooltip").innerHTML += "<br><a href='#' onclick=\"javascript:openPage('http://www.java.com')\"><b>" + VM_MANUAL_INSTALL_VISTA + "</b></a>";
				return
			}
			if( (findItem("idJavaVersion").innerHTML == "Microsoft Corp.") ||
					((document.javavm.getJavaMajorVersion() == 1) &&
					(document.javavm.getJavaMinorVersion() < 5)) ) {
				findItem("idJavaVendor").style.color="#FF0000";	
				reportError(VM_INSTALL);
				findItem("idTooltip").innerHTML += "<br><a href='#' onclick=\"javascript:openPage('http://www.java.com')\"><b>" + VM_MANUAL_INSTALL + "</b></a>";
			}
			else if(findItem("idOSArch").innerHTML != "x86" && findItem("idOSArch").innerHTML != "i386") {
				findItem("idOSArch").style.color="#FF0000";
				reportError(VM_X86);
			}
			else {
				findItem("btStart").disabled=false;
				findItem("btExit").value = BT_DECLINE;
				findItem("idTooltip").innerHTML = VM_ACCEPT;
			}
		}
		else {
			findItem("idJavaEnabled").style.color="#FF0000";
			findItem("idTooltip").style.color="#FF0000";
			findItem("idTooltip").innerHTML = VM_OPTIONS;
		}
	}
	else
	{
		if(timeout <= 20000) {
			timeout += 1000;
		}
		else {
			var re = new RegExp("12345$");
			if(!re.test(window.location)) {
				// dirty hack for linux+firefox+proxy users
				window.location = window.location + "12345";
			}
			else {
				window.clearInterval(initTimer);
				var str = VM_INSTALL
				if (window.navigator.userAgent.indexOf("Windows NT 6")!=-1) str = VM_INSTALL_VISTA
					reportError(str)
				findItem("idTooltip").innerHTML += "<br><br><a href='#' onclick=\"javascript:openPage('http://www.java.com')\"><b>" + str + "</b></a>";
			}
		}
	}
}

function acceptLicense()
{
	timeout = 0;
	var d = new Date();
	window.location = 'main.html?n=' + d.getTime();
// 	window.open('main.html','KAVWebScanner');
}

/*-------------------------------------------------------------------------
 *	Left navigation PANEL
 *-------------------------------------------------------------------------*/

function disableButtonLink(buttonID)
{
	var item = findItem(buttonID);

	item.onmouseout=null;
	item.onmouseover=null;
	item.style.textDecoration='none';
	item.style.cursor='default';
}

function enableButtonLink2(buttonID)
{
	enableButtonLink(buttonID, buttonID);
}

function enableButtonLink(buttonID, textID)
{
	findItem(buttonID).onmouseout=function onmouseout(event)
	{
		findItem(textID).style.textDecoration='none';
		findItem(buttonID).style.cursor='default';
	};

	findItem(buttonID).onmouseover=function onmouseover(event)
	{
		findItem(textID).style.textDecoration='underline';
		findItem(buttonID).style.cursor=getCursor();
	};
}

function enableButton(button)
{
	findItem('nav_image_' + button).src="../../images/navheader.png";
	findItem('nav_text_' + button).style.textDecoration="none";
	enableButtonLink('nav_' + button, 'nav_text_' + button);
}

function showPanel(panel)
{
	findItem(panel + 'Panel').style.visibility="visible";

	if( panel == 'update' && updateSuccess == 0 )
		findItem('nav_image_' + panel).src="../../images/navheader_red_selected.png";
	else
		findItem('nav_image_' + panel).src="../../images/navheader_selected.png";
	findItem('nav_text_' + panel).style.textDecoration="underline";
	findItem('nav_' + panel).onmouseout=null;
	findItem('nav_' + panel).onmouseover=function onmouseover(event)
	{
		findItem('nav_' + panel).style.cursor=getCursor();
	};
}

function hidePanel(panel)
{
	findItem(panel + 'Panel').style.visibility="hidden";
	if( panel == 'update' && updateSuccess == 0 )
		findItem('nav_image_' + panel).src="../../images/navheader_red.png";
	else
		findItem('nav_image_' + panel).src="../../images/navheader.png";
	findItem('nav_text_' + panel).style.textDecoration="none";

	enableButtonLink('nav_' + panel, 'nav_text_' + panel);
}

function hideAllPanels()
{
	//hidePanel('warning')
	findItem('warningPanel').style.visibility="hidden";
	hidePanel('license');
	hidePanel('update');
	if( updating == 0 ) {
		hidePanel('scan');
		hidePanel('report');

		findItem("scanWindow").style.visibility="hidden";
		findItem("scanStopText").style.visibility="hidden";
		findItem("scanStartText").style.visibility="hidden";
		findItem("scanStopDiv").style.visibility="hidden";
		findItem("scanStartDiv").style.visibility="hidden";
	}
	hidePanel('support');

	findItem('settingsPanel').style.visibility="hidden";
}

function showWarningPanel(str){
	hideAllPanels();
	//showPanel('warning');
	findItem('warningPanel').style.visibility="visible";
}


function showLicensePanel()
{
	hideAllPanels();
	showPanel('license');
}

function showUpdatePanel()
{
	hideAllPanels();
	showPanel('update');
}

function showScanPanel()
{
	hideAllPanels();
	showPanel('scan');

	findItem("scanWindow").style.visibility="visible";
	if( scanning == 1 ) {
		findItem("scanStartText").style.visibility="visible";
		findItem("scanStartDiv").style.visibility="visible";
	}
	else {
		findItem("scanStopText").style.visibility="visible";
		findItem("scanStopDiv").style.visibility="visible";
	}
}

function showReportPanel()
{
	hideAllPanels();
	showPanel('report');

	// fixes an issue with opera
	document.jReport.update();
}

function showSupportPanel()
{
	hideAllPanels();
	showPanel('support');
}

function showSettingsPanel()
{
	hideAllPanels();

	findItem("bArchives").checked = document.jkos.kosGetScanArch();
	findItem("bMailBases").checked = document.jkos.kosGetScanMail();
	findItem("bExtended").checked = document.jkos.kosGetAVdatabase();

	/*document.kos.rAction[document.jkos.kosGetPromptAction()].checked = true;  //Morozov add comment
	findItem("bDisinfect").checked = document.jkos.kosGetDisinfectAction();
	findItem("bDelete").checked = document.jkos.kosGetDeleteAction();
	setDeleteText( document.jkos.kosGetDisinfectAction() );
	setDontPromptAction( document.jkos.kosGetPromptAction() );
*/

	// Statistics are disabled
	// findItem("bEnableStat").checked = document.jkos.kosGetEnableStat();
	// findItem("bPromptStat").checked = document.jkos.kosGetPromptStat();

// 	var smtpEnable = document.jkos.kosGetSmtpEnable();
// 	findItem("bSmtpEnable").checked = smtpEnable;
// 	findItem("smtpName").value = document.jkos.kosGetSmtpName();
// 	findItem("smtpEmail").value = document.jkos.kosGetSmtpEmail();
// 	findItem("smtpServer").value = document.jkos.kosGetSmtpServer();
// 	findItem("smtpPort").value = document.jkos.kosGetSmtpPort();
// 	findItem("bSmtpAuth").checked = document.jkos.kosGetSmtpAuth();
// 	findItem("smtpUser").value = document.jkos.kosGetSmtpUser();
// 	findItem("smtpPass").value = document.jkos.kosGetSmtpPass();

// 	setSmtpEnableOption(smtpEnable);

	findItem('settingsPanel').style.visibility="visible";
}

function enableScanTargets()
{
	enableButtonLink2('target_criticalareas');
	findItem('target_criticalareas').onclick=function onclick(){setScanTarget(0, 'state_criticalareas')};
	enableButtonLink2('target_mycomputer');
	findItem('target_mycomputer').onclick=function onclick(){setScanTarget(1, 'state_mycomputer')};
//	enableButtonLink2('target_homefolder');
//	findItem('target_homefolder').onclick=function onclick(){setScanTarget(2, 'state_homefolder')};
	enableButtonLink2('target_afolder');
	findItem('target_afolder').onclick=function onclick(){setScanTarget(3, 'state_afolder')};
	enableButtonLink2('target_afile');
	findItem('target_afile').onclick=function onclick(){setScanTarget(4, 'state_afile')};
	findItem('target_selector').style.backgroundColor="#FFFFFF";

	enableButtonLink2('nav_settings');
	findItem('nav_text_settings').style.color="#444444";
	findItem('nav_settings').onclick=function onclick(){ showSettingsPanel(); };
}

function disableScanTargets()
{
	disableButtonLink('target_criticalareas');
	findItem('target_criticalareas').onclick=null;
	disableButtonLink('target_mycomputer');
	findItem('target_mycomputer').onclick=null;
//	disableButtonLink('target_homefolder');
//	findItem('target_homefolder').onclick=null;
	disableButtonLink('target_afolder');
	findItem('target_afolder').onclick=null;
	disableButtonLink('target_afile');
	findItem('target_afile').onclick=null;

	findItem('target_selector').style.backgroundColor="#dddddd";

	disableButtonLink('nav_settings');
	findItem('nav_text_settings').style.color="#aaaaaa";
	findItem('nav_settings').onclick=null;
}

/*-------------------------------------------------------------------------
 *	Initialize and Download PANEL
 *-------------------------------------------------------------------------*/

function checkAppletStarted()
{
	if( timeout <= 30000 )
		timeout += 1000;
	else {
		window.clearInterval(initTimer);
		addLineToUpdateReport("");
		addLineToUpdateReport(VM_ERROR);
		alert(VM_ERROR);
	}
}

function addLineToUpdateReport(text)
{
	var report = findItem('reportUpdate');

	if( getLength(report.innerHTML) == 0 )
		report.innerHTML=text;
	else
		report.innerHTML=report.innerHTML + "<br>" + text;

	// scroll to the bottom
	report.scrollTop = report.scrollHeight;
}

function showInitStats(procent)
{
	findItem("kosInitProgress").innerHTML = '(' + procent + '%)...';
}

function showUpdateStats(procent)
{
	findItem("kosUpdateProgress").innerHTML = '(' + procent + '%)...';
}

function refreshInitData(totalSize, downSize)
{
	findItem("initTotalSize").innerHTML =
		(totalSize < 1024) ? (totalSize + " bytes") : (Math.floor(totalSize/1024) + " KB");
	findItem("initTransferred").innerHTML =
		(downSize < 1024) ? (downSize + " bytes") : (Math.floor(downSize/1024) + " KB");
}

function refreshUpdateData(totalSize, downSize)
{
	findItem("updateTotalSize").innerHTML =
		(totalSize < 1024) ? (totalSize + " bytes") : (Math.floor(totalSize/1024) + " KB");
	findItem("updateTransferred").innerHTML =
		(downSize < 1024) ? (downSize + " bytes") : (Math.floor(downSize/1024) + " KB");
}

function hideInfoWindow(wnd)
{
	findItem(wnd + 'Text').style.color="#a0a0a0";
	findItem(wnd + 'TextTable').style.color="#a0a0a0";
	findItem(wnd + 'Image').src="../../images/arrow_grey.png";
	disableButtonLink( wnd + 'Window' );

	findItem(wnd + 'DownloadStatus').style.visibility="hidden";
	findItem(wnd + 'StatusDiv').style.visibility="visible";
	findItem(wnd + 'Shadow').style.visibility="hidden";
}

/*-------------------------------------------------------------------------
 *	Target Selection PANEL
 *-------------------------------------------------------------------------*/

function clearAllStates()
{
	findItem('state_criticalareas').innerHTML="";
	findItem('state_mycomputer').innerHTML="";
//	findItem('state_homefolder').innerHTML="";
	findItem('state_afolder').innerHTML="";
	findItem('state_afile').innerHTML="";
}

function clearStatistics()
{
	findItem("nr_objs").innerHTML="0";
	findItem("nr_body").innerHTML="0";
	findItem("nr_infe").innerHTML="0";
	//findItem("nr_disi").innerHTML="0";
	findItem("nr_susp").innerHTML="0";
	findItem("nr_time").innerHTML="00:00:00";

	findItem("nr_body").style.color="#000000";
	findItem("nr_infe").style.color="#000000";
	//findItem("nr_disi").style.color="#000000";
	findItem("nr_susp").style.color="#000000";
	findItem("nr_body_text").style.color="#000000";
	findItem("nr_infe_text").style.color="#000000";
	findItem("nr_susp_text").style.color="#000000";
}

function prepareNewScan()
{
	scanning = 1;
	stopscan = 0;
	scanTime = 0;

	disableScanTargets();
	clearAllStates();

	findItem("kosCurrentFile").innerHTML = "&nbsp;";
	findItem("kosCurrentDir").innerHTML = "&nbsp;";
	findItem("kosScanProgress").innerHTML=0;
	
	if (isPro) {
		findItem("btCureSel").disabled = true;
		findItem("btDeleteSel").disabled = true;
	}
	findItem("btSaveRpt").disabled = true;
 

	findItem("scanStopText").style.visibility="hidden";
	findItem("scanStartText").style.visibility="visible";
	findItem("scanStopDiv").style.visibility="hidden";
	findItem("scanStartDiv").style.visibility="visible";

	disableButtonLink("btScanSettings");
	findItem("btScanSettings").style.color="#a0a0a0";
	findItem("btScanSettings").onclick=null;

	enableButtonLink2("btStopScan");
	findItem("btStopScan").style.color="#2c6c98";
	findItem("btStopScan").onclick=function onclick() { onClickStopScan(); };


	scanStartDate = formatDate(new Date());
}

function startScanning(state)
{
	prepareNewScan();
	showScanPanel();

	findItem("kosBanner").src="../../images/top_banner_green.png";
	findItem("kosBannerText").style.color="#004834";
	findItem("kosBannerText").innerHTML="";

	// findItem("kosSelectedObject").innerHTML="&nbsp;";
	findItem(state).innerHTML="<img class='alpha' src='../../images/navstate.png' style='width:14px; height:14px;'>";
	clearStatistics();

	findItem("kosScanTarget").innerHTML=document.jkos.kosGetTarget();
	document.jkos.kosScanStart(0);

	statsTimer = window.setInterval("ShowStats()", 1000);
	currentTimer = window.setInterval("ShowCurrentFile()", 100);
}

function setScanTarget(target, state)
{
	if( document.jkos.kosSetTarget(target) == 1 )
		startScanning(state);

	return false;
}

/*-------------------------------------------------------------------------
 *	Scan Settings PANEL
 *-------------------------------------------------------------------------*/
function settingsChanged()
{
	findItem("btOk").disabled = false;
	return false;
}

function onClickSave()
{
	( findItem("bExtended").checked == true ) ?
		document.jkos.kosSetAVdatabase(1): document.jkos.kosSetAVdatabase(0);
	( findItem("bArchives").checked == true ) ?
		document.jkos.kosSetScanArch(1): document.jkos.kosSetScanArch(0);
	( findItem("bMailBases").checked == true ) ?
		document.jkos.kosSetScanMail(1): document.jkos.kosSetScanMail(0);

	/*( document.kos.rAction[0].checked == true ) ?
		document.jkos.kosSetPromptAction(0) : document.jkos.kosSetPromptAction(1);*/
		document.jkos.kosSetPromptAction(0);
	/*( findItem("bDisinfect").checked == true ) ?
		document.jkos.kosSetDisinfectAction(1) : document.jkos.kosSetDisinfectAction(0);
	( findItem("bDelete").checked == true ) ?
		document.jkos.kosSetDeleteAction(1) : document.jkos.kosSetDeleteAction(0);
*/
/*	( findItem("bSmtpEnable").checked == true ) ?
		document.jkos.kosSetSmtpEnable(1): document.jkos.kosSetSmtpEnable(0);
	document.jkos.kosSetSmtpName( findItem("smtpName").value );
	document.jkos.kosSetSmtpEmail( findItem("smtpEmail").value );
	document.jkos.kosSetSmtpServer( findItem("smtpServer").value );
	document.jkos.kosSetSmtpPort( findItem("smtpPort").value );
	( findItem("bSmtpAuth").checked == true ) ?
		document.jkos.kosSetSmtpAuth(1): document.jkos.kosSetSmtpAuth(0);
	document.jkos.kosSetSmtpUser( findItem("smtpUser").value );
	document.jkos.kosSetSmtpPass( findItem("smtpPass").value );
*/

	// Statistics are disabled
	//( findItem("bEnableStat").checked == true ) ?
	//	document.jkos.kosSetEnableStat(1): document.jkos.kosSetEnableStat(0);
	//( findItem("bPromptStat").checked == true ) ?
	//	document.jkos.kosSetPromptStat(1): document.jkos.kosSetPromptStat(0);

	document.jkos.kosSaveSettings();
	findItem("btOk").disabled = true;
}

function setSmtpEnableOption(enable)
{
	findItem("smtpName").disabled = (enable == 0);
	findItem("smtpEmail").disabled = (enable == 0);
	findItem("smtpServer").disabled = (enable == 0);
	findItem("smtpPort").disabled = (enable == 0);
	findItem("bSmtpAuth").disabled = (enable == 0);
	findItem("smtpUser").disabled = (enable == 0);
	findItem("smtpPass").disabled = (enable == 0);
}

function setDontPromptAction(enable)
{
	findItem("bDisinfect").disabled = (enable == 0);
	findItem("bDelete").disabled = (enable == 0);
}

function setDeleteText(cureEnabled)
{
	findItem("bDelete_text").innerHTML = (cureEnabled == false) ?
		document.jkos.kosGetText("button.delete") :
		document.jkos.kosGetText("button.delete_cure_fails");
}

/*-------------------------------------------------------------------------
 *	Scan PANEL
 *-------------------------------------------------------------------------*/

function ShowCurrentFile()
{
	findItem("kosCurrentFile").innerHTML=shortName(document.jkos.kosGetCurrentFile(), 40);
	findItem("kosCurrentDir").innerHTML=shortName(document.jkos.kosGetCurrentDir(), 40);
}

function ShowStats()
{
	var nrProcent = document.jkos.kosGetScanProcent();
	findItem("kosScanProgress").innerHTML=nrProcent+"";

	findItem("nr_objs").innerHTML=document.jkos.kosGetScanFile()+"";
	findItem("nr_body").innerHTML=document.jkos.kosGetScanBody()+"";
	findItem("nr_infe").innerHTML=document.jkos.kosGetScanInfe()+"";
	//findItem("nr_disi").innerHTML=document.jkos.kosGetScanDisi();
	findItem("nr_susp").innerHTML=document.jkos.kosGetScanSusp()+"";

	if( findItem("nr_body").innerHTML != 0 ) {
		findItem("nr_body").style.color="#FF0000";
		findItem("nr_body_text").style.color="#FF0000";
	}
	if( findItem("nr_infe").innerHTML != 0 ) {
		findItem("nr_infe").style.color="#FF0000";
	//	findItem("nr_disi").style.color="#FF0000";
		findItem("nr_infe_text").style.color="#FF0000";
	}
	if( findItem("nr_susp").innerHTML != 0 ) {
		findItem("nr_susp").style.color="#FF0000";
		findItem("nr_susp_text").style.color="#FF0000";
	}

	if (scanning != 1) {
		findItem("nr_time").innerHTML=formatTime(Math.floor(document.jkos.kosGetScanTime()/1000));
	}
	else {
		findItem("nr_time").innerHTML=formatTime(scanTime++);
	}
}

function onClickStopScan()
{
	window.clearInterval(statsTimer);
	window.clearInterval(currentTimer);
	
	var stopScan = findItem("btStopScan");
	stopScan.style.color="red";//"#a0a0a0";
	disableButtonLink("btStopScan");

	stopscan = 1;
	document.jkos.kosScanStop();
}

/*-------------------------------------------------------------------------
 *	Report PANEL
 *-------------------------------------------------------------------------*/

function setSelectedObjects(selected)
{
// 	findItem("selectedObjects").innerHTML=selected;
}

function setSelectedObject(object)
{
//	findItem("kosSelectedObject").innerHTML=object;
}

function onSelectAll()
{
	document.jReport.selectAll();
	return false;
}

function onSelectNone()
{
	document.jReport.selectNone();
	return false;
}

function onSelectSuspicious()
{
	document.jReport.selectSuspicious();
	return false;
}

function onSelectInfected()
{
	document.jReport.selectInfected();
	return false;
}
/*
function onSendSelected()
{
	if( document.jkos.kosGetSmtpEnable() == 0 )
		alert(document.jkos.kosGetText("send.disabled"));
	else
		document.jReport.sendSelected();
	return false;
}*/

function onScanSelected(cureMode)
{
	if( document.jReport.addSelectedItems(cureMode) == true )
	{
		prepareNewScan();

		findItem("kosScanTarget").innerHTML=document.jkos.kosGetText("scan.cure_target");
		statsTimer = window.setInterval("ShowStats()", 1000);
		currentTimer = window.setInterval("ShowCurrentFile()", 100);

		document.jkos.kosScanStart(cureMode+1);
	}

	return false;
}

function disableSaveButton(disabled){
	findItem("btSaveRpt").disabled = disabled;
}

function onSaveReport()
{
	document.jReport.saveReport();
	return false;
}

/*-------------------------------------------------------------------------
 *	Java fired events
 *-------------------------------------------------------------------------*/

function appletStarted()
{
	window.clearInterval(initTimer);
	window.setTimeout("appletInstall()", 2000);
}

function appletInstall()
{
	document.jkos.setLanguage(KOS_LANGUAGE);
	document.jReport.setLanguage(KOS_LANGUAGE);

	findItem('reportUpdate').innerHTML="";
	addLineToUpdateReport(document.jkos.kosGetText("init.start"));
	document.jkos.kosInstall();
}

function endInstall()
{
	hideInfoWindow('init');

	findItem('updateText').style.color="#2c6c98";
	findItem('updateTextTable').style.color="#444444";
	findItem('updateImage').src="../../images/arrow.png";
	findItem('updateWindow').onmouseout=function onmouseout(event)
	{
		findItem('updateShadow').style.visibility='hidden';
	};
	findItem('updateWindow').onmouseover=function onmouseover(event)
	{
		findItem('updateShadow').style.visibility='visible';
	};

	findItem("kosVersion").innerHTML = document.jkos.kosGetVersion();
	findItem("kosOS").innerHTML = document.jkos.kosGetOS();
	findItem("kosOSdiv").onmouseout=function onmouseout(event)
	{
		findItem('kosOStext').style.textDecoration='none';
		findItem('kosOS').style.textDecoration='none';
	};
	findItem("kosOSdiv").onmouseover= function onmouseover(event)
	{
		findItem('kosOStext').style.textDecoration='underline';
		findItem('kosOS').style.textDecoration='underline';
		this.style.cursor=getCursor();
	};

	findItem("kosInitProgress").innerHTML = '(100%)';
	addLineToUpdateReport(document.jkos.kosGetText("init.success"));
	addLineToUpdateReport("");  // line break

	addLineToUpdateReport(document.jkos.kosGetText("update.init"));
	document.jkos.kosUpdate();

	started = 1;
}

function cancelSaveReport(error_text){
	alert(error_text);
	onSaveReport();
}

function cancelInstall(string,cod)
{
	updateSuccess = 0;

	window.clearInterval(initTimer);

	var error_text =
		document.jkos.kosGetText("init.failed") +
		document.jkos.kosGetText("no_av_actions");

	hideInfoWindow('init');
	hideInfoWindow('update');

	if (string=='error_lib_load'){
		showWarningPanel(string)
		findItem("nav_image_update").src="../../images/navheader_red_selected.png";
		return;
	}

	findItem('initStatusText').innerHTML=error_text;

	// window.clearInterval(initTimer);
	findItem("kosInitProgress").innerHTML = '(100%)';
	findItem("nav_image_update").src="../../images/navheader_red_selected.png";

	if( getLength(string) != 0 )
		error_text += " [ERROR: " + string + "]";

	addLineToUpdateReport("");
	addLineToUpdateReport(error_text);
	
	alert(error_text);
	showSupportPanel();
	
}

function endUpdate()
{
	hideInfoWindow('update');

	findItem('updateLastStart').innerHTML = document.jkos.kosGetLastStartUpdate();
	findItem('updateStatus').innerHTML = document.jkos.kosGetText("update.finished");
	findItem("kosUpdateProgress").innerHTML = '(100%)';

	addLineToUpdateReport(document.jkos.kosGetText("update.success"));
	updating = 0;

	findItem("kosLatestUpdate").innerHTML = document.jkos.kosGetLastBasesUpdate();
	findItem("kosLatestUpdate2").innerHTML = document.jkos.kosGetLastBasesUpdate();
	findItem("kosNumberViruses").innerHTML = document.jkos.kosGetNumberViruses();

	enableButton('scan');
	findItem('nav_scan').onclick=function onclick(){ showScanPanel(); };
	enableButton('report');
	findItem('nav_report').onclick=function onclick(){ showReportPanel(); };

	enableScanTargets();
}

function cancelUpdate(string)
{
	updateSuccess = 0;

	hideInfoWindow('update');

	if( getLength(document.jkos.kosGetLastStartUpdate()) != 0 )
		findItem('updateLastStart').innerHTML = document.jkos.kosGetLastStartUpdate();
	findItem('updateStatus').innerHTML = document.jkos.kosGetText("update.failed");
	findItem("kosUpdateProgress").innerHTML = '(100%)';
	findItem("nav_image_update").src="../../images/navheader_red_selected.png";

	var error_text =
		document.jkos.kosGetText("update.failed.1") +
		document.jkos.kosGetText("no_av_actions") +
		document.jkos.kosGetText("update.failed.2");

	if( getLength(string) != 0 )
		error_text += " [ERROR: " + string + "]";

	addLineToUpdateReport("");
	addLineToUpdateReport(error_text);
	alert(error_text);
}


function endscan()
{
	el = findItem("nav_image_scan")
	if (el!=null){
		k = el.src.search("navheader_grey.png")
		if (k>0) {
			findItem("scanStopText").style.visibility="hidden";
			findItem("scanStartText").style.visibility="hidden";
			findItem("scanStopDiv").style.visibility="hidden";
			findItem("scanStartDiv").style.visibility="hidden";
			if( findItem("nr_infe").innerHTML != 0 || findItem("nr_susp").innerHTML != 0 ) {
				findItem("kosBanner").src="../../images/top_banner_red.png";
				findItem("kosBannerText").style.color="#920404";
				findItem("kosBannerText").innerHTML=document.jkos.kosGetText("scan.infected");
			}
			return
		}
	}
	



	if( statsTimer != 0 ) window.clearInterval(statsTimer);
	if( currentTimer != 0 ) window.clearInterval(currentTimer);

	scanning = 0;

	ShowStats();

	enableScanTargets();

	findItem("scanStopText").style.visibility="visible";
	findItem("scanStartText").style.visibility="hidden";
	findItem("scanStopDiv").style.visibility="visible";
	findItem("scanStartDiv").style.visibility="hidden";

	disableButtonLink("btStopScan");
	findItem("btStopScan").style.color="#a0a0a0";
	findItem("btStopScan").onclick=null;

	enableButtonLink2("btScanSettings");
	findItem("btScanSettings").style.color="#2c6c98";
	findItem("btScanSettings").onclick=function onclick() { showSettingsPanel(); };

	findItem("scanLastStart").innerHTML = scanStartDate;
	if( stopscan == 0 )
		findItem("scanStatus").innerHTML=document.jkos.kosGetText("scan.finished");
	else
		findItem("scanStatus").innerHTML=document.jkos.kosGetText("scan.interrupted");

	window.setTimeout("document.jReport.update()", 500);
	
	if (isPro) {
		findItem("btCureSel").disabled = false;
		findItem("btDeleteSel").disabled = false;
	}
	findItem("btSaveRpt").disabled = false;


//	findItem("kosReportTarget").innerHTML=document.jkos.kosGetTarget();

	if( findItem("nr_infe").innerHTML != 0 || findItem("nr_susp").innerHTML != 0 ) {
		findItem("kosBanner").src="../../images/top_banner_red.png";
		findItem("kosBannerText").style.color="#920404";
		findItem("kosBannerText").innerHTML=document.jkos.kosGetText("scan.infected");
	}
	else {
		findItem("kosBanner").src="../../images/top_banner_green.png";
		findItem("kosBannerText").style.color="#004834";
		findItem("kosBannerText").innerHTML=document.jkos.kosGetText("scan.clean");
	}

}

function cheatBrowserCache()
{
	var re = new RegExp("n=\\d+$");
	if(!re.test(window.location)) {
		var d = new Date();
		window.location = window.location + "?n=" + d.getTime();
	}
}
