var Ads = new Object();
Ads.create = function(topic_id, partner_id, request_type, icons_count)
{
   Hints.create(topic_id, partner_id, $('#sv').val());
   this.map = $('.search-map-div');
   this.map_div = $('.search-map div');
   this.input_req = $('.input-request');
   this.images_path = {};
   this.banners = new Object();
   this.banner = new Object();

   this.topic_id = topic_id;
   this.partner_id = partner_id;
   this.type = request_type;
   this.icons_count = icons_count;
   this.words = '';
   this.selected_words = '';
   this.div_word;
   this.id_timeout;
   this.save_icon_src;
   $('.search-map a').each(function(){
      Ads.words += $(this).text() + ', ';
   });
   Ads.sendReqIcon();
   this.map_div.find('.icon').live('mouseenter', function(e){
      Ads.selected_words = $(e.target).next('a').text();
      Hints.word = Ads.selected_words;
      addWordInSF(Ads.selected_words);
      Hints.objective = 'img';
      Hints.aMouseOver(e);
//      Ads.id_timeout = setTimeout('Ads.sendReq()', 200);
   });
   this.map_div.find('.icon').live('mouseleave', function()
   { 
//      Ads.div_word.find('.icon').attr('src', Ads.save_icon_src);
      delWordInSF(Ads.selected_words);
      Hints.hintHide();
      clearTimeout(Ads.id_timeout);
   });
   this.map.find('.banner').live('mouseleave', Ads.deleteBanners);
   this.map.find('.banner p').live('click', Ads.clickBanner);
   this.map.find('.banner a').live('click', function(){Ads.clickBanner(); return false;});
   this.map.find('.banner .ban_img').live('click', Ads.clickBanner);
   this.map.find('.banner .close').live('click', Ads.deleteBanners);
//   $('body').live('mouseleave', Ads.deleteBanners);
}
Ads.sendReq = function(){
   var url_query = "/map_banner/get.php?";

   var words = (Ads.type == 1) ? $.trim(Ads.input_req.val()) + ' ' + $.trim(Ads.selected_words) : Ads.selected_words;

   var data_query = {
      blankkeywords : '',
      json : 1,
      mainrequest : '',
      maintopicid : Ads.topic_id,
      partnerid : Ads.partner_id,
      request : words
   };
   $.ajax({
      url        : url_query,
      type       : "POST",
      data       : data_query,
      dataType   : "json",  
//      beforeSend : Ads.waitBanner,
      success    : Ads.processResult
//      error      : Ads.error
   });
}

Ads.sendReqIcon = function(){
      var data_query = {keywords : Ads.words};
      $.ajax({
         url : '/map_banner/DynamicIcon.php?', 
         type : "GET",
         data : data_query,
         dataType : "json",  
         success : function(data_imgs){Ads.images_path = data_imgs; Ads.createPathImgs(); Ads.createIcon();}
      });
}

Ads.processResult = function(data){
  
if(data)
{
   if(data.banners[1] != undefined)
       var banner = data.banners[1];
   else
       var banner = data.banners[0];
   Ads.banner.map_id  = banner.map_id;
   Ads.banner.href     = banner.link;
   Ads.banner.title    = banner.img_alt;
   Ads.banner.text     = banner.data;
   Ads.banner.url      = banner.sitename;
   Ads.banner.ban_img  = banner.big_image;
   if(Ads.banner.ban_img == undefined || Ads.banner.ban_img == '')
   {
      $.each(Ads.banners, function(){
         if(banner.map_id == this.map_id || (this.map_id.indexOf(banner.map_id) != -1))
         {
            Ads.banner.ban_img = this.ban_img;
            return true;
         }
      });
   }
} 
   if($('.hint').html() != null)
      Ads.addAdsInHint();
/*   else
      Ads.createBanners();
*/
}

Ads.error = function(){
   Ads.div_word.find('.icon').fadeOut('slow', function(){$(this).remove();});
}

Ads.createPathImgs = function(){
   var i = 0;
      for (var key in Ads.images_path){ 
         Ads.banners[i] = {};
         Ads.banners[i].map_id  = $.trim(key);
         Ads.banners[i].icon    = Ads.images_path[key].icon;
         Ads.banners[i].ban_img = Ads.images_path[key].big_image;
       i++;
      }
}

Ads.waitBanner = function(){
   Ads.getDivWord();
/*
   $('<div class="wait-banner"/>').append('<img src="/img/banners/ani_120_optimized.gif"/>')
   .appendTo(Ads.map)
   .css({'top':  Ads.div_word.css('top'), 'left' : Ads.div_word.css('left'), 'display' : 'none'})
   .fadeIn('normal')
   ;
*/ 
   Ads.save_icon_src = Ads.div_word.find('.icon').attr('src');
   Ads.div_word.find('.icon').attr('src', '/img/main/bload.gif');
}

Ads.createBanners = function(){
   Ads.div_word.find('.icon').attr('src', Ads.save_icon_src);
   $('.banner').remove();
   Ads.getDivWord();
   if($('.wait-banner').html() != null)
   {
      banner_div = $('.wait-banner').html('').addClass('banner').removeClass('wait-banner');
   }
   else
   {
      var banner_div = $('<div class="banner"/>')
      .appendTo(Ads.map)
      .css({'top':  Ads.div_word.css('top'), 'left' : Ads.div_word.css('left'), 'display' : 'none'})
      .fadeIn('normal')
      ;
   }
    banner_div
   .append('<img class="close" src="/img/close.gif"/>')
   .append('<img class="ban_img" src="' + Ads.banner.ban_img + '"/>')
   .append('<p class="title"><a href="' + Ads.banner.href + '">' + Ads.banner.title + '</a></p>')
   .append('<p class="text">' + Ads.banner.text + '</p>')
   .append('<p class="url">' + Ads.banner.url + '</p>')
//   .appendTo(Ads.map)
//   .css({'top':  Ads.div_word.css('top'), 'left' : Ads.div_word.css('left'), 'display' : 'none'})
//   .fadeIn('normal')
   ;
 
}

Ads.createIcon = function(){
   var arr_random_nums = Ads.getArrRendomNums(Ads.map_div.size(), Ads.icons_count);
   Ads.map_div.each(function(){
      var div = $(this);
      for(key in arr_random_nums)
      {
         if($(this).index() == arr_random_nums[key])
         {
            $.each(Ads.banners, function(){
               if(div.find('a').text() == this.map_id){
                  var icon = $("<img src='" + this.icon + "' class='icon'/>")
//                   .css({'width' : this.w + 'px', 'height' : this.h + 'px'})
                   ;  
                  icon.css('display','none').prependTo(div).fadeIn('normal');
                }
            });
         }
      }
  });
}

Ads.deleteBanners = function()
{
   clearTimeout(Ads.id_timeout);
   $('.banner').fadeOut('normal', function(){$('.banner').remove();});
}

Ads.clickBanner = function()
{
//   location.href = $('.banner .title a').attr('href');
window.open($('.banner .title a').attr('href'));
} 

Ads.getDivWord = function()
{
   this.map_div.find('a').each(function(){
      if(Ads.selected_words == $(this).text())
         Ads.div_word = $(this).parent('div');
   });
}

Ads.addAdsInHint = function()
{
   $('.ads').remove();
   var block_ads = $('<div class="ads">')
   .append('<img class="ban_img" src="' + Ads.banner.ban_img + '"/>')
   .append('<p class="title"><a href="' + Ads.banner.href + '">' + Ads.banner.title + '</a></p>')
   .append('<p class="text">' + Ads.banner.text + '</p>')
   .append('<p class="url">' + Ads.banner.url + '</p>')
   ;
      
   $('.hint').prepend(block_ads);
}

Ads.getArrRendomNums = function(to, max_count)
{ 
   var arr_num = new Array();
   var count = 0;
   while(count < max_count){
      var rend_num = Math.ceil(Math.random()*to);
      var exists = false;
      for(key in arr_num)
      {
         if(arr_num[key] == rend_num)
         {
            exists = true;
            break;
         }
      }
      if(!exists)
      {
         arr_num[count] = rend_num;
         count++;
      }
   } 
   var new_arr_num = new Array();
   var count = 0;
   var key_save = null;
   while(count < max_count)
   {
      var min_num = arr_num[0];
      for(key in arr_num)
      {
         if(min_num >= arr_num[key])
         {
            min_num = arr_num[key];
            key_save = key;
         }
      }
      new_arr_num[count] = min_num;
      arr_num.splice(key_save, 1);
      count++;
   }
   return new_arr_num;
}
