/*
*
*	author:		Roman Muntyanu
*	project:	MAXIMUM
*	company:	Webart Pro Studio
*	e-mail:		roman.muntyanu@webartstudio.md
*
*/


jQuery(function(){

	// -------------------------- disable text select
	jQuery.extend(jQuery.fn.disableTextSelect = function() {
		return this.each(function(){
			if(jQuery.browser.mozilla){
				jQuery(this).css('MozUserSelect','none');
			}else if($.browser.msie){
				jQuery(this).bind('selectstart',function(){return false;});
			}else{
				jQuery(this).mousedown(function(){return false;});
			}
		});
	});
	
	// jQuery('#products_container').disableTextSelect();
	
	
	// -------------------------- maximum main navigation
	var stickyArg = true;
	
	jQuery('.kwicks').kwicks({
		// max : 260,
		min : 95,
		spacing : 0,
		defaultKwick: 4,
		sticky: stickyArg,
		duration: 400
	});
	
	var subLevelLength = jQuery('.level-wrapper > div').length;
	
	
	// counts sub item heights
	var subItemHeights = new Array(subLevelLength);
	for( i = 0; i < subItemHeights.length; i++){
		subItemHeights[i] = new Array(subLevelLength);
	}
	
	// length of sub items in each sublevel
	var siLengthArr = [];
	
	jQuery('.sublevel-block').each(function(i){
		var sublevel_block_obj = jQuery(this);
		
		siLengthArr[i] = sublevel_block_obj.find('div').filter('.sub-item').length;
		
		sublevel_block_obj.find('div').filter('.sub-item').each(function(j){
			subItemHeights[i][j] = jQuery(this).height();
		});
	});
	
	var edgeIndexes = [];
	
	for( k = 0; k < subLevelLength; k++ ){
		var curTotalHeight = 0;
	
		for( n = 0; n < siLengthArr[k]; n++ ){
			curTotalHeight += subItemHeights[k][n];
		}
		var edgeHeight = Math.floor(curTotalHeight/2);
		
		var curSumHeight = 0;
		for( n = 0; n < siLengthArr[k]; n++ ){
			curSumHeight += subItemHeights[k][n];
			if( curSumHeight > edgeHeight ){
				edgeIndexes[k] = n;
				break;
			}
		}
	}
	
	jQuery('.sublevel-block').each(function(m){
		var csiArr = jQuery(this).find('div').filter('.sub-item');
		for( j = 0; j <= edgeIndexes[m]; j++ ){
			jQuery(csiArr[j]).addClass('si-one');
		}
		for( j = edgeIndexes[m] + 1; j < siLengthArr[m]; j++ ){
			jQuery(csiArr[j]).addClass('si-two');
		}
		
		jQuery('.si-one').wrapAll('<div class="sub-column" />');
		jQuery('.si-two').wrapAll('<div class="sub-column sc-last" />');
		
		jQuery('.si-one').removeClass('si-one');
		jQuery('.si-two').removeClass('si-two');
		
	});
	
	jQuery('.sub-column').each(function(){
		jQuery(this).find('div.sub-item:first').addClass('si-first');
	});
	
	var subLevelHeights = [];
	jQuery('.sublevel-block').each(function(i){
		subLevelHeights[i] = jQuery(this).height();
	});
	
	
	
	
	jQuery('.level-wrapper > div').height('0px').width('260px').css({ visibility: 'visible' }).hide(); // 260px  221px
	// jQuery('.sub-item').hide();
	// jQuery('.sub-column').hide();    ------------- changed
	
	/*
	var menuLeftPos = jQuery('.menu-list').offset().left;
	jQuery(window).resize(function() {
		menuLeftPos = jQuery('.menu-list').offset().left;
	});
	*/
	
	jQuery('.cat-link').hide();
	var miClickFlag = true;
	
	jQuery('.menu-item').bind('click', function(){
		if( miClickFlag && !jQuery(this).hasClass('mi-active') ){
			
			miClickFlag = false;
			var mObj = jQuery(this);
			var mInd = jQuery('.menu-item').index(this);

			var subArr = jQuery('.level-wrapper > div');

			var mClass = jQuery(subArr[mInd]).attr('id');
			jQuery('.menu-item').removeClass().addClass('menu-item');
			mObj.addClass(mClass).addClass('mi-active');

			jQuery('.bg-none').removeClass('bg-none');
			mObj.prev().addClass('bg-none');

			var mPos = mObj.position();
			var leftPos = Math.floor(mPos.left); // + menuLeftPos

			subArr.each(function(){
				jQuery(this).hide();
			});
			
			jQuery('.level-wrapper > div').height('0').width('221px').children().hide(); // 260px
			
			jQuery('.cat-link:visible').height('0px').hide();
			mObj.find('span').filter('.cat-link').animate({ height: '80px' }, 400, function(){
				jQuery(subArr[mInd]).css({ left: leftPos + 'px' }).addClass('intermediate').animate({ height: subLevelHeights[mInd] }, 400, continueAnimation); // height: '450px'
			});
		}
	});
	
	function continueAnimation(){
		var subLevObj = jQuery('.level-wrapper > div:visible');
		var cPos = jQuery('.level-wrapper > div').index(subLevObj);
	
		var mPos = subLevObj.position();
		var leftPos = Math.floor(mPos.left) - 150; // 160   135
		
		if( cPos == 0 ){
			subLevObj.animate({ width: '532px' }, 400, showChildren);
		}else if( cPos == subLevelLength - 1 ){
			subLevObj.animate({ left: leftPos - 158, width: '532px'  }, 400, showChildren); //  520px  135
		}else{
			subLevObj.animate({ width: '532px', left: leftPos }, 400, showChildren);
		}
	}
	
	function showChildren(){
		jQuery('.sublevel-list').hide();
		jQuery('.level-wrapper > div:visible').children().show(); // .fadeIn(1500);
		jQuery('.intermediate').removeClass('intermediate');
		
		miClickFlag = true;
	}
	
	jQuery('.close-button').bind('click', function(){
		if( miClickFlag ){
			miClickFlag = false;
			var cbObj = jQuery(this);
			
			jQuery('.bg-none').removeClass('bg-none');
			jQuery('.cat-link:visible').fadeOut(400).height('0px');
			jQuery('.level-wrapper > div:visible').fadeOut(400, function(){
				jQuery(this).children().hide();
				cbObj.parent().parent().removeClass().addClass('menu-item');
				miClickFlag = true;
			});
		}
	});
	
	/*  */
	jQuery('body').bind('click', function(event){
		if( !jQuery(event.target).hasClass('cat-link')
		        && !jQuery(event.target).hasClass('menu-item')
				&& !jQuery(event.target).hasClass('sb-middle') 
				&& !jQuery(event.target).hasClass('sub-column') 
				&& !jQuery(event.target).hasClass('sub-item') 
				&& !jQuery(event.target).hasClass('subcat-img') 
				&& !jQuery(event.target).hasClass('link-row') 
				&& !jQuery(event.target).hasClass('level-brands') 
				&& !jQuery(event.target).hasClass('cat-inner') ){
		
			jQuery('.bg-none').removeClass('bg-none');
			jQuery('.cat-link:visible').fadeOut(400).height('0px');
			jQuery('.level-wrapper > div:visible').fadeOut(400, function(){
				jQuery(this).children().hide();
				jQuery('.mi-active').removeClass().addClass('menu-item');
			});
		}else{
			 return -1; 
		}
	});
	
	/*
	jQuery('.header-container, .breadcrumbs-container, .main-container').bind('click', function(){ // .wrapper
		$('.bg-none').removeClass('bg-none');
		jQuery('.cat-link:visible').fadeOut(400).height('0px');
		jQuery('.level-wrapper > div:visible').fadeOut(400, function(){
			jQuery(this).children().hide();
			jQuery('.mi-active').removeClass().addClass('menu-item');
		});
	});
	*/
    
    // reset cookies of vertical menu
    jQuery('.navigation a, .level-wrapper a, .b-crumbs a').bind('click', function(){
        setCookie('mvmSubLink', '');
    });
	// -------------------------- ## maximum main navigation
	
	
	// -------------------------- maximum vertical menu
			
	// gets previous widened indexes from cookies
	var savedWidenedStr = getCookie('cookieWidened');
	if( savedWidenedStr != null ){

		jQuery('.widened').removeClass('widened');
		jQuery('.mvm-sub-list').hide();
		
		var wIndArr = [];
		if( savedWidenedStr.indexOf('|') != -1 ){
			wIndArr = savedWidenedStr.split('|');
			
			if( wIndArr.length > 0 ){
				for( i = 0; i < wIndArr.length - 1; i++ ){
					var cwInd = parseInt(wIndArr[i], 10);
					jQuery(jQuery('.mvm-link')[cwInd]).addClass('widened').next().slideDown();
				}
			}
			
			var mvmItemsLength = jQuery('.mvm-link').length;
			if( (wIndArr.length - 1) == mvmItemsLength){
				jQuery('#expand_link').addClass('expand-disabled');
			}
		}
		
		if( wIndArr.length == 0){
			jQuery('#collapse_link').addClass('collapse-disabled');
		}
		
	}else{
		jQuery('.mvm-sub-list').hide();
		jQuery('.mvm-link:first').addClass('widened').next().show();
		jQuery('.mvm-link').eq(1).addClass('widened').next().show();
	}

	// sets previously selected sub link
	var savedMvmSubLink = getCookie('mvmSubLink');
	if( savedMvmSubLink != null ){
		var mvmSlInd = parseInt(savedMvmSubLink, 10);
		jQuery(jQuery('.mvm-sub-link')[mvmSlInd]).addClass('selected');
	}
    

	var slideAnimTime = 400;
	
	// actions on link click 
	jQuery('.mvm-link').bind('click', function(){
		var mvmLink = jQuery(this);
		if( !mvmLink.hasClass('widened') ){
			// jQuery('.widened').removeClass('widened');
			mvmLink.addClass('widened');
			// jQuery('.mvm-sub-list:visible').slideUp();
			mvmLink.next().slideDown(slideAnimTime, saveWidenedInCookie);
		}else{
			mvmLink.removeClass('widened');
			mvmLink.next().slideUp(slideAnimTime, saveWidenedInCookie);
		}
		
		var widenedLength = jQuery('.widened').length;
		var collapsedLength = jQuery('.mvm-link:not(.widened)').length;
		
		if( widenedLength == 0 && !jQuery('#collapse_link').hasClass('collapse-disabled') ){
			jQuery('#collapse_link').addClass('collapse-disabled');
			jQuery('.expand-disabled').removeClass('expand-disabled');
		}else if( widenedLength != 0 && jQuery('#collapse_link').hasClass('collapse-disabled') ){
			jQuery('#collapse_link').removeClass('collapse-disabled');
		}
		
		if( collapsedLength == 0 && !jQuery('#expand_link').hasClass('expand-disabled') ){
			jQuery('#expand_link').addClass('expand-disabled');
			jQuery('.collapse-disabled').removeClass('collapse-disabled');
		}else if( collapsedLength != 0 && jQuery('#expand_link').hasClass('expand-disabled') ){
			jQuery('#expand_link').removeClass('expand-disabled');
		}
		
		return false;
	});

	function saveWidenedInCookie(){
		var wIndStr = '';
		var wLen = jQuery('.widened').length;
		if( wLen > 0 ){
			jQuery('.widened').each(function(){
				var wInd = jQuery('.mvm-link').index(this);
				wIndStr += wInd + '|';
			});
		}
		setCookie('cookieWidened', wIndStr);
		
		// console.log(wIndStr);
	}

	jQuery('.mvm-sub-link').bind('click', function(){
		if( !jQuery(this).hasClass('selected') ){
			jQuery('.selected').removeClass('selected');
			jQuery(this).addClass('selected');
			
			var slInd = jQuery('.mvm-sub-link').index(this);
			setCookie('mvmSubLink', slInd);
		}
		
	});

	jQuery('#collapse_link').bind('click', function(){
		var collapseLink = jQuery(this);
		
		if( !collapseLink.hasClass('collapse-disabled') ){
			jQuery('.widened').each(function(){
				var cur_widened = jQuery(this);
				
				if( cur_widened.is(':last') ){
					cur_widened.removeClass('widened').next().slideUp(slideAnimTime, saveWidenedInCookie);
				}else{
					cur_widened.removeClass('widened').next().slideUp(slideAnimTime);
				}
			});
			jQuery(this).addClass('collapse-disabled');
			jQuery('.expand-disabled').removeClass('expand-disabled');
		}
	});
	
	jQuery('#expand_link').bind('click', function(){
		var expandLink = jQuery(this);
		
		if( !expandLink.hasClass('expand-disabled') ){
			jQuery('.mvm-link:not(.widened)').each(function(){
				var cur_collapsed = jQuery(this);
				if( cur_collapsed.is(':last') ){
					cur_collapsed.addClass('widened').next().slideDown(slideAnimTime, saveWidenedInCookie);
				}else{
					cur_collapsed.addClass('widened').next().slideDown(slideAnimTime);
				}
			});
			jQuery(this).addClass('expand-disabled');
			jQuery('.collapse-disabled').removeClass('collapse-disabled');
		}
	});
	
	// -------------------------- ## maximum vertical menu
	
	
	// -------------------------- store addresses navigation
	jQuery('#selected_city').bind('change', function(){
		/*
		var cityLink = jQuery(this).find('option:selected').val();
		jQuery('#city_form').attr('action', cityLink);
		*/
		jQuery('#city_submit').click();
	});
	
	// -------------------------- ## store addresses navigation
	
	
	
	
	
	// -------------------------- proposals on main
	/*
	jQuery('#proposals_list').jcarousel({
		 vertical : true, visible : 1, scroll: 1, buttonNextHTML: "<div>&nbsp;</div>", buttonPrevHTML: "<div>&nbsp;</div>"
	});
	*/
	var propListExists = jQuery('#proposals_list').length;
	
	if( propListExists != 0 ){
		jQuery('#proposals_list').cycle({
			fx:     'uncover',	// blindX
			timeout: 0, // 10000
			speed: 1500,
			next:   '#pw_prev',
			prev:   '#pw_next'
		});
	}
	
	// proposal-headname
	var imgSrcArr = [];
	var phLength = jQuery('.proposal-headname').length;
	
	/*
	jQuery('.proposal-headname').bind('click', function(){
		var phInd = jQuery('.proposal-headname').index(this);
		
		jQuery('.proposal-headname img').each(function(i){
			imgSrcArr[i] = jQuery(this).attr('src');
		});
		
		jQuery(document.body).prepend('<div class="dolly-wrapper" />'); // .cms-home
		jQuery('.dolly-wrapper').append('<div class="dolly-layer" />').append('<div class="dolly-content" />');
		
		jQuery('.dolly-content').append('<div class="dolly-list cfx" />').append('<div class="dolly-image-wrapper" />').append('<span class="dolly-close"></span>');
		
		for( i = 0; i < imgSrcArr.length; i++ ){
			jQuery('.dolly-list').append('<a href="' + imgSrcArr[i] + '" title="" class="dolly-item"><img src="' + imgSrcArr[i] + '" alt="" class="di-image" /></a>');
		}
		
		jQuery('.dolly-image-wrapper').append('<img src="' + imgSrcArr[phInd] + '" alt="" class="dolly-image" />');
		jQuery(jQuery('.dolly-item')[phInd]).addClass('active');
		
		var cmsWidth = jQuery(document.body).width();  // .cms-home
		var dcWidth = jQuery('.dolly-content').width();
		var dcLeftPos = Math.floor( (cmsWidth - dcWidth)/2 );
		
		jQuery('.dolly-content').css({ left: dcLeftPos + 'px', top: '0px' });
		
		// --------
		var dc_height = jQuery('.dolly-list').height() + 50;
		var w_height = jQuery(window).height();
		var diw_height = w_height - dc_height;
		jQuery('.dolly-image-wrapper').height(diw_height + 'px');
		
		activateLayerControls();
		
		return false;
	});
	
	function activateLayerControls(){
	
		jQuery('.dolly-item').bind('click', function(){
			var diObj = jQuery(this);
			
			if( !diObj.hasClass('active') ){
				var diPath = diObj.attr('href');
				
				jQuery('.dolly-list').find('a.active').removeClass('active');
				diObj.addClass('active');
				
				jQuery('.dolly-image').fadeOut(500, function(){
					jQuery(this).attr('src', diPath).fadeIn(1000);
				});
			}
			return false;
		});
		
		jQuery('.dolly-close, .dolly-layer').bind('click', function(){
			jQuery('.dolly-wrapper').remove();
		});	
	}
	*/
	
	/*
	jQuery('#month_prop').bind('click', function(){
		jQuery('.proposal-headname:visible').click();
		return false;
	});
	*/
	
	// -------------------------- ## proposals on main
	
	
	// -------------------------- month proposals
	if(jQuery('#pmp_list').length > 0){
		var p_st_slide = jQuery('input[name=proposals_start_slide]').val() - 1;
	
		jQuery('#pmp_list').cycle({
			fx:     'fade',
			speed:  'fast',
			startingSlide:  p_st_slide,
			timeout: 0,
			speed: 500,
			pager: '.pmp-pager'
		});
	}
	// -------------------------- ## month proposals
	
	// -------------------------- certificates and partners
	jQuery('#ce_pa_gallery').cycle({ 
		fx:     'scrollVert', 
		speed:  500, 
		timeout: 10000,
		// next: '.ce-pa-small',
		easing: 'easeOutBack' // easeOutBack	easeOutBounce
	});
	// --------------------------  ## certificates and partners
	
	
	// -------------------------- blocks with horizontal carousel 
	
	// most-viewed-item
	var mvLength = jQuery('.most-viewed-item').length;
	var mvVisible = 3;
	
	if( mvLength < 3 ){
		mvVisible = mvLength;
	}
	
	if( jQuery('.most-viewed-list').length > 0 ){
		jQuery('.most-viewed-list').jcarousel({
			 visible : mvVisible, scroll: 1, buttonNextHTML: "<div></div>", buttonPrevHTML: "<div></div>"
		}); // &nbsp;
	}
	
	// new-product-item
	var npLength = jQuery('.new-product-item').length;
	var npVisible = 3;
	
	if( npLength < 3 ){
		npVisible = npLength;
	}
	
	if( jQuery('.new-product-list').length > 0 ){
		jQuery('.new-product-list').jcarousel({
			 visible : npVisible, scroll: 1, buttonNextHTML: "<div></div>", buttonPrevHTML: "<div></div>"
		});
	}
	
	// -------------------------- ## blocks with horizontal carousel 
	
	
	// -------------------------- company news on main
	var companyNewsExists = jQuery('#company_news').length;
	
	if( companyNewsExists != 0 ){
		jQuery('#company_news').cycle({ 
			fx: 'custom', // custom scrollHorz
			sync: 0, 
			cssBefore: {  
				top:  0, 
				left: 580,
				display: 'block',
				width: 580
			},
			animIn:  { 
				left: 0,
				top: 0
			}, 
			animOut: {  
				top: 30
			},
			before : function(curr, next, opts, fwd){
				// opts.cssBefore.left = fwd ? (next.cycleW - 1) : (1 - next.cycleW);
				//opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
				
				opts.cssBefore.left = fwd ? -580 : 580;
				// opts.animOut.left = fwd ? -580 : 580;
			},
			delay: -2000,
			timeout: 10000,
			speed: 2000,
			next:   '#nom_prev', 
			prev:   '#nom_next'
		});
	}
	// -------------------------- ## company news on main
	
	
	// -------------------------- recently viewed products
	/*
	$('#recently_viewed').cycle({
		fx:     'scrollDown', // fade
		speed:  'fast',
		timeout: 0,
		speed: 500,
		next:   '#rv_prev',
		prev:   '#rv_next'
	});
	*/
	
	
	
	// -------------------------- ## recently viewed products
	
	
	// -------------------------- maximum cart
	// cart transfer effect
	jQuery(".cart-block").bind('click', function () {
		if( !jQuery(this).hasClass('activated') ){
			// var i = 1 - jQuery(".cart-block").index(this);
			if( jQuery(this).hasClass('close-red') ){
				jQuery(this).parent().effect("transfer",{ to: jQuery(".cart-link") }, 800, function(){ jQuery('.cart-link').toggleClass('activated'); }); // toggleCart
				jQuery('.cart-cart').toggleClass('cart-invisible');
			}else{
				jQuery(this).effect("transfer",{ to: jQuery(".cart-cart") }, 800, toggleCart); // jQuery(".cart-block").eq(i)
			}
		}
		
		return false;
	});

	function toggleCart(){
		jQuery('.cart-link').toggleClass('activated');
		jQuery('.cart-cart').toggleClass('cart-invisible');
	}
	
	
	// var winPrevPos;
	var cartMoveFlag = true;
	
	jQuery(window).scroll(function(){
		if( cartMoveFlag ){
			cartMoveFlag = false;
			setTimeout(function(){
				var sTop = jQuery(window).scrollTop();
				var vertPos = sTop + 20; // 220
				vertPos += 'px';
				jQuery('#vert_offset').text(vertPos);
				jQuery('.cart-cart').animate({ top: vertPos }, 400, function(){ cartMoveFlag = true; });
			}, 800);
		}
	});
	
	// -------------------------- ## maximum cart
	
	
	// -------------------------- recently viewed and poll switcher
	var rvbLength = jQuery('.recently-viewed-block').length;
	
	if( rvbLength != 0 ){
		
		jQuery('.rp-item:first').removeClass('hidden');
		
		/*
		jQuery('#rp_list').cycle({
			fx:     'curtainY',		// blindZ
			timeout: 0,
			speed: 500,
			next:   '.rp-change'
		});
		*/
		var rvLength = jQuery('.rv-item').length;
		var rvVisible = 3;
		
		if( rvLength < 3 ){
			rvVisible = rvLength;
		}
		
		if(jQuery('#recently_viewed').length > 0){
			jQuery('#recently_viewed').jcarousel({
				 vertical : true, visible : rvVisible, scroll: 1, buttonNextHTML: "<div></div>", buttonPrevHTML: "<div></div>"
			});
		}
	}
	
	// -------------------------- ## recently viewed and poll switcher
	
	
	// -------------------------- search mini form
	// var exampleText = jQuery('#suggest_textfield').val();
	var exampleText = 'Например: телевизор LED';
	var warningText = 'Введите текст';
	
	jQuery('#search_mini_form').submit(function(){
		var iText = jQuery('#suggest_textfield').val();
		if( iText == '' ){
           return false;
        }
	});
	
	var search_locale = { "ro" : "Exemplu: Televizor LED", "ru" : "Например: телевизор LED" }
	var cur_lang = $('#search_store').val();
	if(cur_lang){
		cur_lang = cur_lang.toLowerCase();
	}

	$('#suggest_textfield').focus(function(){
		var search_input = $(this);
		var si_text = search_input.val();

		if(si_text == search_locale[cur_lang]){
			search_input.val('');
		}
	});

	$('#suggest_textfield').blur(function(){
		var search_input = $(this);
		var si_text = search_input.val();

		if(si_text == ''){
			search_input.val(search_locale[cur_lang]);
		}
	});
	/*
	jQuery('#search_mini_form').submit(function(){
        var iText = jQuery('#suggest_textfield').val();

        if( (iText == '') || (iText == exampleText) ){
           jQuery('.input-text').addClass('carrot-red').val(warningText);
        }

        if( (iText == '') || (iText == exampleText) || (iText == warningText) ){
           return false;
        }
    });

    jQuery('.input-text').focus(function(){
        var stObj = jQuery(this);
        var stObjText = stObj.val();

        if(stObj.hasClass('carrot-red')){
            stObj.removeClass('carrot-red');
        }

        if( (stObjText == exampleText) || (stObjText == warningText) ){
            stObj.val('');
        }
    });

    jQuery('.input-text').blur(function(){
        var sObj = jQuery(this);
        var sObjText = sObj.val();        

        if(sObjText == ''){
            sObj.val(exampleText);
        }
    });
	
	$('body').bind('click', function(event){
            if( !$(event.target).hasClass('input-text') && !$(event.target).hasClass('button') ){
                var remText = jQuery('#suggest_textfield').val();
                if( remText == warningText ){
					jQuery('.input-text').removeClass('carrot-red').val(exampleText);
				}
            }else{
                 return -1; 
            }
        });
	*/
	// -------------------------- ## search mini form
	
	
	
	// -------------------------- authorization mini form
	jQuery('.links-item a[href*=login]').bind('click', function(event){
		event.preventDefault();
		jQuery('#max_login_form').removeClass('hidden').css({ position: 'absolute', zIndex: '1000' });
	});
	
	jQuery('.max-login-close').bind('click', function(){
		jQuery('#max_login_form').addClass('hidden');
	});
	// -------------------------- ## authorization mini form
	
	
	// -------------------------- register popup
	jQuery('.links a:first').bind('click', function(event){
		var secLinkHref = jQuery('.links a').eq('1').attr('href');
		if(secLinkHref.indexOf('login') != -1){
			event.preventDefault();
			jQuery('#register_popup').removeClass('hidden');
		}
	});
	
	jQuery('#register_close').bind('click', function(){
		jQuery(this).parent().addClass('hidden');
	});
	// -------------------------- ## register popup
	
	// -------------------------- cart popup
	jQuery('.top-link-cart').bind('click', function(event){
		event.preventDefault();
		var topLinkCart = jQuery(this);
		
		jQuery.ajax({
			type: "GET",
			url: '/maximum_scripts/cart_qty_summary.php',
			data: 'qty_query=1',
			async: false,
			success: function(data) {
				var cartQty = parseInt(data);
				cartQty > 0 ? window.location.href = topLinkCart.attr('href') : jQuery('.cart-popup-box').show();
			}
		});
	});
	jQuery('.cart-popup-close').bind('click', function(){
		jQuery(this).parent().hide();
	});
	jQuery(document).bind('click', function(event){
		if( !jQuery(event.target).hasClass('cart-popup-box') 
			&& !jQuery(event.target).hasClass('cpb-inner') 
			&& !jQuery(event.target).hasClass('top-link-cart') 
		){
			jQuery('.cart-popup-box').hide();
		}else{
			 return -1; 
		}
	});
	
	// -------------------------- ## cart popup
	
	
	// -------------------------- available at stores
	/*
	var aasDataObj = jQuery('.aas-data');
	if( aasDataObj.length > 0 ){
		var aasd_arr = aasDataObj.text().split('|');
		for( i=0; i < aasd_arr.length; i++){
			var asd_sub_arr = aasd_arr[i].split('#');
			var avStoreRow = jQuery('#store_row_' + asd_sub_arr[0]);
			avStoreRow.addClass('available');
			avStoreRow.find('td').eq(2).text('YES');
			avStoreRow.find('td').eq(3).text(asd_sub_arr[1]);
		}
	}
	*/
	// -------------------------- ## available at stores
	
	
	// -------------------------- product view
	jQuery('.prod-tab-item').bind('click', function(){
		var ptiObj = jQuery(this);
		var ptiInd = jQuery('.prod-tab-item').index(this);
		
		jQuery('.prod-tab-list').find('li.active').removeClass('active');
		ptiObj.addClass('active');
		
		jQuery('.prod-tab-content').hide();
		jQuery(jQuery('.prod-tab-content')[ptiInd]).fadeIn(400);
	});
	
	jQuery('#price_complain, #error_info').bind('click', function(){
	
		jQuery('.view-info-layer:visible').remove();
	
		var peObj = jQuery(this);
		// var mFormAction = peObj.attr('class');
		var vilClass = peObj.attr('id');
		var ltiTitle = peObj.text();
		
		var info_layer_dolly = jQuery('#view_templates .view-info-layer').clone();
		info_layer_dolly.find('.lt-inner').text(ltiTitle);
		// info_layer_dolly.find('.message-form').attr('action', mFormAction);
		info_layer_dolly.addClass(vilClass).show();
		peObj.parent().append(info_layer_dolly);
		
		jQuery('.view-info-layer:visible .layer-close').bind('click', function(){
			jQuery('.' + vilClass).remove();
		});
		
		jQuery('#m_post_url').val(peObj.attr('href'));
		jQuery('#post_id').val(peObj.attr('rel'));
		
		peObj.next().find('form').bind('submit', function(){
			var messageForm = jQuery(this);
			if(jQuery('.i_robot').is(':checked')){
				return false;
			}else{
				if(is_Valid(messageForm)){
					var post_url = jQuery('#m_post_url').val();
					var user = jQuery('#m_name').val();
					var email = jQuery('#m_email').val();
					var comment = jQuery('#message').val();
					var post_id = jQuery('#post_id').val();
					var prod_name = jQuery('#prod_name').val();
					
					post_url = '/blog/' + post_url;
					var post_data = 'post_id=' + post_id + '&user=' + user + '&email=' + email + '&comment=' + '---' + prod_name + '---' + comment;
					
					messageForm.parent().append('<img src="/skin/frontend/default/maximum/images/ajax-loader.gif" alt="MAXIMUM" class="ajax-loader" />');
					messageForm.remove();
				
					// console.log(post_url);
					jQuery.ajax({
						type: "POST",
						url: post_url,
						data: post_data,
						async: false,
						success: function() {
							jQuery('.view-info-layer:visible').remove();
							alert('your comment was successfully sent');
						}
					});
				}
			}
			return false;
		});
		
		init_validator();
		
		return false;
	});
	
	jQuery('.layer-title .lc').bind('click', function(){
		jQuery(this).parent().parent().parent().parent().fadeOut(300);
		jQuery('.message-form').find('input:reset').click();
	});
	
	
	jQuery('.ip-close').bind('click', function(){
		jQuery(this).parent().fadeOut(300);
	});
	
	jQuery('.pgrm-link').bind('click', function(){
		var pgrmLink = jQuery(this);
		var pgrm_desc = pgrmLink.next().html();
		var pgrm_pos = pgrmLink.next().attr('title');
		
		jQuery('.i-popup:visible').remove();
		var pgrm_popup = jQuery('#templates_wrapper .i-popup').clone();
		pgrm_popup.find('.ip-content').html(pgrm_desc);
		pgrm_popup.attr('id', pgrm_pos);
		pgrmLink.parent().parent().append(pgrm_popup);
		pgrm_popup.show();
		
	});
	
	if(jQuery('.entire-rating').length > 0){
		var rDolly = jQuery('.entire-rating').clone();
		jQuery('.availability').after(rDolly);
	}
	
	if(jQuery('.prod-tab-list').length > 0){
		var ptlOffset = jQuery('.prod-tab-list').offset().top - 20;
		jQuery('#buy_offline').bind('click', function(){
			jQuery('html, body').animate({scrollTop: ptlOffset}, 500);
			jQuery('.prod-tab-item').eq(4).click();
		});
	}
	
	
	jQuery('.gift-popup').hide();
	jQuery('.gift-link').bind('click', function(){
		jQuery('.gift-popup').fadeIn(500);
		return false;
	});
	jQuery('.gift-close').bind('click', function(){
		jQuery(this).parent().fadeOut(500);
	});
	
	
	jQuery('#media_container').cycle({ 
		fx: 'fade',
		speed: 500,
		timeout: 0,
		pager: '#pro_media_pager',
		activePagerClass: 'pm-active',
		pagerAnchorBuilder: function(idx, slide){
			return '<span class="pm-pager-item"><span class="pm-pager-item-cell"><img src="' + jQuery(slide).find('img').attr('src') + '" alt="" class="pm-pager-item-inner" /></span></span>';
		}
	});
    
    var thumbWidth = 70;
    var thumbHeight = 70;
    if(jQuery.browser.msie)
    {
        jQuery('.pm-pager-item-inner').each(function(){
            var piiObj = jQuery(this);
            var piiWidth = piiObj.width();
            var piiHeight = piiObj.height();
            
            newWidth = (piiWidth > thumbWidth - 1) ? thumbWidth + "px" : "auto";
            newHeight = (piiHeight > thumbHeight - 1) ? thumbHeight + "px" : "auto";
            
            piiObj.width(newWidth);
            piiObj.height(newHeight);
        });
    }
    
	
    jQuery('.media-item-link').bind('click', function(event){
        event.preventDefault();
    });
    
    // --- img preloader
    var cache_img_arr = new Array();
    jQuery('.media-item-link').each(function(){
        var img_path = jQuery(this).attr('href');
        var temp_img = new Image();
        temp_img.src = img_path;
        cache_img_arr.push(temp_img);
    });
    
    function getMax(arr){
		var n = 0;
		if(arr != null){
			for(i=0; i<arr.length; i++){
			   n = Math.max(n, arr[i]);
			}
		}
		return n;
	}
    // --- ^ img preloader
    
	jQuery('.media-item').bind('click', function(){
		var media_item = jQuery(this);
        if(!media_item.hasClass('no-gallery'))
        {
            var mi_idx = jQuery('.media-item').index(this);
            
            var win_width = jQuery(window).width();
            var win_height = jQuery(window).height();
            
            var fc_dolly = jQuery('#view_templates .floating-container').clone();
            var lmc_element = fc_dolly.find('.layer-media-container');
            
            fc_dolly.find('.opacity-layer, .content-layer').css({ width: win_width, height: win_height});
            
            media_item.parent().find('.media-item-link').each(function(){
                var imgSrc = jQuery(this).attr('href');
                lmc_element.append('<div class="layer-media-item"><img src="' + imgSrc + '" alt="" /></div>');
            });
            
            /**
            media_item.parent().find('img').each(function(){
                // jQuery(this).clone().removeAttr('width').removeAttr('height').appendTo('#layer_media_container');
                var imgSrc = jQuery(this).attr('src');
                jQuery('#layer_media_container').append('<div class="layer-media-item"><img src="' + imgSrc + '" alt="" /></div>');
            });
            /**/
            
            var img_width_arr = [];
            var img_height_arr = [];
            for(i=0; i<cache_img_arr.length; i++)
            {
                img_width_arr.push(cache_img_arr[i].width);
                img_height_arr.push(cache_img_arr[i].height);
            }
            var max_img_width = getMax(img_width_arr);
            var max_img_height = getMax(img_height_arr); // +110
            
            var ml_m_top = 0;
            if(max_img_height > win_height){
                max_img_height = win_height - 110;
                lmc_element.find('img').height(max_img_height);
            }else{
                ml_m_top = Math.floor((win_height - max_img_height - 110)/2);
            }
            
            // console.log(max_img_width + ' ---- ' + max_img_height);
            
            fc_dolly.find('.layer-media-container, .layer-media-item').css({ width: (max_img_width + 80) + 'px', height: max_img_height + 'px' });
            fc_dolly.find('.media-layer').css({ width: (max_img_width + 100) + 'px', marginTop: ml_m_top + 'px'});
            
            var media_title = media_item.find('img').attr('alt');
            fc_dolly.find('.lt-title').text(media_title);
            
            jQuery(document.body).prepend(fc_dolly);
            
            jQuery('.layer-media-container:visible').cycle({
                fx: 'fade',
                speed: 500,
                timeout: 0,
                startingSlide: mi_idx,
                next: '.layer-media-item',
                pager: '.layer-media-pager',
                activePagerClass: 'pml-active'
            });
            
            jQuery('.layer-close').bind('click', function(){
                jQuery('.floating-container .lt-title, .layer-media-pager, .layer-media-container').empty();
                jQuery('.floating-container:visible').remove();
            });
            jQuery('.content-layer:visible').bind('click', function(event){
                if(jQuery(event.target).hasClass('content-layer')){
                    jQuery('.floating-container .lt-title, .layer-media-pager, .layer-media-container').empty();
                    jQuery('.floating-container:visible').remove();
                }
            });
		}
	});
	
	var sbc = jQuery('.sidebar .block-compare');
	if(sbc.find('.empty').length == 1){
		sbc.hide();
	}
	
	// -------------------------- ## product view
	
	// -------------------------- product gallery
	
	jQuery('.prod_desc_wrapper .product-image').bind('click', function(){
		var gal_obj = jQuery(this);
		activateImageGallery(gal_obj);
	});
	
	function activateImageGallery(gal_obj){
		var img_src_arr = [];
		gal_obj.parent().find('img').each(function(i){
			img_src_arr[i] = jQuery(this).attr('src');
		});
		
		var init_index = gal_obj.parent().find('img').index(gal_obj);
		
		jQuery(document.body).prepend('<div class="dolly-wrapper" />');
		jQuery('.dolly-wrapper').append('<div class="dolly-layer" />').append('<div class="dolly-content" />');
		
		jQuery('.dolly-content').append('<div class="dolly-gallery cfx" />').append('<span class="dolly-close do-close"></span>').append('<span class="do-prev"></span>').append('<span class="do-next"></span>');
		
		for( i = 0; i < img_src_arr.length; i++ ){
			jQuery('.dolly-gallery').append('<img src="' + img_src_arr[i] + '" alt="" class="do-image" />');
		}
		
		jQuery('.dolly-gallery').cycle({
			fx: 'scrollHorz',
			timeout: 0,
			speed: 400,
			startingSlide: init_index,
			next:   '.do-next',
			prev:   '.do-prev'
		});
		
		var cmsWidth = jQuery(document.body).width();
		var dcWidth = jQuery('.dolly-content').width();
		var dcLeftPos = Math.floor( (cmsWidth - dcWidth)/2 );
		jQuery('.dolly-content').css({ left: dcLeftPos + 'px', top: '0px' });
		
		var w_height = jQuery(window).height();
		var dg_height = jQuery('.dolly-gallery img:first').height();
		var dg_m_top = (w_height - dg_height)/2;
		var dg_c_top = w_height/2 - 20;
		
		if(dg_m_top > 0){
			jQuery('.dolly-gallery').css({ marginTop: dg_m_top + 'px' });
		}
		jQuery('.do-prev, .do-next').css({ top: dg_c_top + 'px' });
		
		jQuery('.do-image').bind('click', function(){
			jQuery('.do-next').click();
		});	
		
		jQuery('.dolly-close').bind('click', function(){ // dolly-layer
			jQuery(this).parent().parent().remove();
		});	
	}
	
	
	// -------------------------- ## product gallery
	
	
	
	// -------------------------- cat slider
	var catSliderLength = jQuery('.cat-slider').length;
	
	if(catSliderLength > 0){
		jQuery('.cat-slider').cycle({
			fx: 'wipe', // scrollVert  shuffle  turnDown  scrollHorz wipe
			timeout: 10000,
			speed: 500
			// next:   '#pw_prev',
			// prev:   '#pw_next'
		});
	}
	// -------------------------- ## cat slider
	
	
	// -------------------------- city store post
	
	jQuery('.city-media-list').cycle({
		fx:     'fade', // fade
		speed:  'fast',
		timeout: 0,
		speed: 500,
		pager: '#city_media_pager'
	});
	
	// -------------------------- ## city store post
	
	
	// -------------------------- site map
	jQuery('.sm-sub-list').hide();
	jQuery('.site-map-wrapper .title-inner').addClass('title-active');
	jQuery('.sm-sub-list:first').show();
	jQuery('.site-map-wrapper .title-inner:first').removeClass('title-active');
	
	jQuery('.site-map-wrapper .title-inner').bind('click', function(){
		var tim = jQuery(this);
		
		if(tim.hasClass('title-active')){
			tim.parent().next().slideDown(400);
		}else{
			tim.parent().next().slideUp(400);
		}
		tim.toggleClass('title-active');
	});
	
	// -------------------------- ## site map
	
	// -------------------------- cat name search
	var srpStr = getCookie('srpMin');
	if(srpStr != null)
	{
		var indArr = srpStr.split('|');
		for(i=0; i<indArr.length-1; i++)
		{
			if(indArr[i] == '1')
			{
				var tempSrp = jQuery(jQuery('.search-result-panel')[i]);
				tempSrp.addClass('block-minimized').next().hide();
			}
		}
	}
	
	jQuery('.search-result-panel').bind('click', function(){
		var srp = jQuery(this);
		
		if(srp.hasClass('block-minimized')){
			srp.next().slideDown(400);
		}else{
			srp.next().slideUp(400);
		}
		srp.toggleClass('block-minimized');
		
		var srpStr = '';
		jQuery('.search-result-panel').each(function(){
			var srpObj = jQuery(this);
			srpObj.hasClass('block-minimized') ? srpStr += '1|' : srpStr += '0|'; ;
			setCookie('srpMin', srpStr);
		});
	});
	// -------------------------- ## cat name search
	
	
	// -------------------------- level brand carousel
	if( jQuery('.level-brands-list').length > 0 ){
		jQuery('.level-brands-list').jcarousel({
			 visible : 5, scroll: 5, buttonNextHTML: "<div></div>", buttonPrevHTML: "<div></div>"
		});
	}
	
	// -------------------------- ## level brand carousel
	
	
	// -------------------------- customer provate cabinet
	jQuery('#customer_navigation a[href*=wishlist], #customer_navigation a[href*=tag], #customer_navigation a[href*=downloadable]').parent().hide();
	
	// -------------------------- ## customer provate cabinet
	
	
	// -------------------------- on body click
	jQuery(document.body).bind('click', function(event){
		
		if(
			!jQuery(event.target).hasClass('pgrm-link') 
			&& !jQuery(event.target).hasClass('reg_price') 
			&& !jQuery(event.target).hasClass('spec_price') 
			&& !jQuery(event.target).hasClass('promo-price-inner') 
			&& !jQuery(event.target).hasClass('grid_reg_price') 
			&& !jQuery(event.target).hasClass('grid_spec_price') 
			&& !jQuery(event.target).hasClass('ip-content')
		){
			jQuery('.i-popup:visible').remove();
		}
		
		
		if(!jQuery(event.target).hasClass('input-text') && !jQuery(event.target).hasClass('suggetions') ){
			jQuery('#suggetions_wrapper').hide();
		}
		
		if(
			!jQuery(event.target).hasClass('av-scheme')
			&& !jQuery(event.target).hasClass('av-title') 
			&& !jQuery(event.target).hasClass('lt-title') 
			&& !jQuery(event.target).hasClass('av-scheme-image') 
			&& !jQuery(event.target).hasClass('layer-title')
		){
			jQuery('.av-scheme').hide();
		}
		
        if(
			!jQuery(event.target).hasClass('att-help')
			&& !jQuery(event.target).hasClass('help-info-wrapper') 
		){
			jQuery('.att-help-info').remove();
		}
	});
	
	// -------------------------- ## on body click
	
	
	// -------------------- alphabet filter
	
	jQuery('.alphabet-sort').show();
	var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
	
	jQuery.each(alphabet, function(i, letter){
		var html_str = '<a href="#" title="" rel="' + letter + '" class="letter">' + letter + '</a>';
		jQuery('.alphabet').append(html_str);
	});
	
	function filterBrands(letter){
        
		var reg_exp = new RegExp('^[' + letter + ']', 'i');
		
		var filtered_brands = jQuery('#brands_container a').filter(function(){
			return reg_exp.test(jQuery(this).attr('title'));
		}).parent().clone();

		jQuery('#filtered_brands .brands-list').append(filtered_brands);
	}

	function sortByAlphabet_sec(direction){
		jQuery('#filtered_brands .brands-list').empty();
		var sortedBrands = jQuery('#brands_container .brands-item').clone().sort(function(a, b){
			var title_a = jQuery(a).find('a').attr('title').toLowerCase();
			var title_b = jQuery(b).find('a').attr('title').toLowerCase();
			if(direction == "asc"){
				return (title_a < title_b) ? -1 : (title_a > title_b) ? 1 : 0;
			}else if(direction == "desc"){
				return (title_a > title_b) ? -1 : (title_a < title_b) ? 1 : 0;
			}
			
		});
		jQuery('#brands_container .brands-list').empty().append(sortedBrands);
		
		var aaObj = jQuery('.alphabet .active');
		if(aaObj.length > 0){
			filterBrands(aaObj.attr('rel'));
		}
	}

	jQuery('.sort-button').bind('click', function(){
		// jQuery('#brands_container').hide();
		jQuery('#brands_all_asc, #brands_all_desc').toggleClass('active');
		// jQuery('#brands_container:hidden').show();
		sortByAlphabet_sec(jQuery(this).attr('name'));
		
	});

	jQuery('.letter').bind('click', function(){
		var letter = jQuery(this).attr('rel');
		
		jQuery('.alphabet-sort .ball-active').removeClass('ball-active');
		jQuery('.alphabet .active').removeClass('active');
		jQuery(this).addClass('active');
		
		jQuery('#brands_container:visible').hide();
		jQuery('#filtered_brands .brands-list').empty();
		filterBrands(letter);
		
		setCookie("letter", letter);
		return false;
	});
	
	jQuery('#brands_all').bind('click', function(){
		jQuery('.alphabet .active').removeClass('active');
		jQuery('#filtered_brands .brands-list').empty();
		jQuery('#brands_container:hidden').show();
		jQuery(this).addClass('ball-active');
		
		setCookie("letter", "");
		return false;
	});
	
	// sortByAlphabet_sec("asc");
		
	
	var cookieLetter = getCookie("letter");
	
	if( (cookieLetter != "") && (cookieLetter != null)){
		jQuery('.alphabet .active').removeClass('active');
		jQuery('.alphabet a[rel=' + cookieLetter + ']').addClass('active');
		
		jQuery('#brands_all_desc').addClass('active');
		jQuery('#brands_container:visible').hide();
		jQuery('#filtered_brands .brands-list').empty();
		filterBrands(cookieLetter);
	}else if(cookieLetter == ""){
		jQuery('#brands_all_asc').addClass('active');
		jQuery('#brands_all').addClass('ball-active');
		jQuery('#brands_container').show();
		sortByAlphabet_sec("asc");
	}else{
		// jQuery('#brands_all_desc').hide();
		jQuery('#brands_all_asc').addClass('active');
		jQuery('.alphabet a[rel=a]').click();
	}
	
	// -------------------- ## alphabet filter
	
	// -------------------- services alphabet : uses data from alphabet filter
	
	jQuery.each(alphabet, function(i, letter){
		var html_str = '<a href="#" title="" rel="' + letter + '" class="char">' + letter + '</a>';
		jQuery('.char-wrapper').append(html_str);
	});
	
	function filterServiceBrands(letter){
        
		var reg_exp = new RegExp('^[' + letter + ']', 'i');
		
		jQuery('#brands_wrapper a').hide();
		jQuery('#brands_wrapper a').filter(function(){
			return reg_exp.test(jQuery(this).attr('title'));
		}).show();
	}
	
	function sortBrandsByAlphabet(direction){
		
		var sortedBrands = jQuery('#brands_wrapper a').clone().sort(function(a, b){
			var title_a = jQuery(a).attr('title').toLowerCase();
			var title_b = jQuery(b).attr('title').toLowerCase();
			if(direction == "asc"){
				return (title_a < title_b) ? -1 : (title_a > title_b) ? 1 : 0;
			}else if(direction == "desc"){
				return (title_a > title_b) ? -1 : (title_a < title_b) ? 1 : 0;
			}
		});
		jQuery('#brands_wrapper').empty().append(sortedBrands);
		
		var cwaObj = jQuery('#char_wrapper .active');
		if(cwaObj.length > 0){
			filterServiceBrands(cwaObj.attr('rel'));
		}
		activateBrandKeys();
	}
	
	jQuery('.char').bind('click', function(){
		var letter = jQuery(this).attr('rel');
		
		jQuery('#char_wrapper .sci-active').removeClass('sci-active');
		jQuery('#char_wrapper .active').removeClass('active');
		jQuery(this).addClass('active');
		
		filterServiceBrands(letter);
		return false;
	});
	
	jQuery('#sci_all').bind('click', function(){
		jQuery('#char_wrapper .active').removeClass('active');
		jQuery('#char_wrapper .sci-active').removeClass('sci-active');
		jQuery(this).addClass('sci-active');
		jQuery('#brands_wrapper a').show();
		return false;
	});
	
	// jQuery('#br_all_asc').addClass('sort-active');
	jQuery('.sort-br').bind('click', function(){
		// jQuery('#char_wrapper .active').removeClass('active');
		jQuery('#char_wrapper .sort-active').removeClass('sort-active');
		jQuery(this).addClass('sort-active');
		
		// jQuery('#brands_wrapper a').show();
		sortBrandsByAlphabet(jQuery(this).attr('name'));
	});
	jQuery('#br_all_asc').click();
	
	// -------------------- ## services alphabet
	
	
	// -------------------- manufacturers alphabet 
	jQuery.each(alphabet, function(i, letter){
		var html_str = '<a href="#" title="" rel="' + letter + '" class="mchar">' + letter + '</a>';
		jQuery('.manu-char-wrapper').append(html_str);
	});
	
	function filterManufacturers(letter){
        
		var reg_exp = new RegExp('^[' + letter + ']', 'i');
		
		jQuery('.manu-item').hide();
		jQuery('.manu-title').filter(function(){
			return reg_exp.test(jQuery(this).attr('title'));
		}).parent().show();
	}
	
	jQuery('.mchar').bind('click', function(){
		var letter = jQuery(this).attr('rel');
		jQuery('.manu-char-wrapper .active').removeClass('active');
		jQuery(this).addClass('active');
		
		filterManufacturers(letter);
		
		return false;
	});
	
	jQuery('.all-manu-link').bind('click', function(){
		jQuery('.manu-char-wrapper .active').removeClass('active');
		jQuery('.manu-item').show();
		return false;
	});
	
	function sortBrandRecords(){
		var sortedRecords = jQuery('.manu-item').clone().sort(function(a, b){
			var lang_a = jQuery(a).attr('lang').toLowerCase();
			var lang_b = jQuery(b).attr('lang').toLowerCase();
			
			return (lang_a < lang_b) ? -1 : (lang_a > lang_b) ? 1 : 0;
		});
		jQuery('.manufacturers-list').empty().append(sortedRecords);
	}
	sortBrandRecords();
	
	// -------------------- ## manufacturers alphabet 
	
	
	// -------------------- zoom-image
	/*
	var zoom_timer = setInterval(function(){
		console.log('1');
		if(jQuery('.zoom-image:last').height() != 0){
			clearInterval(zoom_timer);
			adjustZoomSize();
		}
	}, 50);
	
	setTimeout(adjustZoomSize, 2000);
	
	function adjustZoomSize(){
		jQuery('.zoom-image').each(function(){
			var zImg = jQuery(this).find('img').css({ display: 'inline-block', border : '1px solid #cccccc'});
			
			var z_width = jQuery(this).width() + 'px';
			var z_height = jQuery(this).height() + 'px';
			
			jQuery(this).css({ display: 'inline-block', position : 'relative', width : z_width, height : z_height });
		});
	}
	*/
	
	
	jQuery('.zoom-image').each(function(){
		var zImg = jQuery(this).find('img').css({ display: 'inline-block', border : '1px solid #cccccc'});
		jQuery(this).css({ display: 'inline-block', position : 'relative', width : '370px', height : '263px'});
	});
	
	jQuery('.zoom-image').bind('click', function(){
		var zoomObj = jQuery(this);
		var enPath = zoomObj.attr('href');
		
		if(!zoomObj.hasClass('zoomed')){
			var smPath = zoomObj.find('img').attr('src');
			zoomObj.attr('id', smPath).addClass('zoomed').find('img').attr('src', enPath).css({ position : 'absolute', zIndex : '2'});
			// zoomObj.addClass('zoomed').append('<span></span>').find('span').css({ display : 'inline-block', position : 'absolute', zIndex : '2', backgroundImage : 'url(' + enPath + ')'});
		}else{
			var smPath = zoomObj.attr('id');
			zoomObj.removeClass('zoomed').find('img').attr('src', smPath).css({ position : 'static', zIndex : '1'});
			// zoomObj.removeClass('zoomed').find('span').remove();
		}
		return false;
	});
	
	
	// -------------------- ## zoom-image
	
	
	// -------------------- records paginator
	var pageItemLength = jQuery('.pager-item').length;
	if(pageItemLength > 0){
		jQuery('.pager-item').hide();
		jQuery('.pager-item:first').show();
		
		for(i = 0; i < pageItemLength; i++){
			jQuery('.pager-wrapper').append('<a href="#" title="" class="pager-link">' + (i+1) + '</a>');
		}
		jQuery('.pager-wrapper').each(function(){
			var pagerWrapper = jQuery(this);
			pagerWrapper.find('.pager-link:first').addClass('active');
			pagerWrapper.prepend('<a href="#" title="" class="pl-control pl-prev"></a>'); // &lt;
			pagerWrapper.append('<a href="#" title="" class="pl-control pl-next"></a>'); // &gt;
		});
		
		var pager_ind = 0;
		var page_num = jQuery('.pager-wrapper:first').find('.pager-link').length;
		var vis_page_num = 5;
		var vis_aside_num = Math.floor(vis_page_num/2);
		
		jQuery('.pager-link').bind('click', function(){
			var pagerLink = jQuery(this);
			if(!pagerLink.hasClass('active')){
				pager_ind = pagerLink.parent().find('.pager-link').index(this);
				showPage();
			}
			return false;
		});
		
		function showPage(){
			jQuery('.pager-wrapper .active').removeClass('active');
			jQuery('.pager-wrapper').each(function(){
				jQuery(this).find('.pager-link:eq(' + pager_ind + ')').addClass('active');
			});
			
			jQuery('.pager-item').hide();
			jQuery(jQuery('.pager-item')[pager_ind]).fadeIn(700);
			
			if(pager_ind == 0){
				jQuery('.pl-prev').hide();
			}else if(pager_ind == page_num - 1){
				jQuery('.pl-next').hide();
			}else{
				jQuery('.pl-prev, .pl-next').show();
			}
			
			if( (pager_ind >= vis_aside_num - 1) && (pager_ind <= page_num - vis_aside_num) ){
				jQuery('.pager-link').hide();
				jQuery('.pager-wrapper').each(function(){
					jQuery(this).find('.pager-link').each(function(i){
						if( (i >= pager_ind - vis_aside_num) && (i <= pager_ind + vis_aside_num) ){
							jQuery(this).show();
						}
					});
				});
			}
		} // end showPage
		
		// shows visible pager-links on first load for every pager wrapper
		jQuery('.pager-wrapper').each(function(){
			jQuery(this).find('.pager-link').each(function(i){
				if(i > vis_page_num - 1){
					jQuery(this).hide();
				}
			});
		});
		jQuery('.pl-prev').hide();
		/*
		if(page_num <= vis_page_num){
			jQuery('.pl-next').hide();
		}
		*/
		
		jQuery('.pl-prev').bind('click', function(){
			var pLink = jQuery(this).parent().find('.pager-link:eq(' + (pager_ind - 1) + ')');
			
			if(pLink.length > 0){
				pLink.click();
			}
			return false;
		});
		
		jQuery('.pl-next').bind('click', function(){
			var pLink = jQuery(this).parent().find('.pager-link:eq(' + (pager_ind + 1) + ')');
			
			if(pLink.length > 0){
				pLink.click();
			}
			return false;
		});
		
	}
	
	/*
	var pageItemLength = jQuery('.pager-item').length;
	if(pageItemLength > 0){
		jQuery('.pager-item').hide();
		jQuery('.pager-item:first').show();
		
		for(i = 0; i < pageItemLength; i++){
			jQuery('.pager-wrapper').append('<a href="#" title="" class="pager-link">' + (i+1) + '</a>');
		}
		jQuery('.pager-wrapper').each(function(){
			jQuery(this).find('.pager-link:first').addClass('active');
		});
		
		jQuery('.pager-link').bind('click', function(){
			var pagerLink = jQuery(this);
			// var pager_ind = jQuery('.pager-link').index(this);
			var pager_ind = pagerLink.parent().find('.pager-link').index(this);
			
			jQuery('.pager-wrapper .active').removeClass('active');
			
			// pagerLink.addClass('active');
			jQuery('.pager-wrapper').each(function(){
				jQuery(this).find('.pager-link:eq(' + pager_ind + ')').addClass('active');
			});
			
			jQuery('.pager-item').hide();
			jQuery(jQuery('.pager-item')[pager_ind]).fadeIn(700);
			
			return false;
		});
	}
	*/
	// -------------------- ## records paginator
	
	// -------------------- sec_lev_subcats_right_column
	// jQuery('.aside-subs-list').hide();
	jQuery('.subs-page-title').bind('click', function(){
		var subsPageTitle = jQuery(this);
		if(subsPageTitle.hasClass('aps-active')){
			subsPageTitle.removeClass('aps-active');
			jQuery('.aside-subs-list').slideDown(500);
		}else{
			subsPageTitle.addClass('aps-active');
			jQuery('.aside-subs-list').slideUp(500);
		}
	});
	// -------------------- ## sec_lev_subcats_right_column
	
	
	// -------------------- post records
	jQuery('.all-pro-wrapper .api-title').each(function(){
		var apiTitle = jQuery(this);
		var apiHref = apiTitle.attr('href');
		var apiAlt = apiTitle.attr('title');
		
		apiTitle.parent().find('img').wrap('<a href="' + apiHref + '" title="' + apiAlt + '" class="api-preview"></a>');
	});
	
	// -------------------- ## post records
	
	jQuery('.reg_price, .spec_price, .cmv-pr-link, .promo-price-inner').bind('click', function(){ // .reg_price, .spec_price, 
		var priceObj = jQuery(this);
		jQuery('.i-popup:visible').remove();
		var ip_dolly = jQuery('#templates_wrapper .i-popup').clone();
		ip_dolly.addClass(priceObj.attr('id'));
		ip_dolly.find('.ip-content').text(priceObj.attr('title'));
		
		priceObj.parent().append(ip_dolly);
		ip_dolly.show();
		jQuery('.ip-close').bind('click', function(){
			jQuery(this).parent().remove();
		});
		// alert('1');
	});
	
    // -------------------- vacancies
    jQuery('.va-details-link').bind('click', function(event){
        event.preventDefault();
        
        var fullContent = jQuery(this).parent().parent().next();
        
        if(fullContent.hasClass('va-expanded')){
            fullContent.slideUp('400');
        }else{
            fullContent.slideDown('400');
        }
        fullContent.toggleClass('va-expanded');
    });
    // -------------------- ## vacancies
	
	
	// -------------------- review form
	jQuery('#review_form').bind('submit', function(event){
		event.preventDefault();
		var review_form = jQuery(this);
		
		if(is_Valid(review_form) && (review_form.find('input:radio:checked').length > 0)){
			var captcha_data = '6_letters_code=' + jQuery('#6_letters_code').val();
	
			jQuery.ajax({
				type: "POST",
				url: '/maximum_scripts/captcha/captcha_analyzer.php',
				data: captcha_data,
				async: false,
				success: function(html) {
					if(html.length > 0){
						alert(html);
					}else{
						activeReviewForm(review_form);
					}
					
				}
			});
			
		}
	});
	
	function activeReviewForm(review_form){
		var review_url = review_form.attr('action');
		var review_data = '';
		
		var textarea = review_form.find('textarea');
		review_data = textarea.attr('name') + '=' + textarea.val();
		
		review_form.find('input').each(function(){
			var input = jQuery(this);
			if(input.is(':radio')){
				if(input.is(':checked')){
					review_data += '&' + input.attr('name') + '=' + input.val();
				}
			}else{
				review_data += '&' + input.attr('name') + '=' + input.val();
			}
		});
		
		// console.log(review_data);
		review_form.hide();
		review_form.parent().append('<img src="/skin/frontend/default/maximum/images/ajax-loader.gif" alt="MAXIMUM" class="ajax-loader" />');
		/**/
		jQuery.ajax({
			type: "POST",
			url: review_url,
			data: review_data,
			async: false,
			success: function() {
				review_form.parent().find('.ajax-loader').remove();
				review_form.show();
				clearReviewForm(review_form);
				alert('Your review was successfully sent');
			}
		});
		/**/
	}
	
	function clearReviewForm(form){
		form.find('.required').val("");
		form.find('input:radio').attr("checked", false);
	}
	// -------------------- ^ review form
	
	
	// -------------------- records language switcher
	if(jQuery('#rec_arch_url').length > 0){
		var rec_arch_url = jQuery('#rec_arch_url').val();
		
		var lang_item = jQuery('.form-language a.lang-item');
		lang_item.attr('href', '/' + lang_item.attr('rel') + rec_arch_url);
	}
	// -------------------- ^ records language switcher
	
	
	
	
}); // ------ ## dom ready



// -------------------------- promotions banner system
function activatePromotionsBannerSystem(){
	var allNum = jQuery('.banners > a').length;
	var n = 0;
	jQuery('.banners > a').hide();
	jQuery(jQuery('.banners > a')[n]).show();
	var promoFadeInTime = 1200;
	var promoFadeOutTime = 500;
	
	/*
	if( allNum > 0 ){
		var promoTimeArray = [];
		for( i = 0; i < allNum; i++ ){
			promoTimeArray[i] = promoShowTime;
		}
	}
	*/
	
	var promoShowTime = 15000;
	var promoTimeArray = [];
	if( (timeStr != null) && (timeStr.length > 0) ){
		var promo_time_arr = timeStr.split('-');
		for( i = 0; i < promo_time_arr.length; i++ ){
			promoTimeArray[i] = promo_time_arr[i]*1000;
		}
	}else{
		for( i = 0; i < allNum; i++ ){
			promoTimeArray[i] = promoShowTime;
		}
	}
	
	
	// var ptaStr = promoTimeArray.join(' - ');
	// console.log(ptaStr);
	
	var paused = false;
	var intervalTimer;

	function intervalAnalog(){
		if(!paused){
			actionCallback();
			intervalTimer = setTimeout(intervalAnalog, promoShowTime);
		}
	}
	
	function actionCallback(){
		
		n++;
		if( n == allNum){ // - 1
			n = 0;
		}
		
		promoShowTime = promoTimeArray[n];
		// console.log(n);
		// console.log(promoShowTime);
		
		jQuery('.point-active').removeClass('point-active'); 
		
		jQuery('.banners > a:visible').fadeOut(promoFadeOutTime, function(){
			jQuery(jQuery('.banners > a').eq(n)).fadeIn(promoFadeInTime);
			jQuery(jQuery('.promo-point').eq(n)).addClass('point-active');
			promoPointFlag = true;
		});
		
	} // end actionCallback

	
	jQuery('.banners .pause').bind('click', function(){
		paused = true;
		jQuery(this).addClass('invisible');
		jQuery('.banners .play').removeClass('invisible');
	});

	jQuery('.banners .play').bind('click', function(){
		paused = false;
		jQuery(this).addClass('invisible');
		jQuery('.banners .pause').removeClass('invisible');
		intervalAnalog();
	});

	jQuery('.banners .prev').bind('click', function(){
		var cNum = jQuery('.banners > a').index( jQuery('.banners > a:visible') );
		jQuery('.banners > a').hide();
		jQuery('.point-active').removeClass('point-active');
		if( cNum == 0 ){
			n = allNum - 1;
		}else{
			n = cNum - 1;
		}
		jQuery(jQuery('.banners > a')[n]).fadeIn(promoFadeInTime);
		jQuery(jQuery('.promo-point')[n]).addClass('point-active');
	});

	jQuery('.banners .next').bind('click', function(){
		var cNum = jQuery('.banners > a').index( jQuery('.banners > a:visible') );
		jQuery('.banners > a').hide();
		jQuery('.point-active').removeClass('point-active');
		if( cNum == allNum - 1 ){
			n = 0;
		}else{
			n = cNum + 1;
		}
		jQuery(jQuery('.banners > a')[n]).fadeIn(promoFadeInTime);
		jQuery(jQuery('.promo-point')[n]).addClass('point-active');
	});

	if( jQuery.browser.msie ){
		jQuery('.banners').hover(
			function(){ jQuery('.b-controls').show(); },
			function(){ jQuery('.b-controls').hide(); }
		);
	}
	
	
	var ppwObj = jQuery('.promo-point-wrapper');
	for( i = 0; i < allNum; i++ ){
		var promoStr = '<span class="promo-point">' + ( i + 1 ) + '</span>';
		ppwObj.append(promoStr);
	}
	jQuery(jQuery('.promo-point')[n]).addClass('point-active');
	
	var promoPointFlag = true;
	jQuery('.promo-point').bind('click', function(){
		if(promoPointFlag){
			promoPointFlag = false;
			var pointInd = jQuery('.promo-point').index(this);
			n = pointInd - 1;
			
			clearTimeout(intervalTimer);
			if(paused){
				jQuery('.point-active').removeClass('point-active');
				jQuery(this).addClass('point-active');
				jQuery('.banners > a').hide();
				jQuery(jQuery('.banners > a')[pointInd]).fadeIn(promoFadeInTime, function(){ promoPointFlag = true; });
			}else{
				intervalAnalog();
			}
		}
	});
	
	setTimeout(intervalAnalog, promoTimeArray[n]);
	// intervalAnalog();
	
} // end  activatePromotionsBannerSystem

// disable nav button text selection -- start

function disableSelection(noSelectNav){
if (typeof noSelectNav.onselectstart!="undefined") //IE route
	noSelectNav.onselectstart=function(){return false}
else if (typeof noSelectNav.style.MozUserSelect!="undefined") //Firefox route
	noSelectNav.style.MozUserSelect="none"
else //All other route (ie: Opera)
	noSelectNav.onmousedown=function(){return false}
	noSelectNav.style.cursor = "default"
}
// disable nav button text selection -- end

// -------------------------- ## promotions banner system


// -------------------------- search suggest
function activateSearchWithSuggetions(){
	// var stVal = jQuery('#suggest_textfield').val();
	jQuery('#suggest_textfield').bind('focus', function(event){
		var currentStVal = jQuery(this).val().toLowerCase();
		if( currentStVal.indexOf('например') != -1 || currentStVal.indexOf('example') != -1 ){
			jQuery(this).val('');
		}
	});
	
	var siLength = null;
	jQuery('#suggest_textfield').bind('keypress', function(event){
		
		if( event.keyCode == 40 ){
			jQuery(this).blur();
			siLength = jQuery('.suggetion-item').length;
			jQuery('.suggetion-item:first').addClass('active');
			event.stopPropagation();
			return false;
		}
	});
	
	// var allowSuggest = true;
	
	jQuery(document).bind('keypress', function(event){
		var activeObj = jQuery('.suggetion-list').find('li.active');
		var curSiInd = jQuery('.suggetion-item').index(activeObj);
		
		switch (event.keyCode){
			case 40: // down
				if( curSiInd != siLength ){
					activeObj.removeClass('active');
					jQuery(jQuery('.suggetion-item')[curSiInd + 1]).addClass('active'); 
				}
				return false;
			break;
			case 38: // up
				if( curSiInd != 0 ){
					activeObj.removeClass('active');
					jQuery(jQuery('.suggetion-item')[curSiInd - 1]).addClass('active');
				}else if( curSiInd == 0 ){
					activeObj.removeClass('active');
					jQuery('#suggestions_wrapper').hide();
					jQuery('#suggest_textfield').focus();
					/*
					.focus(function(){
						event.stopPropagation();
					});
					*/
				}
				return false;
			break;
			case 13: // enter
				
				var productName = activeObj.find('span').text();
				if(productName != ""){
					jQuery('#suggest_textfield').val(productName);
				}
				jQuery('#suggetions_wrapper').hide();
				jQuery('#suggest_textfield').focus();
				
				jQuery('#mini_search_submit').click();
				
				/*
				.focus(function(){
					clearTimeout(typeTimeout);
				});
				*/
			break;
			case 27: // esc
				jQuery('#suggetions_wrapper').hide();
				jQuery('.dolly-wrapper').remove();
			break;
		}
	});
	
	
	
	var typeTimeout = null;
	var typeTime = 200;
	jQuery('#suggest_textfield').bind('keyup', function(){
		// if(allowSuggest){
			typeTimeout && window.clearTimeout(typeTimeout);
			typeTimeout = window.setTimeout(function(){
				var queryString = jQuery('#suggest_textfield').val();
				showSuggetions(queryString);
			}, typeTime);
		// }
	});
}


function showSuggetions(queryString){
	if(queryString.length == 0 || queryString.length == 1 ) {
		jQuery('#suggetions_wrapper').hide();
	}else{
		var search_store_code = jQuery('#search_store').val();
		
		jQuery.post("/" + search_store_code + "/suggest-data", {queryString: ""+queryString+""}, function(data){ // "/" + search_store_code + 
			if(data.length > 0) {
				jQuery('#suggetions_wrapper').show();
				jQuery('#suggetions').html(data);
				insertSuggetion();
				allowSuggest = true;
			}
		});
	}
}

function insertSuggetion(){
	jQuery('.suggetion-item').bind('click', function(){
		var productName = jQuery(this).find('span').text();
		jQuery('#suggest_textfield').val(productName);
		jQuery('#suggetions_wrapper').hide();
		jQuery('#mini_search_submit').click();
	});
}

// -------------------------- ## search suggest


// -------------------------- brands in main menu
var mbJson = {};
jQuery.getJSON('/maximum_scripts/maximum_brands.json', function(data, textStatus){
	mbJson = data;
});

function activateLevelBrands(){
	jQuery('.level-brands').bind('click', function(){  // .sb-left:visible 
		var levelBrands = jQuery(this);
		
		var lbText = levelBrands.find('.lb-inner').text();
		levelBrands.find('.lb-inner').text(levelBrands.attr('rel'));
		levelBrands.attr('rel', lbText);
		
		levelBrands.parent().find('.kat-bc').each(function(){
			jQuery(this).append('<img src="/skin/frontend/default/maximum/images/mini_loader.gif" alt="MAXIMUM" />');
		});
		
		if(!levelBrands.hasClass('le-br-active')){
			levelBrands.addClass('le-br-active');
			var id_arr = [];
			jQuery('.init-sub-link:visible, .sub-sub-link:visible').each(function(){
				id_arr.push(jQuery(this).attr('rel'));
			});
			var cat_ids = id_arr.join("-");
			var par_url = "/maximum_scripts/brands_json.php?cat_ids=" + cat_ids;
			// alert(par_url);
			jQuery.getJSON(par_url, function(data, textStatus){
				// alert(textStatus);
				
				jQuery('.init-sub-link:visible, .sub-sub-link:visible').each(function(){
					var subSubLink = jQuery(this);
					var kat_id = subSubLink.attr('rel');
					var kat_url = subSubLink.attr('href');
					var kat_brands = data[kat_id];
					
                    if(subSubLink.hasClass('sub-link')){
                        subSubLink.next().empty();
                    }else{
                        subSubLink.parent().next().empty();
                    }
					if(kat_brands != null){
						kat_brands = kat_brands.split('|');
						kat_brands.sort();
						jQuery('#bc_' + kat_id).empty();
						jQuery.each(kat_brands, function(i, brand_item){
							
							var kbl_url = kat_url + '?brand=' + brand_item;
							var link_html = '<a href="' + kbl_url + '" title="' + mbJson[brand_item] + '" class="kat-brand-link">' + mbJson[brand_item] + '</a>'; // brand_item
							jQuery('#bc_' + kat_id).append(link_html);
						});
					}
				});
				
			});
		}else{
			levelBrands.removeClass('le-br-active');
			jQuery('.sb-left:visible .kat-bc').empty();
		}
		
		return false;
	});
} // end  activateLevelBrands

// -------------------------- ## brands in main menu









