
function simpleUploadImage(objectId, type)
{
	if (!type) {
		type = "company";
	}
	
	var controller = "";
	if (type == "company") controller = "companies"; else controller = "events";
	
	form = $("<form action='/"+controller+"/upload_image/' enctype='multipart/form-data' method='POST' id='image_form'>"
		+"<hr class='space' />"
		+"<input type='hidden' name='"+type+"_id' value='"+objectId+"' />"
		+"<input id='imagefield' type='FILE' name='Filedata' /><br />"
		+"Название:<br />"
		+"<input type='text' name='title' /><br />"
		+"<hr class='space' />"
		+"<input type='submit' id='upload_img_subm' onclick='' value='Загрузить' />"
		+"</form>");
	
	$("#company_upload_image").remove();
	
	div = $("<div id='company_upload_image' style='display:none;'></div>");
	div.append(form);
	
	//div.insertAfter($(link));
	div.appendTo($("body"));
	divId = "company_upload_image";
	
	$("#upload_img_subm").click(function(){
		cimg = checkImage($('#imagefield').val());
		if (cimg) {
			if ($("input[name='title']").val()=='') {
				alert('Необходимо заполнить название фотографии');
				return false;
			}
			else return true;
		}
		else return false;
	});
	
	// Откроем thickbox-окошко
	tb_show('Загрузка изображения','#TB_inline?height=150&width=240&inlineId='+divId);
}

function uploadImage(objectId, type, userId, sessionid)
{
	if (!type) {
		type = "company";
	}
	
	var controller = "";
	if (type == "company") controller = "companies"; else controller = "events";
	
	form = $(""
		+"<hr class='space' />"
		+"<form action='/"+controller+"/upload_image/' enctype='multipart/form-data' method='POST' id='image_form'>"
        +"<div id='upl_buttons'>"
		+"<div style='float:left; border: solid 1px #7FAAFF; background-color: #C5D9FF; height: 20px; width: 140px;'>"
		+"<span id='spanButtonPlaceHolder'></span>"
		+"</div>"
		+"<div style='float:left; border: solid 1px #7FAAFF; background-color: #C5D9FF; height: 20px; width: 100px; margin-left: 10px; padding-left: 10px;'>"
		+"<a href='#' onClick='cancelAllUpload(); return false;'>Отменить все</a></div>"
		+"<div style='float: left; margin-left: 210px;'>"
		+"<a href='#' onClick='uplOldUpload(); return false;'>Использовать простую загрузку</a></div>"
		+"</div>"
        +"<div id='uploading' class='uploading'><i id='upl_empty'>Файлы не выбраны</i></div>"
        +"<hr class='space' />"
        +"<input id='upl_submit' type='button' disabled='disabled' onClick=\"startUpload(); return false;\" value='Загрузить фотографии' />"
		+"</form>"
		+"<hr class='space' />");
	
	$("#company_upload_image").remove();
	
	div = $("<div id='company_upload_image' style='display:none;'></div>");
	div.append(form);
	
	div.appendTo($("body"));
	divId = "company_upload_image";
    
    //var swfu;

    settings = {
        flash_url : "/js/swfupload/swfupload.swf",
        upload_url: "/"+controller+"/upload_image",
        post_params: {"PHPSESSID" : sessionid,
			'company_id': objectId,
            'event_id': objectId
        },
		
		custom_settings: {
            'object_id': objectId,
			'type': type
        },
        
        file_size_limit : "2 MB",	// 2MB
        file_types : "*.jpg;*.jpeg;*.png;*.gif",
        file_types_description : "Изображения",
        file_upload_limit : "0",
        file_queue_limit : 0,
        
        debug: false,

        // Button settings
        button_image_url: "/images/SmallSpyGlassWithTransperancy_17x18.png",
        button_width: 140,
		button_height: 18,
        button_placeholder_id: "spanButtonPlaceHolder",
        button_text: '<span class="upl_button">Выбрать файлы</span>',
        button_text_style: ".upl_button { font-family: Helvetica, Arial, sans-serif; font-size: 12pt; }",
        button_text_top_padding: 0,
        button_text_left_padding: 18,
        button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
        button_cursor: SWFUpload.CURSOR.HAND,
        
        // The event handler functions are defined in handlers.js
        file_queued_handler : fileQueued,
        file_queue_error_handler : fileQueueError,
        file_dialog_complete_handler : fileDialogComplete,
        upload_start_handler : uploadStart,
        upload_progress_handler : uploadProgress,
        upload_error_handler : uploadError,
        upload_success_handler : uploadSuccess,
        upload_complete_handler : uploadComplete,
        queue_complete_handler : queueComplete	// Queue plugin event
    };

    swfu = new SWFUpload(settings);
	
	// Откроем thickbox-окошко
	tb_show('Загрузка изображений','#TB_inline?height=350&width=680&inlineId='+divId);
	
	//swfu.selectFiles();
}

function startUpload()
{
	
	var success = true;
	$(".upl_file").each(
		function()
		{
			id = $(this).attr('id').replace("upl_", "");
			
			$("#upl_status_"+id).html('').removeClass('upl_error');
			t = $("#upl_title_"+id).val();
			if (t == '') {
				$("#upl_status_"+id).html('Введите название').addClass('upl_error');
				success = false;
			}
		}
	);
	
	if (success) {
		swfu.startUpload();
	}
}

function cancelUpload(id)
{
	swfu.cancelUpload(id);
	$("#upl_"+id).remove();
	
	if ($(".upl_file").length == 0) {
		$("#uploading").html("<i id='upl_empty'>Файлы не выбраны</i>");
		$("#upl_submit").attr('disabled', 'disabled');
	}
}

function cancelAllUpload()
{
	swfu.cancelQueue();
	$("#uploading").html("<i id='upl_empty'>Файлы не выбраны</i>");
	$("#upl_submit").attr('disabled', 'disabled');
}

function uplOldUpload()
{
	$("#TB_ajaxContent").empty();
	simpleUploadImage(swfu.customSettings.object_id, swfu.customSettings.type);
}

/* **********************
   Event Handlers
   These are my custom event handlers to make my
   web application behave the way I went when SWFUpload
   completes different tasks.  These aren't part of the SWFUpload
   package.  They are part of my application.  Without these none
   of the actions SWFUpload makes will show up in my application.
   ********************** */
function fileQueued(file) {
	
	$("#upl_empty").remove();
	
    div = $("<div id='upl_"+file.id+"' class='upl_file'></div>");
    div.appendTo($("#uploading"));
    
    $("<div class='upl_file_name'>"+file.name+"</div>").appendTo(div);
	$("<div class='upl_file_title'><label>Название:</label><input type='text' id='upl_title_"+file.id+"' /></div>").appendTo(div);
    $("<div class='upl_file_status' id='upl_status_"+file.id+"'>Готов</div>").appendTo(div);
    $("<div class='upl_file_progress'><div style='height: 16px; clear: both;' id='progressbar_"+file.id+"'></div></div>").appendTo(div);
	$("<div class='upl_file_controls'><a href='#' onClick=\"cancelUpload('"+file.id+"'); return false;\">Отмена</a></div>").appendTo(div);
    
    $("#progressbar_"+file.id).progressbar({
			value: 0
	});
    
}

function fileQueueError(file, errorCode, message) {
	//alert("message");
}

function fileDialogComplete(numFilesSelected, numFilesQueued) {
	try {
		
		if (numFilesSelected > 0) {
			$("#upl_submit").removeAttr('disabled');
		}
		
	} catch (ex)  {
        this.debug(ex);
	}
}

function uploadStart(file) {
	try {
		
		t = $("#upl_title_"+file.id).val();
		if (t == '') {
			$("#upl_status_"+file.id).html('Введите название').addClass('upl_error');
			return false;
		}
		
        this.addFileParam(file.id, "title", t);
        
	}
	catch (ex) {}
	
	return true;
}

function uploadProgress(file, bytesLoaded, bytesTotal) {
	try {
		var percent = Math.ceil((bytesLoaded / bytesTotal) * 100);
        
        $("#upl_status_"+file.id).html("Загрузка ("+percent+")");
        
        $("#progressbar_"+file.id).progressbar('value', percent);
        
		
	} catch (ex) {
		this.debug(ex);
	}
}

function uploadSuccess(file, serverData) {
	try {
		//alert("Complete!");
        
        $("#upl_"+file.id).remove();

	} catch (ex) {
		this.debug(ex);
	}
}

function uploadError(file, errorCode, message) {
	try {
        
		$("#upl_status_"+file.id).html(message).addClass('upl_error');
		
		if (errorCode == -280) {
			$("#upl_"+file.id).remove();
		}
		
	} catch (ex) {
        this.debug(ex);
    }
}

function uploadComplete(file) {
	if (this.getStats().files_queued === 0) {
		//alert("All!");
	}
}

// This event comes from the Queue Plugin
function queueComplete(numFilesUploaded) {
	if (numFilesUploaded > 0) {
		$.jGrowl("Фотографии загружены ("+numFilesUploaded+")", { life: 3000, glue: 'before'});
		tb_remove();
		location.reload();
	}
}