var uploadPoll;
var scanPoll;
var uploadId;

$(document).ready(
	function(){
		var version = false;
		if (jQuery.browser.msie)
		  version = parseInt(jQuery.browser.version);

		if (!version || version > 6) {

			$('#upload').after('<iframe id="submit_iframe" name="submit_iframe"></iframe>');
			$('#formInputs').empty().append('<div id="tab2"><p>Choose the file you want to scan.</p><input type="file" name="data" /></div>');
			$('#formInputs').append('<div id="tab1"><p>Enter the URL of the file you want to scan.</p><input class="text" type="text" name="url" /></div>');
			$('#formInputs').append('<p id="errorText" style="display:none;"></p><p class="disclaimer">By using ScanThis.net you agree to our <a href="/read/tou">terms of use</a>.</p><input id="start_scan" type="submit" value="Scan Now!"/>');
			$('#upload').attr('target','submit_iframe').attr('action','/api').append('<input type="hidden" name="action" value="" />');
			$('#upload').append('<div id="statusInfo"><h1 id="statusText"></h1><h2 id="statusResult"></h2><img src="/_resources/loading.gif" /></div>');
			$('#form_tabs li').css('display','block').each(function(i){
				if (i == 0) {
					$('a',this).click(function(e){
						e.preventDefault();
						$('#tab1').show();
						$('#tab2').hide();
						$('#form_tabs li:last').removeClass('active');
						$('#form_tabs li:first').addClass('active');
						$(this).trigger('blur');
					});
				} else {
					$('a',this).click(function(e){
						e.preventDefault();
						$('#tab1').hide();
						$('#tab2').show();
						$('#form_tabs li:first').removeClass('active');
						$('#form_tabs li:last').addClass('active');
						$(this).trigger('blur');
					});
				}
			});
			$('#form_tabs').css('height','1.5em');
			$('#start_scan').click(function(e){
				if ($('input[name=data]').val() != '' && $('input[name=url]').val() == '' ||
					$('input[name=data]').val() != '' && $('input[name=url]').val() != '') {
					$('input[name=action]').attr('value','upload');
					$('#statusText').html('Uploading File');
					$('#statusInfo').show();
					$('#formInputs').hide();
					$('body',$('#submit_iframe').contents()).html('');
					uploadPoll = setInterval('checkUpload()',500);
				} else if ($('input[name=data]').val() == '' && $('input[name=url]').val() != '') {
					$('input[name=action]').attr('value','download');
					$('#statusText').html('Downloading File');
					$('#statusInfo').show();
					$('#formInputs').hide();
					$('body',$('#submit_iframe').contents()).html('');
					uploadPoll = setInterval('checkUpload()',500);
				} else {
					$('#errorText').html('Please choose a file to upload or enter a url to download from.').show();
				}
			});
		
		}
	}
);

function checkUpload() {
	if($('body',$('#submit_iframe').contents()).html()!=''){
		var response = eval('(' + $('body',$('#submit_iframe').contents()).html() + ')');
		clearInterval(uploadPoll);
		if (response['error']) {
			$('#statusText').html('Error: ' + response['error']);
			$('#statusInfo img').hide();
			$('#statusInfo').append('<p><a href="/">Start another scan?</a></p>');
		} else if (response['success'] == true) {
			uploadId = response['id'];
			uploadScan = setInterval('checkScan()',5000);
			$('#statusText').html('Scanning File');
		}
	}
}

function checkScan(){
	clearInterval(uploadScan);
	$.post('/api',{action:"check",id:uploadId},function(data){
		evalScan(data);
	},'json');
}

function evalScan(data){
	if (data["scanned"]) {
		$('#statusInfo img').hide();
		$('#statusText').html('Scan completed!');
		if (data["infected"]) {
			$('#statusResult').addClass('infected').html('Infected');
			$('#statusInfo').append('<p>Your file was found to be infected with <strong>'+data["virus"]+'</strong>.</p>');
			$('#statusInfo').append('<p>You can find out more about this virus <a href="http://www.google.com/search?hl=en&q='+data["virus"]+'&btnI=I\'m+Feeling+Lucky&client=scanthis.net">here</a>.</p>');
		} else {
			$('#statusResult').addClass('clean').html('Clean');
			$('#statusInfo').append('<p>Your file was not found to be infected with any known viruses.</p>');
		}
		$('#statusInfo').append('<p><a href="/">Start another scan?</a></p>');
	} else
		uploadScan = setInterval('checkScan()',5000);
}


