/**
 * @author <a href="http://media5.com">Media5</a> - <a href="mailto:banzalik@gmail.com">Бойченко Александр</a>
 * @description скрипты для m5 css framework
 */
 
 /**
 * @description полная загрузка страницы, картинки при этом уже загрузились
 */
window.onload=documentLoaded; // присваиваем функцию documentLoaded

/**
 * @description вызов функций при полной загрузке страницы, картинки при этом уже загрузились
 */
function documentLoaded(){
	
}


/**
 * @description вызов функций при полной загрузке DOM дерева, картинки при этом еще не загрузились
 */
$(document).ready(function(){
			m5formsWidthNormalize();		
			$('#multi-ddm').dropDownMenu({timer: 1000, parentMO: 'parent-hover', childMO: 'child-hover1'});
})

/**
 * @description выравнивание input[type=text], input[type=password], textarea
 */
function m5formsWidthNormalize(){
	if ($.browser.msie && $.browser.version<7) {	
		$("select.m5formsNormalize").each(function(i){
			var m5formnormalizepadding=Math.ceil(Number(String($(this).css("padding-left")).slice(0,-2)))+Math.ceil(Number(String($(this).css("padding-right")).slice(0,-2)));
			var m5formnormalizeborder= Math.ceil(Number(String($(this).css("border-left-width")).slice(0,-2)))+Math.ceil(Number(String($(this).css("border-right-width")).slice(0,-2)));
			var m5formnormalizewidth=Math.ceil(Number($(this).width()))+m5formnormalizepadding+m5formnormalizeborder*2;
			$(this).width(m5formnormalizewidth);
		})			
	} else {		
		$("input[type=text].m5formsNormalize, input[type=password].m5formsNormalize, textarea.m5formsNormalize").each(function(i){				
			var m5formnormalizepadding=Math.ceil(Number(String($(this).css("padding-left")).slice(0,-2)))+Math.ceil(Number(String($(this).css("padding-right")).slice(0,-2)));
			var m5formnormalizewidth=Math.ceil(Number($(this).width()))-m5formnormalizepadding;			
			$(this).width(m5formnormalizewidth);
			})
		$("select.m5formsNormalize").each(function(i){				
			var m5formnormalizepadding=Math.ceil(Number(String($(this).css("padding-left")).slice(0,-2)))+Math.ceil(Number(String($(this).css("padding-right")).slice(0,-2)));
			var m5formnormalizeborder= Math.ceil(Number(String($(this).css("border-left-width")).slice(0,-2)))+Math.ceil(Number(String($(this).css("border-right-width")).slice(0,-2)));
			if ($.browser.msie && $.browser.version<8){
				var m5formnormalizewidth=Math.ceil(Number($(this).width()))+m5formnormalizepadding+m5formnormalizeborder*2;
			} else {
				var m5formnormalizewidth=Math.ceil(Number($(this).width()))+m5formnormalizepadding+m5formnormalizeborder;
			}
			$(this).width(m5formnormalizewidth);
		})		
	}
}

/*INPUT*/
function init(){
	var inp = document.getElementsByTagName('input');
	for(var i = 0; i < inp.length; i++) {
		if(inp[i].type == 'text') {
			inp[i].setAttribute('rel',inp[i].defaultValue)
			inp[i].onfocus = function() {
				if(this.value == this.getAttribute('rel')) {
					this.value = '';
				} else {
					return false;
				}
			}
			inp[i].onblur = function() {
				if(this.value == '') {
					this.value = this.getAttribute('rel');
				} else {
					return false;
				}
			}
			inp[i].ondblclick = function() {
				this.value = this.getAttribute('rel')
			}
		}
	}
}
if(document.childNodes) {
	window.onload = init
}

/*
* Multi-level Drop Down Menu 3.0
* April 17, 2010
* Corey Hart @ http://www.codenothing.com
*/
(function( $, window, undefined ){
// Needed for IE Compatibility (Closing menus must be done backwards in IE)
// Ensure that no complications arise from other libraries modifying the
// array functionality (and hope that they store the old reverse function into _reverse)
var el, a = Array.prototype, Reverse = a._reverse || a.reverse;
// bgiframe is needed to fix z-index problem for IE6 users.
// For applications that don't have bgiframe plugin installed, create a useless
// function that doesn't break the chain
function emptyfn(){
return this;
}
// Cache common event functions so they aren't instantiated with each event
function clearSiblings(){
$( el = this ).children('a').removeClass( $.data( el.parentNode , 'multi-ddm-classname' ) );
}
function oldMenus(){
$( el = this ).hide().siblings('a').removeClass( $.data( el.parentNode.parentNode , 'multi-ddm-classname' ) );
}
// Expose the drop down menu
$.fn.dropDownMenu = function( options ) {
return this.each(function(){
// Defaults with metadata support
var $main = $(this), i = 0, $menu, timeout,
settings = $.extend({
timer: 500,
parentMO: undefined,
childMO: undefined,
bgiframe: undefined,
levels: []
}, options || {}, $.metadata ? $main.metadata() : {}),
// Check on every initiation, so bgiframe can be loaded after this plugin
bgiframe = $.fn.bgiframe || $.fn.bgIframe || emptyfn;
// Loop through each level, attach the bgiframe and store it's classname
$menu = $main.data( 'multi-ddm-classname', settings.levels[ 0 ] || settings.parentMO || settings.childMO || '' );
while ( $menu.length > 0 ) {
$menu = bgiframe.call(
$menu.find('> li > ul').data( 'multi-ddm-classname', settings.levels[ ++i ] || settings.childMO || '' ),
settings.bgiframe
);
}
// Use event delegation to track mouse movement across the menu
$main.delegate( 'li', 'mouseenter.multi-ddm', function(){
var self = $( el = this );
if ( timeout ) {
clearTimeout( timeout );
}
// Close old menus and remove hover of non-menus
Reverse.call( self.siblings('li').find('ul:visible') ).each( oldMenus ).end().each( clearSiblings );
// Open new menu and remove any lingering hover elements
self.children('a').addClass( $.data( el.parentNode, 'multi-ddm-classname' ) ).siblings('ul').show()
.children('li').each( clearSiblings );
})
.bind( 'mouseleave.multi-ddm', function(){
timeout = setTimeout( closemenu, settings.timer );
});
// Closes all open menus
function closemenu(){
// Clear mouseovers
$main.find('li').each( clearSiblings );
// Close Menus backwards for IE Compatibility
Reverse.call( $main.find('ul:visible') ).hide();
if ( timeout ) {
clearTimeout( timeout );
}
}
// Allows user option to close menus by clicking outside the menu on the body
$( window.document ).bind( 'click.multi-ddm', closemenu );
});
};
})( jQuery, window || this ); 

function getURLVar(urlVarName) {
  var urlHalves = String(document.location).toLowerCase().split('?');
  var urlVarValue = '';
  
  if (urlHalves[1]) {
    var urlVars = urlHalves[1].split('&');

    for (var i = 0; i <= (urlVars.length); i++) {
      if (urlVars[i]) {
        var urlVarPair = urlVars[i].split('=');
	
        if (urlVarPair[0] && urlVarPair[0] == urlVarName.toLowerCase()) {
          urlVarValue = urlVarPair[1];
        }
      }
    }
  }
  
  return urlVarValue;
}


function moduleSearch() {	
  // var pathArray = location.pathname.split( '/' );
 /* 
  var url = '/';// window.location.href
  url += 'index.php?route=product/search';
  
  var filter_keyword = $('#filter_keyword').attr('value')
  if (filter_keyword) {
    url += '&keyword=' + encodeURIComponent(filter_keyword);
  }
  
  var filter_category_id = $('#filter_category_id').attr('value');
  if (filter_category_id) {
    url += '&category_id=' + filter_category_id;
  }
  
  window.location = url;*/
}


$(function() {
  var curr_link = window.location.href.toLowerCase().replace(/[\/]+$/, '');
  $('a').each(function(){ // find current link
    if(this.href.split('#')[0].toLowerCase().replace(/[\/]+$/, '') == curr_link){
      $(this).addClass('current');
    }
  });
  
/*  $('#search input').keydown(function(e) {
    if (e.keyCode == 13) {
      moduleSearch();
    }
  });*/

  $('.switcher').bind('click', function() {
    $(this).find('.option').slideToggle('fast');
  });
  $('.switcher').bind('mouseleave', function() {
    $(this).find('.option').slideUp('fast');
  });
  
  $('.thickbox').fancybox({hideOnContentClick:true,centerOnScroll:true,scrolling:'no',titlePosition:'over',width:1000,padding:20,margin:0,changeFade:0,changeSpeed:0,easingIn:false,easingOut:false,autoScale:true,scrolling:'no',autoDimensions:false,speedIn:0, speedOut:0,transitionIn:'none', transitionOut:'none'});

  $('#fancybox-left-ico').click(function(){
    var left = $('#fancybox-wrap').css("left")+10;
    $('#fancybox-wrap #fancybox-close').css('left',left);
  });
  
  $('#fancybox-right-ico').click(function(){
    var left = $('#fancybox-wrap').css("left")+10;
    $('#fancybox-wrap #fancybox-close').css('left',left);
  });
  
  $('.thickbox').click(function(){
    var left = $('#fancybox-wrap').css("left")+10;
    $('#fancybox-wrap #fancybox-close').css('left',left);
  });
  
/*
  var main_h = $('#main').height();
//  var document_h = $(document).height();
//  console.log(window_h);
  var delta = $(window).height() - $('#header').height() - $('#foot').height() - main_h;
  if (delta > 0 ) {
    $('#content').css('min-height',main_h + delta);
  }*/
  
  $('#cats_list').hover(
    function(){
      var $this = $(this);
      $this.addClass('open');
      $('#parent_id_0').show();
    },
    function(){
      var $this = $(this);
      $this.removeClass('open');
      $('#parent_id_0').hide();
    }
  );
});

jQuery(document).ready(function($){
  
  // @description Фикс кнопок в Оформлении заказа
  function fix_buttons_step_confirm(){
    $("#payment div.buttons table").css("margin-top","40px");
    var $buttons = $("#payment div.buttons table tr td a.button");
    $("#payment div.buttons table").css("width","350px").css("border","0px none").css("margin-left","-50px");
    $("#payment div.buttons table tr td").css("border","0px none").css("padding","0px");
    
    //$buttons.each(function(){
    //  var $button = $(this);
    //  var old_value = $button.html();
    //  var new_value = "<div><div>"+old_value+"</div></div>";
    //  $button.html(new_value).css("cursor","pointer");
    //});
  };
  fix_buttons_step_confirm();
  
  // @description Фикс всех кнопок
  function fix_buttons(){
    var $buttons = $("a.button");
    var ipage = $("#content");
    $buttons.each(function(){
      var $button = $(this);
      var old_value = $button.html();
      var new_value = "<div><div>"+old_value+"</div></div>";
      $button.html(new_value).css("cursor","pointer");
    });
    if(ipage.hasClass("page_success")){
      $buttons.css("margin-left","45px");
    }
  };
  fix_buttons();
  
  // @description Фикс поля для ввода коментария
  function comment_textarea_fix(){
     $("#fix-text textarea").css({
       "width":"100%"
     });
  };
  comment_textarea_fix();
  
  // @description Фикс выпадающего меню
  function fix_ddm(){
    var menu = $("#multi-ddm > li");
    menu.find("ul li").each(function(){
      var submenu = $(this).find("ul li");
      if(submenu.find("ul li")){
	submenu.parent().parent().addClass("hasSubmenu");
      }
    });
  };
  fix_ddm();
  
});

  // @description Фикс последнего елемента автокомплита
/*  function fix_last_autocomplete_item(){
     var autocomplete_box = $("div.ac_results");
     var total = autocomplete_box.find("ul li").length-1;
     var last_item = autocomplete_box.find("ul li").eq(total);
     last_item.addClass("last");
  };*/

