function page_refresh()
{
 $(document.body).append("<form id='form_refresh' method='post'></form>");
 $('#form_refresh')[0].submit();
}

function redirect(location)
{
 $(document.body).append("<form id='form_redirect' method='post' action='/redirect.php?to="+escape(location)+"'></form>");
 $('#form_redirect')[0].submit();
}

function user_service_login()
{
 $('#form_login_error').html('');
 $('#form_login').ajaxSubmit( {
  url: '/ajax.php?module=user_service&section=0&action=login',
  dataType: 'json',
  success: function(resp)
  {
   if (resp.result=='success')
   {
    page_refresh();
   }
   else
   {
    $('#form_login_error').html('Неверно указан email или пароль');
   }
  }
 });
 
 return false;
}

function user_service_register()
{
 $('#form_register_error').html('');
 $('#form_register .field_invalid').removeClass('div_form_error');
 
 $('#form_register').ajaxSubmit( {
  url: '/ajax.php?module=user_service&section=0&action=register',
  dataType: 'json',
  success: function(resp)
  {
   if (resp.result=='success')
   {
    page_refresh();
   } 
   else
   {
    if (resp.result_desc||false)
     $('#form_register_error').html(resp.result_desc.replace(',','<br>'));
    var codes=resp.result_code.split(',');
    for( var i=0; i<codes.length; i++)
    {
     if (codes[i].substr(0,1)=='!')
      $('#form_register *[name='+codes[i].substr(1)+']').addClass('field_invalid');
    }
   }
  }
 });
 
 return false;
}

function user_service_update_profile()
{
 $('#form_update_profile_error').html('');
 $('#form_update_profile .field_invalid').removeClass('div_form_error');
 
 $('#form_update_profile').ajaxSubmit( {
  url: '/ajax.php?module=user_service&section=0&action=update_profile',
  dataType: 'json',
  success: function(resp)
  {
   if (resp.result=='success')
   {
    //page_refresh();
    show_alert('Профиль пользователя','Изменения сохранены','message');
   } 
   else
   {
    if (resp.result_desc||false)
     $('#form_update_profile_error').html(resp.result_desc.replace(',','<br>'));
    var codes=resp.result_code.split(',');
    for( var i=0; i<codes.length; i++)
    {
     if (codes[i].substr(0,1)=='!')
      $('#form_update_profile *[name='+codes[i].substr(1)+']').addClass('field_invalid');
    }
   }
  }
 });
 
 return false;
}

function user_cart_subproduct_prev(elem)
{
 if ($(elem).parent().find('span:visible').prev('span').length)
  $(elem).parent().find('span:visible').hide().prev('span').show();
 
 if ($(elem).parent().find('span:visible').next('span').length)
  $(elem).nextAll('a').removeClass('inactive');
 else
  $(elem).nextAll('a').addClass('inactive');
 
 if ($(elem).parent().find('span:visible').prev('span').length)
  $(elem).removeClass('inactive');
 else
  $(elem).addClass('inactive');
 
 user_cart_price_update($(elem).parent().parent());
}

function user_cart_subproduct_next(elem)
{
 if ($(elem).parent().find('span:visible').next('span').length)
  $(elem).parent().find('span:visible').hide().next('span').show();
 
 if ($(elem).parent().find('span:visible').next('span').length)
  $(elem).removeClass('inactive');
 else
  $(elem).addClass('inactive');
 
 if ($(elem).parent().find('span:visible').prev('span').length)
  $(elem).prevAll('a').removeClass('inactive');
 else
  $(elem).prevAll('a').addClass('inactive');
 
 user_cart_price_update($(elem).parent().parent());
}

function user_cart_amount_increase(elem)
{
 var price=$(elem).parent().find('span').html().split(' ');
 $(elem).parent().find('span').html(parseInt(price[0])+1+' '+price[1]);
 $(elem).prevAll('a').removeClass('inactive');
 user_cart_price_update($(elem).parent().parent());
}

function user_cart_amount_decrease(elem)
{
 var price=$(elem).parent().find('span').html().split(' ');
 if (price[0]>1)
  $(elem).parent().find('span').html(parseInt(price[0])-1+' '+price[1]);
 if (price[0]==2) $(elem).addClass('inactive');
 user_cart_price_update($(elem).parent().parent());
}

function user_cart_choice_get(elem)
{
 var result={};
 result.index=elem.find('.quantity').eq(0).find('span:visible').prevAll('span').length;
 result.count=elem.find('.quantity').eq(1).find('span').html().split(' ')[0];
 result.price=elem.find('.prices span').eq(result.index).html();
 return result;
}

function user_cart_price_update(elem)
{
 var choice=user_cart_choice_get(elem); 
 var price=choice.count*choice.price;
 elem.find('.promo .price strong').eq(0).html("<span>"+price+"</span>  <em class='rubl'>p</em>");
 Cufon.replace('.rubl', { fontFamily: 'ALS Rubl', hover: true});
}

function user_cart_update(resp)
{
 if (resp.result=='success')
 {
  
  switch (resp.action)
  {
   case 'add':
    //show_alert('Товар добавлен',resp.name,'message');
    break;

   case 'clear':
    $('#user_bin').html("<p class='empty'>Корзина пуста</p>");
    break;
  }
  
  if (resp.data||false)
  {
   if (resp.data.total_count>0)
   {
    html="<p class='all'>"+resp.data.total_count+" товаров на сумму <em>"+resp.data.total_price+" <em class='rubl'>p</em></em></p>" +
    		   "<p class='total'>Всего: <em>"+resp.data.final_price+" <em class='rubl'>p</em><sup>*</sup></em></p>" +
    		   "<p>Учитывая вашу скидку <span id='user_cart_discount' class='promo-item'>"+resp.data.discoun_percent+"%</span></p>" +
    		   "<p>и доставку по Москве</p>";
    $('#basket-box .info').html(html);
    
    html='';
    for( var i=0; i<resp.data.data.length; i++)
    {
     html+="<tr id='user_cart_item_"+resp.data.data[i].bin_id+"'>" +
      		   " <td class='col1'>"+resp.data.data[i].name+"</td>" +
      		   " <td>" +
      		   "  <span class='quantity'>"+resp.data.data[i].count+" шт.</span>" +
      		   "  <a href='javascript:void(0)' class='btn-close' onclick='user_cart_remove("+resp.data.data[i].bin_id+")'>close</a>" +
      		   " </td>" +
      		   " <td>"+resp.data.data[i].price_item+" <em class='rubl'>p</em></td>" +
      		   "</tr>";
    }
    $('#user_cart_orders tbody tr').eq(0).nextAll('tr').remove();
    $('#user_cart_orders tbody').append(html);
    
    $('#user_cart_price_total').html(resp.data.total_price+" <em class='rubl'>p</em>");
    $('#user_cart_price_final').html(resp.data.final_price+" <em class='rubl'>p</em>");
    $('#user_cart_price_delivery').html(resp.data.delivery_cost+" <em class='rubl'>p</em>");
    $('#user_cart_discount').html(resp.data.discount_percent+"%");
    
   } 
   else
   {
    $('#basket-box .info,#bin_content').html("<p class='empty'>Корзина пуста</p>");
    
    $('#user_cart_price_total').html(resp.data.total_price+" <em class='rubl'>p</em>");
    $('#user_cart_price_final').html(resp.data.final_price+" <em class='rubl'>p</em>");
    $('#user_cart_price_delvery').html(resp.data.delivery_cost+" <em class='rubl'>p</em>");
    $('#user_cart_orders tbody tr').eq(0).nextAll('tr').remove();
    $('#user_cart_discount').html(resp.data.discount_percent+"%");
   }
   
   if (resp.orders || false)
   {
    $('.orders_item','#orders_history').remove();
    html='';
    for( var i=0; i<resp.orders.length; i++)
    html+="<tr class='orders_item'>" +
          " <td class='col1'><a href='/track/?order="+resp.orders[i].order_id+"&key="+resp.orders[i].track_key+"'>"+resp.orders[i].order_id+"</a></td>" +
          " <td><span class='quantity'>"+resp.orders[i].price_items+"<em class='rubl'>р</em></span></td>" +
          " <td><strong>"+resp.orders[i].status_text+"</strong></td>" +
          "</tr>";
    $('#orders_history tbody tr').eq(0).after(html);
   }
   
   Cufon.replace('.rubl', { fontFamily: 'ALS Rubl', hover: true});
  }
 }
}

function user_cart_add(elem,id,simple)
{
 if (!simple)
  var choice=user_cart_choice_get($(elem).parent().parent());
 else
  var choice={count: 1, index: 0};
 
 if ($('#prod_img_'+id).length)
 {
		var pos=$('#prod_img_'+id).offset();
  $(document.body).append("<div id='cart_icon' style='position:fixed; top:0; right:0; z-index:999; opacity:0;'><img src='/images/shopping-cart-icon.png'></div>");
  $(document.body).append("<div id='cart_floater' style='position:absolute; z-index:1000; left:"+pos.left+"px; top:"+pos.top+"px;'><img src='"+$('#prod_img_'+id)[0].src+"'></div>");
  var dst=$('#cart_icon').offset();
		
		$('#cart_icon').animate({opacity:1},250);
	 $('#cart_floater').animate({opacity:0.7,left:dst.left,top:dst.top},500).animate({opacity:0},500,function(){$(this).remove()});
		$('#cart_icon').animate({opacity:1},500).animate({opacity:0},500,function(){$(this).remove()});
 }
 else if ($('#prod_count').length)
	{
  var pos=$('#prod_count').offset();
  $(document.body).append("<div id='cart_icon' style='position:fixed; top:0; right:0; z-index:999; opacity:0;'><img src='/images/shopping-cart-icon.png'></div>");
  //$(document.body).append("<div id='cart_floater' style='position:absolute; z-index:1000; left:"+pos.left+"px; top:"+pos.top+"px;'><img src='"+$('#prod_img_'+id)[0].src+"'></div>");
		$(document.body).append("<div id='cart_floater' style='position:absolute; z-index:1000; left:"+pos.left+"px; top:"+pos.top+"px; color:#DC214C; font-size:18px; line-height:32px; padding:0 10px;'>"+$('#prod_count').text()+"</div>");
  var dst=$('#cart_icon').offset();
  
  $('#cart_icon').animate({opacity:1},250);
  $('#cart_floater').animate({opacity:0.7,left:dst.left,top:dst.top},500).animate({opacity:0},500,function(){$('#cart_floater').remove()});
  $('#cart_icon').animate({opacity:1},500).animate({opacity:0},500,function(){$('#cart_icon').remove()});
	}
	else
	{
		show_alert('Корзина','Товар добавлен в корзину','message');
	}
	 
 $.ajax( {
  url: '/ajax.php?module=user_bin&section=0&action=add&product='+id+'&count='+choice.count+'&index='+choice.index, 
  dataType: 'json',
  async: true,
  success: user_cart_update
 });
}

function user_cart_remove(id)
{
 $.ajax( {
  url: '/ajax.php?module=user_bin&section=0&action=delete&id='+id,
  dataType: 'json',
  async: true,
  success: function(resp)
  {
   $('#user_cart_item_'+id).fadeOut('normal',function()
   {
    $(this).remove();
   });
   user_cart_update(resp);
  }
 });
}

function user_cart_order()
{
 $('#form_order_error').html('');
 $('#form_order').ajaxSubmit( {
  url: '/ajax.php?module=user_bin&section=0&action=order',
  dataType: 'json',
  success: function(resp)
  {
   if (resp.result=='success')
   {
    user_cart_update(resp);

    var link='';
    for( var i=0; i<resp.order_ids.length; i++)
    {
     var url='http://'+window.location.host+"/track/?order="+resp.order_ids[i]+'&key='+resp.order_keys[i];
     link+="<a href='"+url+"' target='_blank'>"+url+"</a>";
     if (i!=resp.order_ids.length-1)
      link+=', ';
    }

    $('#order_track_link').html(link);
    
    if ($('.slide-box:visible').length)
    {
     $('.slide-box:visible').fadeOut(500);
     $('.nav3 div').fadeIn(500);
    }
    else
     $('.nav3 div').slideDown(500); 
    
				redirect('/orders_ok/');
    //show_alert('Ваш заказ оформлен','В процессе обработки заказа Вы будете получать уведомления на указанный Вами e-mail.','message',10000);
   } 
   else
   {
    if (resp.result_desc||false)
     $('#form_order_error').html(resp.result_desc.replace(',','<br>'));
    var codes=resp.result_code.split(',');
    for( var i=0; i<codes.length; i++)
    {
     if (codes[i].substr(0,1)=='!')
      $('#form_order *[name='+codes[i].substr(1)+']').addClass('field_invalid');
    }
   }
  }
 });
 return false;
}

function comments_submit(object_id)
{
 $('#comment_form').ajaxSubmit( {
  url: '/ajax.php?module=user_comments&section=0&action=add&object='+object_id,
  dataType: 'json',
  async: false,
  success: function(resp)
  {
   if (resp.result=='success')
   {
    switch (resp.action)
    {
     case 'add':
      $('#comment_form').prepend(resp.html);
      $('#comment_text').val('');
      break;

     case 'delete':
      $('#comment_'+resp.id).fadeOut();
      break;
    }
   } 
   else if (resp.result=='failure')
   {
    if (resp.result_code=='auth_required')
    {
     
    }
    else
    {
     $('#comments_error_msg').html(resp.result_code);
    }
   }
  }
 });
 return false;
}


function user_service_pass_remind()
{
 $('#form_login_error').html('');
 $('#form_login').ajaxSubmit( {
  url: '/ajax.php?module=user_service&section=0&action=pass_remind',
  dataType: 'json',
  success: function(resp)
  {
   if (resp.result=='success')
   {
    var html="На указанный Вами адрес было выслано письмо с дальнейшими инструкциями.";
    alert(html);
   } 
   else
   {
    $('#form_login *[name=user_login]').addClass('field_invalid');
    $('#form_login_error').html('Неверно указан email');
    // $('#TB_ajaxContent').animate({'backgroundColor':'#000'},1500).animate({'backgroundColor':'#FFF'},1500);
 }
}
 });
 return false;
}

function show_alert(title, text, class_name, timeout)
{
 if (!$('#ajax_alert').attr('id'))
  $('<div id="ajax_alert"></div>').appendTo(document.body);
 if (!timeout)
  var timeout=3000;

 $('<div class="hidden item '+class_name+'"><h2>'+title+'</h2>'+text+'</div>')
 .prependTo($('#ajax_alert'))
 .slideDown('fast')
 .animate({opacity: 1.0},timeout)
 .fadeOut('slow',function(){$(this).remove();});
}

var ajaxtooltip= {
  fadeeffect: [ true, 300 ], // enable Fade? [true/false, duration_milliseconds]
  useroffset: [ 10, 10 ], // additional x and y offset of tooltip from mouse cursor, respectively
  loadingHTML: '<div style="font-style:italic"><img src="ajaxload.gif" /> Fetching Tooltip...</div>',

  positiontip: function($tooltip, e)
  {
   var docwidth=(window.innerWidth)?window.innerWidth-15:ajaxtooltip.iebody.clientWidth-15;
   var docheight=(window.innerHeight)?window.innerHeight-18:ajaxtooltip.iebody.clientHeight-15;
   var twidth=$tooltip.get(0).offsetWidth;
   var theight=$tooltip.get(0).offsetHeight;
   var tipx=e.pageX+this.useroffset[0];
   var tipy=e.pageY+this.useroffset[1];
   tipx=(e.clientX+twidth>docwidth)?tipx-twidth-(2*this.useroffset[0]):tipx; // account for right edge
   tipy=(e.clientY+theight>docheight)?tipy-theight-(2*this.useroffset[0]):tipy; // account for bottom edge
   $tooltip.css({
   left: tipx,
   top: tipy
  });
 },

 showtip: function($tooltip, e)
 {
  if (this.fadeeffect[0])
   $tooltip.hide().fadeIn(this.fadeeffect[1]);
  else
   $tooltip.show();
 },

 hidetip: function($tooltip, e)
 {
  if (this.fadeeffect[0])
   $tooltip.fadeOut(this.fadeeffect[1]);
  else
   $tooltip.hide();
 }
}

function edit_object(node_id)
{
 var url="/panel.php?module=object_editor&section=0&editor_action=edit&node="+node_id+"&hide_menu=1";
 
 var wnd=window.open(url,'editor','width=870,height=500,left=200,top=100,resizable,scrollbars=1');
 wnd.focus();
}

$(document).ready(function()
{
 ajaxtooltip.iebody=(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body;
 var tooltips= []; // array to contain references to all tooltip DIVs on the page
 $('*[title^="ajax:"]').each(function(index)
 { // find all links with "title=ajax:" declaration
   this.titleurl=jQuery.trim(this.getAttribute('title').split(':')[1]); // get URL of external file
   this.titleposition=index+' pos'; // remember this tooltip DIV's position relative to its peers
   tooltips.push($('<div class="ajaxtooltip"></div>').appendTo('body'));
   var $target=$(this);
   $target.removeAttr('title');
   $target.hover(function(e)
   { // onMouseover element
     var $tooltip=tooltips[parseInt(this.titleposition)];
     if (!$tooltip.get(0).loadsuccess)
     { // first time fetching Ajax content for this tooltip?
      $tooltip.html(ajaxtooltip.loadingHTML).show();
      $tooltip.load(this.titleurl,'',function()
      {
       ajaxtooltip.positiontip($tooltip,e);
       ajaxtooltip.showtip($tooltip,e);
       $tooltip.get(0).loadsuccess=true;
      })
     } else
     {
      ajaxtooltip.positiontip($tooltip,e);
      ajaxtooltip.showtip($tooltip,e);
     }
    },function(e)
    { // onMouseout element
     var $tooltip=tooltips[parseInt(this.titleposition)];
     ajaxtooltip.hidetip($tooltip,e);
    })
   $target.bind("mousemove",function(e)
   {
    var $tooltip=tooltips[parseInt(this.titleposition)];
    ajaxtooltip.positiontip($tooltip,e);
   })
  })
		
	//$(document.body).append("<div class='admin_panel'></div>")
});
 
 