// wnditem_upload.js

//---------------------------------------------
$.fn.upload = function(o)
	{
	var upld = $(this);
	var but = $("<input type='file' name='uploadify' class='dfltUploadBut' />")
	.attr("id","up"+_uploadIDCnt)
	.appendTo(upld);
	++_uploadIDCnt;
	if (!o.phpData) o.phpData = {};
	if (o.phpSetData) o.phpSetData(upld, o.phpData);
	o.phpData.user_id = getuserid();
	if (o.php) var php = o.php;
	else var php = 'uploadify.php';
	but.uploadify({
		'uploader'      : 'jquery/plug-ins/uploadify/uploadify.swf',
		'script'        : php,
		'cancelImg'     : 'cancel.png',
		'queueID'       : 'fileQueue',
		'auto'          : true,
		'multi'         : o.multi,
		'folder'		: o.folder,
		'fileDataName'	: "Filedata",
		fileDesc		: o.fileDesc,
		hideButton		: true,
		sizeLimit		: 3000000000,
	//	buttonText		: "Upload",
	//	buttonImg		: "ui_images/uploadbut.jpg",
		wmode			: "transparent",
		onInit			: function(){return true;},
		onSelect		: function(event, queueID, fileObj)
							{
							/*
							fileObj.name – The name of the file 
							fileObj.size – The size in bytes of the file 
							fileObj.creationDate – The date the file was created 
							fileObj.modificationDate – The last date the file was modified 
							fileObj.type – The file extension beginning with a ‘.’ 
							*/
							return true;
							},
		onSelectOnce	: function(event, data){
								upld.upload_updateSettings($(event.currentTarget), o);
								if (o.onSelectOnce) o.onSelectOnce(upld, o, data);
							return true;
							},
		onCancel		: function(event, queueID, fileObj, data){
								return true;
							},
		onClearQueue	: function(event, data){
								/*
								data.fileCount
								data.allBytesTotal
								*/
								return true;
							},
		onQueueFull		: function(event, queueSizeLimit){
								return true;
							},
		onError			: function(event, queueID, fileObj, errorObj){
								//	errorObj.type = type – Either ‘HTTP’, ‘IO’, or ‘Security’ 
								// errorObj.info = msg
								return true;
							},
		onOpen			: function(event, queueID, fileObj){
								if (o.onOpen) o.onOpen(upld, o, fileObj);
								delete obj;								
								/*
								 Three arguments are sent to the function:
								 event: The event object.
								 queueID: The unique identifier of the file that was opened.
								 fileObj: An object containing details about the file that was selected.
								 •  name – The name of the file
								 •  size – The size in bytes of the file
								 •  creationDate – The date the file was created
								 •  modificationDate – The last date the file was modified
								 •  type – The file extension beginning with a '.'
								 */
								return true;
							},
		onProgress		: function(event, queueID, fileObj, data){
								if (o.onProgress) o.onProgress(upld, o, data);					
									/*
								data.percentage – The current percentage completed for the upload 
								data.bytesLoaded – The current amount of bytes uploaded 
								data.allBytesLoaded – The current amount of bytes loaded for all files in the queue 
								data.speed – The current upload speed in KB/s 
							*/
								return false;
							},
		onComplete		: function(event, queueID, fileObj, data){
								var dataObj = $.evalJSON(data);
								if (o.onCompleteFile) o.onCompleteFile(upld, o, dataObj);
								$(event.currentTarget).uploadifySettings("scriptData", dataObj);
								delete dataObj;
								return true;
							},
		onAllComplete	: function(event, data){
								if (o.onAllCompleteFile) o.onAllCompleteFile(upld, o, $.evalJSON(data));
								return true;
							},
		onCheck			: function(event, checkScript, fileQueue, folder, single){
							return true;
							},
		scriptData		: o.phpData
		});
	return $(this);
	}
	
//---------------------------------------------
$.fn.upload_updateSettings = function(but, o)
	{
	var phpData = but.uploadifySettings("scriptData");
	if (o.phpSetData) o.phpSetData($(this), phpData);
	but.uploadifySettings("scriptData", phpData);
	return true;
	}