//==================================================================================================

// Инициализирует кнопку загрузки файлов и изображений.
function uploadify_init(type, id, temp, callbackFunction) {
	$('.uploadify_object').uploadify({
		'uploader': '/flash/uploadify.allglyphs.swf',
		'script': '/ajax_uploadify.php?mode=upload',
		'cancelImg': '/images/cancelButton.png',
		'folder': '/',
		'auto': true,
		'multi': true,
		'buttonImg': '/images/uploadify_button.png',
		'width': 201,
		'height': 26,
		'scriptData': {'id': id, 'type': type, temp: temp},
		'onAllComplete': callbackFunction
	}) // uploadify
} // function uploadify_init

//==================================================================================================

// Получает список файлов и изображений с сервера и размещает их в контейнере файлов и изображений
// по соответствующему IDшнику.
function uploadify_list(type, id, temp) {
	// Обрабатываем полученный список файлов: XML -> HTML через XSLT.
	var successCallback = function(xml) {
		// XML -> HTML.
		var html = $.xslt({
			xml: xml,
			xslUrl: '/_symp/_xslt/_spec/uploadify_list.xsl'
		})
		
		// HTML в холдер.
		$('.uploadify_list').html(html)
		
		// JavaScript события к уже подгруженному списоку файлов и изображений.
		$('.uploadify_list_element .uploadify_list_delete').click(function() {
			uploadify_delete($(this).attr('ctype'), $(this).attr('cid'))
			return false
		})
		// Выделение файла.
		$('.uploadify_element_file').click(function() {
			if ($(this).hasClass('select_file')) {
				$(this).removeClass('select_file')
				$('input', this).removeAttr('checked')
			}
			else {
				$(this).addClass('select_file')
				$('input', this).attr('checked', 'checked')
			}
		})
	} // successCallback
	
	// Получаем список файлов в XML.
	$.ajax({
		type: 'GET',
		url: '/ajax_uploadify.php',
		data: 'mode=list&id=' + id + '&type=' + type + '&temp=' + temp,
		dataType: 'xml',
		success: successCallback
	}) // ajax
} // function uploadify_list

//==================================================================================================

// Удаление файла.
function uploadify_delete(type, id) {
	$.ajax({
		type: 'GET',
		url: '/ajax_uploadify.php',
		data: 'mode=delete&temp=0&id=' + id + '&type=' + type,
		dataType: 'text',
		success: function(response) {
			if (response == 'ok') {
				//$('.uploadify_list_' + type + '_' + id).remove()
				$('.uploadify_element_file[eltype="' + type + '"][elid="' + id + '"]').remove()
			}
		} // success
	}) // ajax
} // function uploadify_delete

//==================================================================================================

$(document).ready(function() {

//==================================================================================================

$('.uploadify_select_all').click(function() {
	var jSelf = $(this)

	// Перебираем элементы
	$('.uploadify_element_file').each(function() {
		// Если отмечаем все
		if (jSelf.is(':checked')) {
			// Отмечаем все неотмеченные
			if (!$(this).find('input[type="checkbox"]').is(':checked')) {
				$(this).click()
			}
		}
		// Иначе
		else {
			// Снимаем со всех отмеченных галочки
			if ($(this).find('input[type="checkbox"]').is(':checked')) {
				$(this).click()
			}
		}
	})
}) // click

//==================================================================================================

// Вставка выделенных в списке файлов в текст.
$('.uploadify_insert_selected_into_text').click(function() {

	// Подготавливаем переменные
	// Тип формы (blog_post|project|etc)
	var form_type = $('input[type="hidden"]#form_type').val()
	// HTML для вставки в WYSIWYG
	var html = ''
	// Какой редактор отображается на данный момент
	var editor = $('form .jq_block_' + $('.jq_lang_menu div.activ input[type="checkbox"]').attr('lang') + ' textarea').attr('id')

	// Проходим по элементам
	$('.uploadify_element_file').each(function() {
		// Обрабатываем только выбранные
		if ($(this).find('input[type="checkbox"]').is(':checked')) {
			// Тип файла
			var file_type = $(this).attr('eltype')
			// Путь к изображению, ссылка, на крупное изображение, имя файла, иконка файла
			var img_src, a_href, file_name, file_ico

			// Перебираем тип файла
			switch (file_type) {
				// Если изображение
				case 'image':
					// Создаем ссылки
					img_src = $(this).find('img').attr('src')
					img_src = img_src.replace(/thumb\//ig, 'small/')
					a_href = img_src.replace(/small\//ig, '')
					// Конструируем html
					html += '<a class="' + form_type + '_text_gallery_original highslide" href="' + a_href + '"><img class="' + form_type + '_text_gallery_small" src="' + img_src + '"/></a><br />'
					break

				// Если файл
				case 'file':
					// Получаем имя файла
					file_name = $(this).find('div.name_file_ico').text()
					file_ico = $(this).find('img').attr('src')
					file_name = /(.*), /.exec(file_name)[1]
					// Конструирем html
					html += '<a href="/up_files/' + form_type + '/' + file_name + '"><img src="' + file_ico + '"/>' + file_name + '</a><br />'
					break
			} // switch

			// Снимаем с обработанного элемета галочку
			$(this).click()
		} // if
	}) // each

	// Вставляем созданный html в активный редактор
	tinyMCE.execInstanceCommand(editor,"mceInsertContent",false,html)
}) // click

//==================================================================================================

// Удаление выделенных в списке файлов.
$('.uploadify_delete_selected_in_list').click(function() {
	$('.uploadify_element_file').each(function() {
		if ($(this).find('input[type="checkbox"]').is(':checked')) {
			uploadify_delete($(this).attr('eltype'), $(this).attr('elid'))
		}
	})
})

//==================================================================================================

}) // document ready


