/* показываем лоадер */
function showLoader() {
	if($("#loader").is("img")) return false;
	$("#listFiles").prepend('<img src="/images/loader.gif" id="loader" />');
}

/* убираем лоадер */
function hideLoader(){ $("#loader").remove(); }

/* обновление списка файлов */
function refreshListFiles(){
	after = after || ""
	/* вставляем лоадер в угол поля */
	showLoader();
	/* запускаем ajax */
	$.get("/scripts/listfiles.php", function(data){
		$("#uploadFiles").next().remove();
		$("#listFiles").append(data);
		hideLoader();
		if(typeof(after)=="function") after();
	});
	
}

/* удаление файла */
function deleteFile(file){
	/* вставляем лоадер в угол поля */
	showLoader();
	/* запускаем ajax */
	$.get("/scripts/delete.php", { file: file }, function(data){ refreshListFiles(); });
	return false;
}

/* удаление всех файлов */
function clearListFiles(){
	if($("#yesflash").css("display")=="block")
		$('#uploadify').uploadifyClearQueue();
	deleteFile('all');
	return false;
}

/* загрузка файлов */
function uploadFiles(){
	$('#uploadify').uploadifyUpload();
	return false;
}

/* работа по обработке */
var startWork = function() {
	// проверяем, что у нас в загруженных файлах
	if($("#uploadFiles").text().length>0 && typeof(after)!="function") {
		if(confirm("Имеются незагруженные файлы. Загрузить их и начать обработку?")) {
			// загружаем сначало, потому запускаем процедуру работы
			after = startWork;
			uploadFiles();
			return false;
		} else {
			if(!$("#listFiles li").length>0) {
				showDialog("nofile");
				return false;
			}
		}
	} else if(!$("#listFiles li").length>0) {
		showDialog("nofile");
		return false;
	}
	after = "";
	
	// делаем кнопку неактивной
	$("#start").unbind("click",startWork).addClass("worked");

	// создаем файл
	$.post("/scripts/create.php", $("#form").serialize(), function(data){
		// файл создали, запускаем отсчет по проверке что работа выполнена
      if(data){
      	$("#start").everyTime("1s","timer_counter",function(i){ $("sup").text(parseInt(151-i)); }, 150);
      	$("#result").everyTime("15s", "timer", function(i) {
				// запускаем скрипт, который бы проверил конец работы
				$.get("/scripts/checkend.php", function(data){
					if(data){
						$("#result").stopTime("timer");
						endWork(true);
					}
				});
			}, 10);
         $("#result").oneTime("160s", "timer", function(){ endWork(false); });
      }
	});
	return false;
}

/* конец работы */
var endWork = function(status){

   $("#start").stopTime("timer_counter");
	if(status) {
		// все ок, обновляем результаты
		$("#result").load("/scripts/listresult.php");
	} else {
		// не получилось, попробуем позже
		showDialog("errorwork");
	}
	
	// делаем кнопку активной
	$("sup").text(" ");
	$("#start").bind("click",startWork).removeClass("worked");
	return false;	
}

/* функция отправки сообщения */
var send = function(file){
	/* показываем окно */
	$("#filename").val(file);
	$("#send-mail").dialog('open');
	return false;
}

/* вывод диалогового окна */
var showDialog = function(id){

	$("#"+id).dialog('open')
}

var checkSubmit = function(){
	if(onefile)
		return true
	else
		return false
}

// получим номер сессии через регулярное выражение
var SESSIONID;
var after;
var onefile;

$(document).ready(function() {

	var IE6 = (navigator.userAgent.indexOf("MSIE 6")>=0) ? true : false;

	if(IE6){
		$("<div>").css({
				'position': 'absolute',
				'top': '0px',
				'left': '0px',
				backgroundColor: 'black',
				'opacity': '0.75',
				'width': '100%',
				'height': $(window).height(),
				zIndex: 5000
		}).appendTo("body");
		$('<div class="ui-widget-content"><img src="/images/no-ie6.png" style="float: left;" /><p><br /><br />Ваш браузер устарел и не может использоваться для просмотра сайта.<p>Пожалуйста, обновите браузер или воспользуйтесь другим.<p>Рекомендуем браузер <a href="http://www.mozilla-europe.org/ru/firefox/">Firefox</a>, <a href="http://ru.opera.com/download/">Opera</a> или <a href="http://www.google.com/chrome/">Chrome</a>.</div>').css({
				backgroundColor: 'white',
				color: 'black',
				'top': '50%',
				'left': '50%',
				marginLeft: -250,
				marginTop: -100,
				width: 500,
				paddingRight: 10,
				height: 200,
				'position': 'absolute',
				zIndex: 6000
		}).appendTo("body");
	}

	$("div.dialog[id=sendno]").dialog({
		autoOpen: false,
		modal: true,
		title: "Внимание"
	});
	$("div.dialog[id=sendok]").dialog({
		autoOpen: false,
		modal: true,
		title: "Успешно"
	});
	$("div.dialog[id*=error]").dialog({
		autoOpen: false,
		modal: true,
		title: "Внимание"
	});

	// получим номер сессии через регулярное выражение
	var reg = /uploadify\.js\?id=(\w{13})/
	var arr = reg.exec($("head").html())
	var SESSIONID = arr[1]

	/* добавим диалог по отправке на почту */
	$("#send-mail").dialog({
			autoOpen: false,
			width: 350,
			modal: true,
			title: "Отправка архива на почту",
			buttons: {
				"Отправить": function() {
					var pattern = /^(([a-zA-Z0-9]|[!#$%\*\/\?\|^\{\}`~&'\+=-_])+\.)*([a-zA-Z0-9]|[!#$%\*\/\?\|^\{\}`~&'\+=-_])+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9-]+$/
      		   mail = $("#email").val();
					if(!pattern.test(mail)) {
						showDialog("erroremail");
						return false;
					}
					var popup = $(this);
					popup.dialog('disable');
					$.post("/scripts/send-mail.php", $("#form-send").serialize(), function(data){
						if(parseInt(data)>0) {
							showDialog("sendok");
							popup.dialog('enable');
							popup.dialog('close');
						} else {
							showDialog('sendno');
							popup.dialog('enable');
						}
					});
				}
			}
	});

	// добавим кнопку загрузки фото
	$("#uploadify").uploadify({
		'uploader'       	: '/scripts/uploadify.swf',
		'script'         	: '/scripts/uploadify.php',
		'checkScript'		: '/scripts/check.php',
		'cancelImg'      	: '/images/icon-clear.png',
		'folder'         	: '/work/uploads/' + SESSIONID,
		'auto'           	: true,
		'multi'          	: true,
		'buttonImg'	  	  	: '/images/icon-browse.png',
		'queueID'			: 'uploadFiles',
		'wmode'				: 'transparent',
		'fileDesc'			: 'JPG (*.jpg), JPEG (*.jpeg), GIF (*.gif), PNG (*.png)',
		'fileExt'			: '*.jpg;*.jpeg;*.gif;*.png',
		'onAllComplete'	: function(){ refreshListFiles(); }
	});


	// добавим кнопку очистить все
	$("a.reset").click(function(){
		clearListFiles();
		return false;
	});
	
	// привяжем клик на кнопку работать
	$("#start").bind("click", startWork)
	
	// привяжем клик на кнопку загрузить по одному
	$("#submit").click(function(){ onefile=true; $("#submit-hide").click(); })
	
	// привяжем событие наведение на radio кнопки
	$(".select label").wrapInner("<span>").hover(
		function(){ $(this).addClass("hover");}, function(){ $(this).removeClass("hover");}
	).click(function(){
      // определим класс - это и есть какой слой сделать активным
      var layer = $(this).attr("for")
      // если слой задан, то
      if(layer) {
      	obj = $(this).parent().parent().parent()
      	// скроем все слоя на этом шаге
      	obj.find(".layer").hide()
      	// уберем все признаки активности ссылки
      	obj.find("ul.select li").removeClass("active")
      	// покажем активный
      	$("#"+layer).show()
      	// добавим стиль активности
      	$(this).parent().addClass("active")
      	// кликаем по радио кнопке
      	$(':radio[value="'+layer+'"]').click()
      }
   })

   // задаем слайдеры
   $("#slider-procent").slider({ range: "min", value: $("#procent-value").val(), min: 1, max: 99, slide: function(event, ui) { $("#procent-value").val(ui.value) }})
   $("#slider-max-width").slider({ range: "min", value: $("#max-width").val(), min: 10, max: 1000, slide: function(event, ui) { $("#max-width").val(ui.value) }})
   $("#slider-max-height").slider({ range: "min", value: $("#max-height").val(), min: 10, max: 1000, slide: function(event, ui) { $("#max-height").val(ui.value) }})
   $("#slider-width").slider({ range: "min", value: $("#width").val(), min: 10, max: 1000, slide: function(event, ui) { $("#width").val(ui.value) }})
   $("#slider-height").slider({ range: "min", value: $("#height").val(), min: 10, max: 1000, slide: function(event, ui) { $("#height").val(ui.value) }})
	
	// повесим событие на смены цифр руками
	$(".size input[type=text]").keyup(function(){
		if(!parseInt($(this).val())>0)
			$(this).val(1);
		else
			$(this).val(parseInt($(this).val()))
		obj = $(this).parent().parent().find(".ui-slider")
		obj.slider('value', parseInt($(this).val()))
	})
	
	/* добавим ролик */
	$("#help").html('<object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/59B99gcez7I&hl=ru_RU&fs=1&rel=0&color1=0x2b405b&color2=0x6b8ab6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/59B99gcez7I&hl=ru_RU&fs=1&rel=0&color1=0x2b405b&color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object>').dialog({
		autoOpen: false,
		modal: true,
		width: 670,
		height: 565,
		title: "Видеоинструкция"
	});
			
	// повесим клик на помощь
	$(".help a").click(function(){
		showDialog("help")
		return false		
	})

	// повесим клик на шаги с строку
	$("#row").click(function(){
		$("li.step").removeClass("incol")
		$.cookies.set("incol","n")
		return false		
	})

	// повесим клик на шаги в столбец
	$("#col").click(function(){
		$("li.step").addClass("incol")
		$.cookies.set("incol","y")
		return false		
	})

});

