﻿function createTmpDiv() {
  $("<div id='tmp-div'></div>").appendTo("body").hide();
}
$.fn.centerScreen = function() {
	var w = $(window);
	this.css("position","absolute");
	this.css("top",(Math.round(w.height()-this.height())/2.5+w.scrollTop()) + "px");
	this.css("left",(Math.round(w.width()-this.width())/2+w.scrollLeft()) + "px");
	return this;
}

$.fn.wait = function(time, type) {
	time = time || 1000;
	type = type || "fx";
	return this.queue(type, function() {
			var self = this;
			setTimeout(function() {
					$(self).dequeue();
			}, time);
	});
};

$.fn.formLbox = function(width) {  //alert($(this).html());
  width = width || 450;
  var code = "<div class='ok_div' style='width:"+width+"px'><table id='lbox_table'><tr><td class='lt'>&nbsp;</td><td class='t'>&nbsp;</td><td class='rt'>&nbsp;</td></tr><tr><td class='l'>&nbsp;</td><td class='bg lbox_content'>"+$(this).html()+"</td><td class='r'>&nbsp;</td></tr><tr><td class='lb'>&nbsp;</td><td class='b'>&nbsp;</td><td class='rb'>&nbsp;</td></tr></table><a class='ok_close hovertip' href='#'></a><div class='htip'>Закрыть этот блок</div></div>";
	return $(code);
};

$.fn.showOK = function(width) { //alert($(this).html());
	$(".ok_div").remove();
	width = width || 450;
	//var code = formLbox($(this).wrapInner("<table></table>")); //alert(code);
  return $(this).formLbox(width).appendTo("body").hide().centerScreen().show();
	//return this;
};

$.fn.showLoad = function(x,y) {
  $("#load").css({ top:y-12, left:x-12 }).show();
};

$(document).ready(function(){

var cur = {};
$("*",document.body).live('click', function (e) { //назначаем координаты, ф-я должна быть вначале!
	cur.x = e.pageX;
	cur.y = e.pageY; //alert("x: " + cur.x);
});

/*
$("#load").ajaxStart(function(){ //показ индикатора на любой запрос
  $(this).css({ top:cur.y-12, left:cur.x-12 }).show();
}); */
$("#load").ajaxStop(function(){ //спрятать индикатор по окончанию всех ajax-запросов
  $(this).hide();
}); 

$("#enterclick,#b-close").click(function () { //показать-спрятать форму авторизации
  $("#login").toggle(); 
  return false;
});

$("#closeclick").live('click', function () { //показать-спрятать форму авторизации
  $("#infodiv").remove(); 
  return false;
});


$('.ajaxform').submit(function() { 
	var options = { 
		//target:        '#content',   // target element(s) to be updated with server response  
		success:       showResponse,  // post-submit callback 
		iframe: true,

		// other available options: 
		url:       $(".ajaxform").attr("action")+'?isNaked=1&isAjax=1',         // override for form's 'action' attribute 
		type:      'post',        // 'get' or 'post', override for form's 'method' attribute 
		//dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
		//clearForm: true        // clear all form fields after successful submit 
		//resetForm: true        // reset the form after successful submit 

		// $.ajax options can be used here too, for example: 
		//timeout:   3000 
    error: function () { 
      return true;
    }		
	};																
	$(this).ajaxSubmit(options); 
	return false; 
});

function showResponse(responseText, statusText)  { 
	//alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + '\n\nThe output div should have already been updated with the responseText.'); 
	createTmpDiv();
	var tmp = $("#tmp-div").html(responseText);
	if ($("#ajax_adminForm").length > 0) { //если в ответе есть форма, значит есть ошибки
	  $("#warnText").remove();
		$("#adminForm").before("<div id='warnText' class='warnText'></div>"); 
		$("#warnText").html($("#ajax_warnText").html()).hide().centerScreen().fadeIn("fast", function() {
			$("#warnText").wait(5000).animate({opacity:0},1000,"",function() {
				$("#warnText").remove();																										 
			});																																																	
		});
		if ($("#captcha").length > 0) { //alert('cap'); //если есть капча
			$("#captcha").html($("#ajax_captcha").html());
		}
	}
	else { //если в ответе нет формы, значит успешно, выводим ответ
		$("#content").html(tmp.html());
	}
	$("#tmp-div").remove();
}

function createInfodiv() { //вспомогательная - создает контейнер с кнопкой закрыть
  $("<div id='infodiv'><div id='infocontent'></div><div class='closediv'><a id='closeclick' href='#'>Закрыть окно <img src='/images/1/ico_close.gif'></a></div></div>").appendTo("body").hide();
}

$(".plus").live('click', function () {
  var sub = $(this).attr("id").substring(3); //alert(sub);
  var url = '/scripts/ajax.php?act=submenu&id='+sub;
    if ($("#ss"+sub).length) { //alert('destID уже загружен');
      $("#ss"+sub).toggle();
      $("#img"+sub).attr({"class":"minus", "src":"/images/1/ico_minus.gif"});
    }
    else {  //alert('destID не загружен');
		  $(this).showLoad(cur.x,cur.y);
      $.get(url, function(data){ //alert("Data Loaded: " + data);
        $("#s"+sub).append(data); 
        $("#img"+sub).attr({"class":"minus", "src":"/images/1/ico_minus.gif"}); //alert($("#"+sub).attr("class"));
      });   
    } 
});

$(".minus").live('click', function () { 
	var sub = $(this).attr("id").substring(3);
  $("#ss"+sub).hide();
  $("#img"+sub).attr({"class":"plus", "src":"/images/1/ico_plus.gif"});
});

$("#example > a").click(function () { //alert('yes!');
  var val = $("#example > a").text();
  $(".searchtext").attr("value",val); 
  return false;
});

$("#searchform").submit(function () { //alert('!'+$(".searchtext").val().length);
  if ($(".searchtext").val().length < 2) {
	  alert("Нечего искать!");
		return false;
	}
});

//===== Смена раздела при подаче объявления
$("#Sub1select").live("click", function() {
	$("#Sub3td").html("&nbsp;");
	$("#Sub2select").remove();
	var loadX = $(this).offset().left + 340;
	var loadY = $(this).offset().top + 80;
	$(this).showLoad(loadX,loadY);
  updateAdminForm(".subselect");
});
$("#Sub2select").live("click", function() {
	$("#Sub3td").html("&nbsp;");
	var loadX = $(this).offset().left + 340;
	var loadY = $(this).offset().top + 80;
	$(this).showLoad(loadX,loadY);
  updateAdminForm(".subselect"); 
});


//= el - заменяемый контейнер, указывать уникальным классом
function updateAdminForm (el) {
  var ajaxurl = $("#adminForm").attr("action")+'?isNaked=1&noposting=1'; //alert(ajaxurl);
  $.ajax({
    url: ajaxurl,          
    type: "POST",
    dataType : "html",                   
    data: $("#adminForm").serialize(),
    error: function () { 
      return true;
    },
    success: function (xml) { 
      createTmpDiv();
      var tmp = $("#tmp-div").html(xml); //alert(tmp.html());
      $(el+":first").html($(el+":last").html());
      $("#tmp-div").remove();
    }
  });  
  return false;  
}
//===== // Смена раздела при подаче объявления

//===== Смена нас. пункта при подаче объявления
$(".regionselect > select").change(function() { 
  $(".locationselect > select").attr("disabled","disabled");
	var loadX = $(this).offset().left + 500; //alert(loadX);
	var loadY = $(this).offset().top + 10;
	$(this).showLoad(loadX,loadY);
  updateAdminForm(".locationselect");
});

//===== HOVERTIP
//$("*").live("click", hideTip);
if($(".hovertip").length >= 1) $('body').append('<div id="hovertip"></div>');

$(".hovertip").not(".nextdivtip").each(function() {
  var content = $(this).attr("title");
  $(this).after("<div class='htip'>"+content+"</div>").addClass("nextdivtip").removeAttr("title");
});

$(".hovertip").live("mouseover", function (e) {
	var leftDelta = 0; var topDelta = 0;
	var windowWidth = $(window).width();
	var windowHeight = $(window).height();
	var scrollTop = $(window).scrollTop(); 
	$('#hovertip').html($(this).next('.htip').html());
	if(windowWidth - e.pageX < $('#hovertip').width() * 2 + 30) leftDelta = $('#hovertip').width() + 40;
	if(((windowHeight + scrollTop) - e.pageY) < $('#hovertip').height() * 2 + 30) topDelta = $('#hovertip').height() + 40;
	$('#hovertip').css({'top': ((e.pageY+15) - topDelta)+'px', 'left': ((e.pageX+15) - leftDelta)+'px', 'z-index':100});
	$('#hovertip').show();
	$(document).mousemove(function(e){
			$('#hovertip').css({'top': ((e.pageY+15) - topDelta)+'px', 'left': ((e.pageX+15) - leftDelta)+'px'});
	});
});

$(".hovertip").live("mouseout", hideTip);
function hideTip() {
	$().unbind('mousemove');
	$("#hovertip").hide();
	leftDelta = 0; topDelta = 0;
}
//===== / HOVERTIP

$(".img_panel a").click(function () {
  $("#mainPic img").removeAttr("width").removeAttr("height").attr("src",$(this).attr("href")); 
	$(this).blur();
  return false;
});

});
