YAHOO.util.Event.addListener("uploadFilesLink", "click", upload);

YAHOO.util.Event.onDOMReady(function () { 
	var uiLayer = YAHOO.util.Dom.getRegion('selectLink');
	var overlay = YAHOO.util.Dom.get('uploaderOverlay');
	YAHOO.util.Dom.setStyle(overlay, 'width', "200px");
	YAHOO.util.Dom.setStyle(overlay, 'height', "28px");
	
	var isTooOld = false;
	if(swfobjectUA) {
		if(swfobjectUA.pv[0] < 9) {
			isTooOld = true;
		}
		if((swfobjectUA.pv[0] == 9) && (swfobjectUA.pv[1] == 0) && (swfobjectUA.pv[2] < 45)) {
			isTooOld = true;
		}
	}
	if(isTooOld) {
		overlay.style.background = "none";
		document.getElementById("uploadFilesLink").style.display = "none";
		overlay.innerHTML += "<div style='text-align: center;'><p>Sorry, your browser isn't capable of sending photos via this form.</p><p>Please <a href='http://www.adobe.com/products/flashplayer/' target='_blank' >update Flash Player</a> or simply email your photos to <a href='mailto:readerpix@theherald.co.uk'>readerpix@theherald.co.uk</a>.</p></div>";
	}
});

YAHOO.widget.Uploader.SWFURL = "/ui/swf/uploader.swf";

if (document.getElementById("uploaderOverlay")) {
	var uploader = new YAHOO.widget.Uploader( "uploaderOverlay" );
	uploader.addListener('contentReady', handleContentReady);
	uploader.addListener('fileSelect', onFileSelect)
	uploader.addListener('uploadStart', onUploadStart);
	uploader.addListener('uploadProgress', onUploadProgress);
	uploader.addListener('uploadCancel', onUploadCancel);
	uploader.addListener('uploadComplete', onUploadComplete);
	uploader.addListener('uploadCompleteData', onUploadResponse);
	uploader.addListener('uploadError', onUploadError);
	uploader.addListener('rollOver', handleRollOver);
	uploader.addListener('rollOut', handleRollOut);
	uploader.addListener('click', handleClick);
	uploader.addListener('mouseDown', handleMouseDown);
	uploader.addListener('mouseUp', handleMouseUp);
}

function handleRollOver () {
	YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('selectLink'), 'color', "#FFFFFF");
	YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('selectLink'), 'background-color', "#000000");
}
function handleRollOut () {
	YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('selectLink'), 'color', "#0000CC");
	YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get('selectLink'), 'background-color', "#FFFFFF");
}
function handleMouseDown () {		
}
function handleMouseUp () {
}
function handleClick () {
}
function handleContentReady () {
    // Allows the uploader to send log messages to trace, as well as to YAHOO.log
	uploader.setAllowLogging(true);
	// Allows multiple file selection in "Browse" dialog.
	uploader.setAllowMultipleFiles(true);
	// New set of file filters.
	var ff = new Array({description:"Documents", extensions:"*.doc;*.pdf;*.txt;*.pps;*.xls;*.docx;*.ppt;*.zip;*.rar;*.gz"},
					   {description:"Images", extensions:"*.jpeg;*.jpg;*.png;*.gif;*.tif;*.psd;*.bmp"},
	                   {description:"Videos", extensions:"*.avi;*.mov;*.mpg;*.rmvb;*.mpeg;*.swf;*.flv;*.divx"},
					   {description:"Audio", extensions:"*.mp3;*.wav;*.wma;*.mp4"});
		
	// Apply new set of file filters to the uploader.
	uploader.setFileFilters(ff);
}

var fileList;
var numUploads;
var uploadsComplete = 0;

function onFileSelect(event) {
	fileList = event.fileList;
	createDataTable(fileList);
}
function createDataTable(entries) {
	rowCounter = 0;
	this.fileIdHash = {};
	this.dataArr = [];
	for(var i in entries) {
		var entry = entries[i];
		entry["progress"] = "<div style='height:5px;width:100px;background-color:#CCC;'></div>";
		dataArr.unshift(entry);
	}
	for (var j = 0; j < dataArr.length; j++) {
		this.fileIdHash[dataArr[j].id] = j;
	}
	var myColumnDefs = [
		{key:"name", label: "File Name", sortable:false},
		{key:"size", label: "Size", sortable:false},
		{key:"progress", label: "Upload progress", sortable:false}
	];

	this.myDataSource = new YAHOO.util.DataSource(dataArr);
	this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
	this.myDataSource.responseSchema = {
		fields: ["id","name","created","modified","type", "size", "progress"]
	};
	
	this.singleSelectDataTable = new YAHOO.widget.DataTable("dataTableContainer",
		myColumnDefs, this.myDataSource, {
			caption:"Files To Upload",
			selectionMode:"single"
		});
	numUploads = dataArr.length;
}
function upload() {
	if (fileList != null) {
		if (!document.getElementById("yourname").value) {
			alert("You must enter your name");
			return false;
		}
		if (!document.getElementById("email").value) {
			alert("You must enter your email address");
			return false;
		}
		if (!document.getElementById("contacttel").value) {
			alert("You must enter a telephone number");
			return false;
		}
		var d = new Date();
		document.getElementById("setid").value = d.getFullYear() + "-" + (d.getMonth()+1) + "-" + d.getDate() + "-" + Math.round(Math.random()*999999);
		uploader.setSimUploadLimit(1);
		uploader.uploadAll("http://www.heraldandtimeslabs.com/dev/uploader/uploader.php", "POST", {setid:document.getElementById("setid").value} );
		document.getElementById("uploadFilesLink").className = "working";
	} else {
		alert("You must select at least one file to upload");
		return false;
	}
}
function onUploadProgress(event) {
	rowNum = fileIdHash[event["id"]];
	prog = Math.round(100*(event["bytesLoaded"]/event["bytesTotal"]));
	progbar = "<div style='height:5px;width:100px;background-color:#CCC;'><div style='height:5px;background-color:#F00;width:" + prog + "px;'></div></div>";
	kbSize = dataArr[rowNum]["size"] / 1024;
	kbSize = Math.round(kbSize) + "k";
	singleSelectDataTable.updateRow(rowNum, {name: dataArr[rowNum]["name"], size: kbSize, progress: progbar});	
}
function onUploadComplete(event) {
	rowNum = fileIdHash[event["id"]];
	prog = Math.round(100*(event["bytesLoaded"]/event["bytesTotal"]));
	progbar = "<div style='height:5px;width:100px;background-color:#CCC;'><div style='height:5px;background-color:#F00;width:100px;'></div></div>";
	singleSelectDataTable.updateRow(rowNum, {name: dataArr[rowNum]["name"], size: dataArr[rowNum]["size"], progress: progbar});
	uploadsComplete++;
	if (uploadsComplete == numUploads) {
		document.getElementById("upload-form").submit();
	}
}
function onUploadStart(event) {	
}
function onUploadError(event) {
}
function onUploadCancel(event) {
}
function onUploadResponse(event) {
}