
//document.body.style.cursor="wait";

var MAXFILESIZE=1;

function setMaxFS(value){
	MAXFILESIZE=value;
}


function SetVars(){
	//set our globals
	//I know it may seem naughty, BUT 
	//if the form is reloaded via an ajax update
	//all these references become invalid even tho
	//the element names remain the same
	//this ensures the variables are connected to EXISTING 
	//references to the elements
	reanounce_div = $('reannounce_results'), 
	theForm=$('reannounce_form');
	SubmitButton = $('submit_button');
	CancelButton = $('cancel_button');
	reanounce_div = $('reannounce_results');
	CheckControl = $('checkall');
	CheckLabel = $('check_label');
	CheckKey='reannounce[alternates][]';	
	TrackerSelector = $('primaryselect');
	//var TrackerSelector = theForm['primaryselect'];	
	CurrentTracker = TrackerSelector.getValue();
	DownloadLink = $('check_download');
	WaitBar = $('check_download_wait');
};


function updateCheckLabel(){
	SetVars();	
	if(CheckControl.checked == false){
		CheckLabel.update('&nbsp;Select All');	
	} else {
		CheckLabel.update('&nbsp;Deselect All');	
	}
}

function CheckAll(){	
	SetVars();
	if(CheckControl.checked == true){
		CheckLabel.update('&nbsp;Deselect All');
		for(var j = 0; j < theForm.length; j++){
			var elem=theForm.elements[j];
			if((elem.name == CheckKey) && (elem.disabled != true)){
				elem.checked = true;
			}
		}
	}
	else if(CheckControl.checked == false){
		CheckLabel.update('&nbsp;Deselect All');
		for(var j = 0; j < theForm.length; j++){
			var elem=theForm.elements[j];
			if((elem.name == CheckKey) && (elem.disabled != true)){
				elem.checked = false;
			}
		}
	}
	updateCheckLabel();
}
	
function CheckPrimary(event){
	SetVars();
	for(var j = 0; j < theForm.length; j++){
		var elem=theForm.elements[j];
		if(elem.name == CheckKey) {
			checked=elem.checked ;
			//we have to temporarily check the item in order to get its value
			elem.checked = true;
			tracker=elem.getValue();
			elem.checked = checked;
			//alert ('primary: '+ primary + " current:" + tracker);
			if  (CurrentTracker == tracker){
				elem.checked = true;
				elem.disabled=true;
			} else{
				elem.disabled=false;
			}
		}
	}
}
	

function UpdateCheckControl(){
	SetVars();
	CheckControl.checked = false;
	updateCheckLabel();
}

//document.observe("dom:loaded", function() {
function connect_reannounce(){
	SetVars();
	//reanounce_div.observe('change', connect_reannounce());
	
	TrackerSelector.observe('change', CheckPrimary);
	
	// Attach the avent that monitors tracker selection
	// to each checkbox - enabling the select all option to function correctly
	for(var j = 0; j < theForm.length; j++){
		var elem=theForm.elements[j];
		if(elem.name == CheckKey ){
			Event.observe(elem,'click', function(event){	
				UpdateCheckControl();
		     });
		}
	}
												 
	
	Event.observe(CheckControl,'click', function(event){
		CheckAll();
		//Event.stop(event);
    });
	
	Event.observe(CancelButton ,'click', function(event){
		window.location.reload();
		Event.stop(event);
    });
	

	Event.observe(SubmitButton ,'click', function(event){
		theForm.request({
			onFailure: function() {
				alert('Form Submit Error - Do Over');
				//window.location.reload();
			},
			onSuccess: function(t) {
				reanounce_div.update(t.responseText);
				connect_reannounce();
				DownloadLink.setStyle({display: 'block',visibility: 'visible' });
			},
			onComplete: function(t) {
				document.body.style.cursor="auto";	
				WaitBar.setStyle({display: 'none',visibility: 'hidden' });
			},
			onCreate: function(t) {
				document.body.style.cursor="wait";	
				window.scroll(0,0)
				WaitBar.setStyle({display: 'block',visibility: 'visible' });
				DownloadLink.setStyle({display: 'none',visibility: 'hidden' });
			}
			
		});
		//Event.stop(event); // stop the form from submitting										  
	});
	//alert('Connected');
}

	
document.observe("dom:loaded", function() {
/*	<input type="hidden" name="MAX_FILE_SIZE" value="256000">
*/		
	var button = $('upload_button'), 
		progress = $('upload_progress'),
		uploader = $$('.uploader')[0],
		wrapper = $$('.upload_div')[0],
		reanounce_div = $('reannounce_results'), 
		old_style = reanounce_div.getStyle('color'),
		warnmesg = $('info'),
		interval;

	

	button.setStyle({cursor: 'pointer'});
		
	new AjaxUpload(button,{
		action: 'upload.php', 
		name: 'btmetafile',
		data: { MAX_FILE_SIZE: MAXFILESIZE },
		onSubmit : function(file, ext){
			//alert('Max file size = '+MAXFILESIZE );
			if (!(ext && /^(torrent|TORRENT)$/.test(ext))){
				// extension is not allowed
				reanounce_div.update('Error: only .torrent files (metafiles) are allowed');
				reanounce_div.setStyle({color: '#EE0000' });
				// cancel upload
				return false;				
			}
			button.setStyle({display: 'none' , width: '0px'});
			progress.setStyle({visibility: 'visible' , float: 'none'});
			warnmesg.setStyle("text-align: center;");
			progress.setStyle({display: ''});			
			this.disable();
			// Animating upload button
			// Uploding -> Uploading. -> Uploading...
			warnmesg.update('Working');
			interval = window.setInterval(function(){
				var text = warnmesg.innerHTML;
				if (text.length < 13){
					warnmesg.update(text + '.');					
				} else {
					warnmesg.update('Working');				
				}
			}, 200);			
		},
		onComplete: function(file, response){
			//console.log(response);
			
			window.clearInterval(interval);
			warnmesg.setStyle({display: 'none',visibility: 'hidden' });

			tmp=response.split('|');
			var rspnse = tmp[0].split(':');
			if (rspnse[0] == 'Success') {
				reanounce_div.update();
				wrapper.setStyle({visibility: 'hidden', display :'none' });	
				reanounce_div.setStyle({color: old_style  });
				//reanounce_div.update(rspnse[1]);
				reanounce_div.update(tmp[1]);
				connect_reannounce(null);
			} else {
				button.setStyle({display: '' , width: '176px'});
				progress.setStyle({display: '' });
				reanounce_div.update(rspnse[1]);
				reanounce_div.setStyle({color: '#EE0000' });
				this.enable();
			}
			

		}
	});
});




