function getPageHeight() {
    var windowHeight
    if (self.innerHeight) {	// all except Explorer
      windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
      windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
      windowHeight = document.body.clientHeight;
    }	
    return windowHeight
}

$(function() {
   if ($("#work_content").get(0)) resizePage();
   else {
      var height = getPageHeight();
      if (height > $("body").height()) {
         $("#copyright_cont").height($("#copyright_cont").height() + height - $("body").height());
      }
   }
  
   update_basket(); update_compare();
  
   $("a.repl_active").hover(
      function() {
         var img = $('img', this);
         if (img.attr('src'))
            img.attr('src', img.attr('src').replace(/(\.[^\.]+)$/, '1$1'))
         $(".items_number", this).css('color', '#FFFFFF');
      },
      function() {
         var img = $("img", this);
         if (img.attr('src'))
            img.attr('src', img.attr('src').replace(/\d+(\.[^\.]+)$/, '$1'))
         $(".items_number", this).css('color', '#333');
      }
   )
   
   $("a[rel=faceboximage]").facebox();
   
   $("#top_menu a").hover(
      function() {
         if (!$(this).hasClass('current') && !$(this).parent().hasClass('sub')) {
            var img = $('img', this);
            img.attr('src', img.attr('src').replace(/(\.[^\.]+)$/, '1$1'))
         }
      },
      function() {
         if (!$(this).hasClass('current')&& !$(this).parent().hasClass('sub')) {
            var img = $("img", this); 
            img.attr('src', img.attr('src').replace(/\d+(\.[^\.]+)$/, '$1'))
         }
      }
   );
   
   $(".items_list .item").hover(
      function() { $(this).addClass('hovered'); },
      function() { $(this).removeClass('hovered'); }
   );
   
   $(".pager_top td.back a").hover(
      function() {
         $("a", $(this).parent().get(0)).css('color', '#cf0615');
         $("a img", $(this).parent().get(0)).attr('src', '/image/layout/salon-left-active.gif');
      },
      function() {
         $("a", $(this).parent().get(0)).css('color', '#707070');
         $("a img", $(this).parent().get(0)).attr('src', '/image/layout/salon-left.gif');
      }
   )
   
   $(".pager_top td.forward a").hover(
      function() {
         $("a", $(this).parent().get(0)).css('color', '#cf0615');
         $("a img", $(this).parent().get(0)).attr('src', '/image/layout/salon-right-active.gif');
      },
      function() {
         $("a", $(this).parent().get(0)).css('color', '#707070');
         $("a img", $(this).parent().get(0)).attr('src', '/image/layout/salon-right.gif');
      }
   )
   
})

function delCookie() {
  var name = 'cname';
  var exp = new Date();
  exp.setTime(exp.getTime() - 1); // This cookie is history
  var cval = GetCookie(name);
  if (cval != null)
     document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}


function GetCookie(name) {
   var arg = name + "=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;
   while (i < clen) {
      var j = i + alen;
      if (document.cookie.substring(i, j) == arg)
         return getCookieVal(j);
      i = document.cookie.indexOf(" ", i) + 1;
      if (i == 0) 
         break;
   }
   return null;
}

function getCookieVal(offset) {
   var endstr = document.cookie.indexOf(";", offset);
   if (endstr == -1) endstr = document.cookie.length;
   return unescape(document.cookie.substring(offset, endstr));
}

function SetCookieForNHours(name, value, hours, path, domain, secure) {
   var today = new Date();
   var expires = new Date(today.getTime() + hours*60*60*1000);
   document.cookie = name + "=" + escape(value) +
       "; expires=" + expires.toGMTString() +
       ((path) ? "; path=" + path : "") +
       ((domain) ? "; domain=" + domain : "") +
       ((secure) ? "; secure" : "");
}

function resizePage() {
  var height = getPageHeight();
  /*if (height != $("body").height()) 
     $("#copyright_delimiter").height(20); */
  if (height > $("body").height()) {
     $("#copyright_delimiter").height(height - $("body").height() + 20);
  }
}

function add_to_basket(item, count, price) {
    var cookie = GetCookie('basket');
    var items = '';
    if (cookie)
       items = cookie.split('|');
    else
       items = new Array();
    var items_length = items.length;
    var parts = '';
    var id = '';
    var find = false;
    for (i = 0; i< items_length; i++) {
       parts = items[i].split('-');
       id = parts[0];
       if (id == item) {
          parts[1] = parseInt(parts[1]) + count;
          parts[2] = price;
          items[i] = parts.join('-');
          find = true;
       }
    }
    if (!find) {
       items.push ( item + '-' + count + '-' + price);
    }
    SetCookieForNHours('basket', items.join('|'), 2, '/');
    items = null;
    update_basket();
}

function set_count_in_basket( item, count, price) {
    var cookie = GetCookie('basket');
    var items = '';
    if (cookie)
       items = cookie.split('|');
    else
       items = new Array();
    var items_length = items.length;
    var parts = '';
    var id = '';
    var find = false;
    for (i = 0; i< items_length; i++) {
       parts = items[i].split('-');
       id = parts[0];
       if (id == item) {
          parts[1] = count;
          parts[2] = price;
          items[i] = parts.join('-');
          find = true;
       }
    }
    if (!find) {
       items.push ( item + '-' + count + '-' + price);
    }
    SetCookieForNHours('basket', items.join('|'), 2, '/');
    items = null;
    update_basket();
}

function remove_from_basket(item) {
    var cookie = GetCookie('basket');
    var items = '';
    if (cookie)
       items = cookie.split('|');
    else
       items = new Array();
    var items_length = items.length;
    var parts = '';
    var id = '';
    var find = false;
    for (i = 0; i< items_length; i++) {
       parts = items[i].split('-');
       id = parts[0];
       if (id == item) {
          items.splice(i,1);
          break;
       }
    }
    SetCookieForNHours('basket', items.join('|'), 2, '/');
    items = null;
    update_basket();
}

function get_basket_parms() {
   var cookie = GetCookie('basket');
   if (!cookie)
      return [0,0];
   items = cookie.split('|');
   var items_length = items.length;
   var parts = '';
   var id = '';
   var sum = 0;
   var count = 0;
   var price = '';
   var item_count = '';
   
   for (i = 0; i< items_length; i++) {
      price = '';
      item_count = '';   
      parts = items[i].split('-');
      
      item_count = parseInt(parts[1])
      price = parseInt(parts[2]);
      
      if (item_count > 0)
         count = count + item_count;
      
      
      if ((item_count >0)  && (price > 0) )
         sum = sum + price*item_count;
   }
   return [count,sum];
}

function update_basket() {
   var parms = get_basket_parms();
   if ((parms[0] < 1) && (parms[1] < 1)) {
      $("#basket .count").parent().addClass('hidden');
      return;
   }
   if (parms[0] > 0) {
      $("#basket .basket_count").text(parms[0] + ' шт');
      $("#basket .count").parent().removeClass('hidden');
   }
   if (parms[1] > 0) {
      $("#basket .basket_sum").html(number_format(parms[1],0,'.',' ') + ' <img src="/image/layout/i-ruble.gif" alt="">');
      $("#basket .count").parent().removeClass('hidden');
   }
}

function number_format(number, decimals, dec_point, thousands_sep){
  var exponent = "";
  var numberstr = number.toString ();
  var eindex = numberstr.indexOf ("e");
  var i, z;
  if(eindex > -1){
    exponent = numberstr.substring (eindex);
    number = parseFloat (numberstr.substring (0, eindex));
  }
  
  if(decimals != null){
    var temp = Math.pow (10, decimals);
    number = Math.round (number * temp) / temp;
  }
  var sign = number < 0 ? "-" : "";
  var integer = (number > 0 ? 
      Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
  
  var fractional = number.toString ().substring (integer.length + sign.length);
  dec_point = dec_point != null ? dec_point : ".";
  fractional = decimals != null && decimals > 0 || fractional.length > 1 ? (dec_point + fractional.substring (1)) : "";
  if(decimals != null && decimals > 0){
    for(i = fractional.length - 1, z = decimals; i < z; ++i)
      fractional += "0";
  }
  
  thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? 
                  thousands_sep : null;
  if(thousands_sep != null && thousands_sep != ""){
  for (i = integer.length - 3; i > 0; i -= 3)
   integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  }
  return sign + integer + fractional + exponent;
}

function add_to_compare(item, name) {
    var cookie = GetCookie('compare');
    var items = '';
    if (cookie)
       items = cookie.split('|');
    else
       items = new Array();
    var items_length = items.length;
    var find = false;
    var parms = ''
    for (i = 0; i< items_length; i++) {
       id = items[i].split('__')[0];
       if (id == item) {
          return;
       }
    }
    items.push(item + '__' + name);
    SetCookieForNHours('compare', items.join('|'), 2, '/');
    items = null;
}

function get_compare_count() {
    var cookie = GetCookie('compare');
    var items = '';
    if (!cookie)
       return 0;
    items = cookie.split('|');
    return items.length;
}

function remove_from_compare(item) {
    var cookie = GetCookie('compare');
    if (!cookie)
       return;
    items = cookie.split('|');
    var items_length = items.length;
    var id = '';
    for (var i = 0; i< items_length; i++) {
       id = items[i].split('__')[0];
       if (id == item) {
          items.splice(i,1);
          break;
       }
    }
    SetCookieForNHours('compare', items.join('|'), 2, '/');
    items = null;
}

function update_compare() {
   var length = get_compare_count();
   if (length > 0) {
      $("#compare_list").removeClass('hidden');
      var span = $("#compare_list .compare_items");
      span.empty();
      var cookie = GetCookie('compare');
      items = cookie.split('|');
      var items_length = items.length;
      var id = '';
      var parms = '';
      for (var i = 0; i< items_length; i++) {
         parms = items[i].split('__');
         id = parms[0];
         name = parms[1];
         if (i > 0)
            span.append(', ');
         span.append('<a href="/catalog/item'+id+'.htm">'+name+'</a> <a href="#" itemid="'+id+'"class="repl_active"><img src="/image/layout/i-del.gif" alt=""></a>');
      }
      $("#compare_list a.repl_active").hover(
         function() {
            var img = $('img', this);
            img.attr('src', img.attr('src').replace(/(\.[^\.]+)$/, '1$1'))
         },
         function() {
            var img = $("img", this); 
            img.attr('src', img.attr('src').replace(/\d+(\.[^\.]+)$/, '$1'))
         }
      ).click( function() {
         remove_from_compare($(this).attr('itemid'));
         $("a#compare_btn img").attr('src', '/image/layout/catalog/i-compare.gif');
         update_compare();
      })
      
      if (length > 1) {
         if (!$("#compare_list .compare_link a").get(0))
            $("#compare_list .compare_link").append('[ <a href="/catalog/compare/">Сравнить</a> ]');
         $("#compare_list .compare_link a").click(viewCompare);
      } else {
         $("#compare_list .compare_link").empty();
      }
   }
   else {
      $("#compare_list").addClass('hidden');
      $("#compare_list .compare_link").empty();
   }
}

function is_compared(item) {
    var cookie = GetCookie('compare');
    if (!cookie)
       return false;
    
    items = cookie.split('|');
    
    var items_length = items.length;
    var find = false;
    for (i = 0; i< items_length; i++) {
       if (items[i] == item) {
          return true;
       }
    }
    return false;
}

function viewCompare() {
   $.getJSON(
      '/catalog/compare/',
      {},
      function(data) {
         if (data.res == 'good') {
            $.facebox(data.html);
            $("#facebox .footer img").attr('src', '/image/jquery/facebox/big_close.gif');
            $("#facebox .body").addClass('white');
            $("#facebox .footer").show();
            if ($("#compare_cont").width() > 800)
               $("#compare_cont").width(800);
            $("#facebox [parms]").each(
               function() {
                  $(this).css('cursor', 'pointer');
                  $(this).click(
                     function() {
                        var parms = $(this).attr('parms').split('-'); 
                        add_to_basket(parms[0], 1, parms[1]);
                     }
                  )
               }
            );
            $("#facebox [del]").each(
               function() {
                  $(this).css('cursor', 'pointer');
                  $(this).click(
                     function() {
                        var id = $(this).attr('del');
                        remove_from_compare(id);
                        $(document).trigger('close.facebox');
                        $("a#compare_btn img").attr('src', '/image/layout/catalog/i-compare.gif');
                        update_compare();
                     }
                  )
               }
            )
         }
      }
   )
   return false;
}

window.onresize = resizePage;


