$(function() {

	var uploader = new plupload.Uploader({
		runtimes : 'flash,gears,silverlight,html5',
		browse_button : 'pickfiles',
		container : 'container',
		max_file_size : PUNBB.env.iu.iu_max_file_size/1000 + 'Kb',
		chunk_size : '100kb',
		url : PUNBB.env.iu.base_url + '/misc.php?iu_upload',
		flash_swf_url : PUNBB.env.iu.ext_url + '/assets/plupload.flash.swf',
		silverlight_xap_url : PUNBB.env.iu.ext_url + '/assets/plupload.silverlight.xap',
		resize : {width : PUNBB.env.iu.iu_max_width, height : PUNBB.env.iu.iu_max_height, quality : 70},
        filters : [
               {title : "Image files", extensions : PUNBB.env.iu.allowed_images}
        ]
	});

	 uploader.bind('Error', function(up, err) {
		 console.log('Error', err);
		 });
	
	uploader.bind('FilesAdded', function(up, files) {
		$('#iu_description').hide();
		if ($('#iu_error').length > 0)
			$('#iu_error').remove();
		$.each(files, function(i, file) {
			if (file.size < PUNBB.env.iu.iu_max_file_size ) {
				ext = file.name.substring(file.name.lastIndexOf('.') + 1);
				if (PUNBB.env.iu.allowed_images.toLowerCase().search(ext.toLowerCase()) !=-1) {
					file.name = file.id + '.' + ext; 
					$('#container').before('<div class="iu_clickable" id="iu_img_'+file.id+'"><img src="' + PUNBB.env.iu.ext_url + '/assets/ajax-loader.gif" /><p id="iu_desc_'+file.id+'"><span id="progr'+file.id+'">0%</span><span>(' + plupload.formatSize(file.size) + ')</span></p></div>');
				}
				else {
					showError(PUNBB.env.iu.lang_invalid_extension + file.name);
				}
			}
			else {
				showError(file.name + ' ('+ file.size +') - ' + PUNBB.env.iu.lang_max_file_size + '(' + PUNBB.env.iu.iu_max_file_size  + ')');
			}
		});
		setTimeout(function(){uploader.start();	} , 500);
	});
	
	uploader.bind('FileUploaded',function(up, file, res) { 
		var obj = jQuery.parseJSON(res.response);
		if (obj.result == 1) {
			$('#iu_img_'+file.id).remove();
			PUNBB.pun_bbcode.insert_text('[img]' + PUNBB.env.iu.ext_url + '/' + obj.thumb,'[/img]');
			var img = obj.thumb.substring(obj.thumb.lastIndexOf('/') + 1);
			$('.frm-form .hidden').append('<input type="hidden" name="IU_img[]" value="' + img + '" />');
		}
		else {
			showError(obj.error.message);
			$('#iu_img_'+file.id).remove();
		}
	 });
	 
	uploader.bind('UploadProgress', function(up, file) {
		if (file.status == plupload.DONE) {
			file.percent = 100;
		}
		$('#progr' + file.id).html(file.percent + "%");
	});
	
	function showError(error) {
		if ($('#iu_error').length == 0)
			$('.frm-form').prepend('<div id="iu_error" class="ct-box error-box"><ul class="error-list"></ul></div>');
		$('#iu_error ul').append('<li class="warn">' + error + '</li>');
	}
	
	function setClickHandler() {
		var path = $(this).find('img').attr("src");
		PUNBB.pun_bbcode.insert_text('[img]' +  path,'[/img]');
		var img = path.substring(path.lastIndexOf('/') + 1);
		$('.frm-form .hidden').append('<input type="hidden" name="IU_img[]" value="' + img + '" />');
		$(this).closest('div').remove();
		return false;
	}
	function setDeleteHandler(){
		var img = $(this).closest('.iu_clickable').find('img').attr('src');
		img = img.substring(img.lastIndexOf('/') + 1);
		var cur_block = $(this).closest('.iu_clickable');
		cur_block.html('<img src="' + PUNBB.env.iu.ext_url + '/assets/ajax-loader.gif" /><p><span>' + PUNBB.env.iu.lang_deleting + '</span></p>');
		$.getJSON(PUNBB.env.iu.base_url + '/misc.php?iu_upload', { 'delete': img }, function(json){
		    cur_block.remove();
			if ($('.iu_clickable').length <= 1) {
				$('#iu_exist_info').remove();
			}
		});
		return false;
	}
	$('#iu_block div.iu_clickable').click(setClickHandler);
	$('#iu_block .iu_delete a').click(setDeleteHandler);
	uploader.init();
});
