// JavaScript Document

var globalObj = {};
globalObj.keyWordCountClick = 0;
globalObj.byName = 1;
globalObj.bySku = 0;
globalObj.counter = 0;

(function( $ ) {
	$.widget( "ui.combobox", {
		_create: function() {
			var self = this,
				select = this.element.hide(),
				selected = select.children( ":selected" ),
				value = selected.val() ? selected.text() : "";
			var input = this.input = $( "<input>" )
				.insertAfter( select )
				.val( value )
				.autocomplete({
					delay: 0,
					minLength: 0,
					source: function( request, response ) {
						var matcher = new RegExp( "^"+$.ui.autocomplete.escapeRegex(request.term), "i" );
						response( select.children( "option" ).map(function() {
							var text = $( this ).text();
							if ( this.value && ( !request.term || matcher.test(text) ) )
								return {
									label: text.replace(
										new RegExp(
											"(?![^&;]+;)(?!<[^<>]*)(" +
											$.ui.autocomplete.escapeRegex(request.term) +
											")(?![^<>]*>)(?![^&;]+;)", "gi"
										), "<strong>$1</strong>" ),
										
									value: text,
									option: this
								};
						}) );
					},
					select: function( event, ui ) {
						ui.item.option.selected = true;
						self._trigger( "selected", event, {
							item: ui.item.option
						});
					},
					change: function( event, ui ) {
						
						if ( !ui.item ) {
							var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "$", "i" ),
								valid = false;
							select.children( "option" ).each(function() {
								if ( $( this ).text().match( matcher ) ) {
									this.selected = valid = true;
									return false;
								}
							});
							if ( !valid ) {
								// remove invalid value, as it didn't match anything
								$( this ).val( "" );
								select.val( "" );
								input.data( "autocomplete" ).term = "";
								return false;
							}
						}
					}
				})
				.addClass( "selectedValue" );
			input.data( "autocomplete" )._renderItem = function( ul, item ) {
				return $( "<li></li>" )
					.data( "item.autocomplete", item )
					.append( "<a>" + item.label + "</a>" )
					.appendTo( ul );
			};	
				input.click(function() {
					
					// close if already visible
					if ( input.autocomplete( "widget" ).is( ":visible" ) ) {
						input.autocomplete( "close" );
						return;
					}

					// work around a bug (likely same cause as #5265)
					$( this ).blur();

					// pass empty string as value to search for, displaying all results
					input.autocomplete( "search", "" );
					input.focus();
				});
		},

		destroy: function() {
			this.input.remove();
			this.button.remove();
			this.element.show();
			$.Widget.prototype.destroy.call( this );
		}
	});
})( jQuery );


// testreszabott select elemek

function init_selectboxes() {
	/*
	var sb_manager = new $.SelectBoxManager(); 
	$("select.custom").each(function() {
		sb_manager.add(
			new $.SelectBox({
				selectbox: $(this),
				manager: sb_manager,
                changeCallback: function(val) {
                    $('#filter_manufacturers').val(val);
                }
			})
		);
	});
	*/
	$( "#filter_manufacturers" ).combobox();
}

// automatikusan kiurulo inputok
function init_autoempty() {
	$.each( $('.autoempty'), function(el) {
		$(this).data('original_value', $(this).val());
	});
	$('.autoempty').bind('focus', function(e) {
		var original_value = $(this).data('original_value');
		var actual_value = $(this).val();
		if (actual_value==original_value) {
			$(this).val('');
		}
	});
	$('.autoempty').bind('blur', function(e) {
		var original_value = $(this).data('original_value');
		var actual_value = $(this).val();
		if (actual_value=='') {
			$(this).val(original_value);
		}
	});
}

function print_window()
{
    window.print();
    return false;
}

function init_hover_items()
{
	$('.box .item, #featured .item').hover(function() {
		$(this).addClass('hover');
	}, function() {
		$(this).removeClass('hover');
	});
    
    $('.box .item, #featured .item').bind('click', function(e) {
        var href = $('a', this).attr('href');
        if ( e.originalTarget.onclick ) return;
        js_redirect(href);
    })
    
    // mozaikdoboz cimek kattinthatok
    $('.mosaic .product H3').bind('click', function(e) {
        var $parent = $(this).parents('.product');
        var href = $('a.product_link', $parent).attr('href');
        js_redirect(href);
    }).hover(
        function() {
            $(this).addClass('hover');
        },
        function() {
            $(this).removeClass('hover');
        }
    );
    
    // kepek kattinthatoak
    $('.mosaic .product IMG, .list .product IMG').bind('click', function(e) {
        var src = $(this).attr('src');
        
        // ha nincs kep
        if ( src.indexOf('no_image') > 0) {
            var $parent = $(this).parents('.product');
            var href = $('a.product_link', $parent).attr('href');
            js_redirect(href);
        }
        else {
            var href = src.indexOf('138x138') > 0 ? src.replace('-138x138', '-500x500') : src.replace('-198x198', '-500x500');
            $.fancybox({
                'href' : href,
                'autoDimensions'    : true
            });
        }
        return;
        
        
    });
    
    // gombok hover
    $('.submit, .button, .captcha_button').hover(
        function() {
            $(this).addClass('hover');
        },
        function() {
            $(this).removeClass('hover');
        }
    );

}

function incItem(elId, quantity) {
    var item = $('#'+elId);
    item.val(parseInt(item.val())+quantity);
    return false;
}

function addItem(itemKey, quantity) {
    var item = $('#quantity_'+itemKey);
    var current_value = parseInt(item.val());
    if (current_value==1 && quantity==-1) return false;
    item.val(current_value+quantity);
    $('#cart_redirect').val(window.location.href);
    save_y_offset();
    $('#cart').submit();
    return false;
}

function removeItem(itemKey) {
    $('#remove_'+itemKey).attr('checked', 'checked');
    $('#cart_redirect').val(window.location.href);
    save_y_offset();
    $('#cart').submit();
    return false;
}

function save_y_offset()
{
    var y_offset = window.pageYOffset;
    create_cookie('y_offset', y_offset, 1); 
}

function moduleSearch() {
	/*
    pathArray = location.pathname.split( '/' );
    url = location.protocol + "//" + location.host + "/" + pathArray[1] + '/';
    alert(pathArray);
    */
	url = 'index.php?route=product/search';

	var filter_keyword = $('#filter_name').attr('value');

    if (!filter_keyword) {
        filter_keyword = $('#filter_keyword').attr('value');
    }
    
	var filter_model = $('#filter_model').attr('value');

    if (!filter_model && filter_keyword != 'Kulcsszavak' && filter_keyword != 'Cikkszám vagy megnevezés alapján') {
        if (filter_keyword.indexOf('(', 0) != -1) {
            filter_model = filter_keyword.substring(filter_keyword.indexOf('(', 0)+1, filter_keyword.indexOf(')', 0))
            filter_keyword = filter_keyword.substring(0, filter_keyword.indexOf('(', 0))
        } else {
//            filter_model = filter_keyword;
        }
    }
    
    if (filter_keyword && filter_keyword != 'Kulcsszavak' && filter_keyword != 'Cikkszám vagy megnevezés alapján') {
        url += '&keyword=' + encodeURIComponent(filter_keyword);
    }


	if (filter_model) {
        url += '&model=' + filter_model;
        url += '&m=1';
	}

	if ($('#description').attr('checked')) {
		url += '&description=1';
	}

	var manufacturer_id = $('#filter_manufacturers').attr('value');

	if (manufacturer_id) {
		url += '&manufacturer_id=' + manufacturer_id;
	}
    
	if(globalObj.byName == 1){
		url += '&by_name=1';
	}
	if(globalObj.bySku == 1){
		url += '&by_sku=1';
	}
	
	//rossz: index.php?route=product/search&keyword=teka&model=teka&manufacturer_id=0
    //rossz: index.php?route=product/search&keyword=teka&model=teka&manufacturer_id=0
    //jó:    index.php?route=product/search&keyword=teka&model=teka&manufacturer_id=0
    js_redirect(url);
}

function review() {
    
    var rating = $('#rating').val();
    if (rating) {
        $('#rating_submit').show();
    }
    else {
        $('#rating_submit').hide();
    }
    
    if (rating && rating < 3) {
        $('.rating_note').show();
    } else {
        $('.rating_note').hide();
    }
}

function js_redirect(href)
{
    window.location = href; 
}

function create_cookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function read_cookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function erase_cookie(name) {
    create_cookie(name,"",-1);
}

function sendOffer() {
    $.ajax({
        type: "POST",
        url: $('#product_offer').attr('action'),
        data: $('#product_offer').serialize(),
        success: function(res) {
            $('#fancybox-content').find('#column_main').parent().html(res);
            var is_success = $('#fancybox-content .success').length;
            if (is_success) {
                setTimeout(function () {$('#fancybox-close').trigger('click');}, 2000);
            }
        }
    });
    return false;
}

$(document).ready(function () {
	$('.cart_remove').live('click', function() {
		if (!confirm('<?php echo $text_confirm; ?>')) {
			return false;
		}
		$(this).removeClass('cart_remove').addClass('cart_remove_loading');
	});
});


/* fooldali kiemelt doboz */


pause_main_box_item = false;

function change_main_box_item($target)
{
    // nagykep + szoveg csereje
    var $active = $('#main .pic.active');
    if ( $active.prevAll().size()==$target.prevAll().size() ) return false;
    $active.fadeOut('slow').removeClass('active');
    $target.fadeIn('slow').addClass('active'); 
    // gomb
    $('#main .main_button').removeClass('active');
    var index = $('#main .pic.active').prevAll().size();
    var $target_button = $('#main .main_button').eq(index);
    var button_top = $target_button.position().top;
    $target_button.addClass('active');
    // nyil
    $('#main .active_arrow').css( {top:button_top+20} );
}



function step_main_box_item() {
    if (pause_main_box_item==true) return;
    $target = $('#main .pic.active').next();
    if ($target.length<1) $target = $('#main .pic:first');
    change_main_box_item($target);
} 

function init_main_box()
{
    // hover
    $('#main .main_button').hover( function(e) {
        var index = $(this).prevAll().size();
        var $target = $('#main .pic').eq(index);
        change_main_box_item($target);
    },
        function() {}
    );
    // click
    $('#main').bind('click', function() {
        var href = $('#main .main_button.active a').attr('href');
        js_redirect(href);
    });
    // leptetes
    $('#main').hover( function() {
        pause_main_box_item = true;
    }, function() {
        pause_main_box_item = false;
    });
    setInterval(step_main_box_item, 5000); 
}

function add_bookmark() {
   if(document.all) {
       window.external.AddFavorite(location.href,document.title)
   }
   else if (window.sidebar) {
       window.sidebar.addPanel(document.title,location.href,'');
   }
}

function init_flash_header() {
        var params = {
            wmode: "transparent"
        };
        var flashvars = {
            
        };
        swfobject.embedSWF("/media/swf/logo_flash.swf", "swf_logo", "144", "144", "9.0.0", "", {}, params);
}


$(document).ready(function(e) {
	init_selectboxes();
	init_autoempty();
	init_hover_items();
    init_main_box();
    init_flash_header();
	//$('.selectList').bgiframe();
    $('.jump_to_top, #scroll_to_top').bind('click', function(e) {
        e.preventDefault();
        scroll(0,0);
    });
	
    /*
    $("#filter_keyword").autocomplete($('#surl').val(), {
        extraParams: {manufacturer_id: function() { return $("#filter_manufacturers").val(); } },
        dataType: 'json',
        selectFirst: false,
        parse: function(data) {
            var rows = new Array();
            for(var i=0; i<data.length; i++){
                rows[i] = {data:data[i], value:data[i].model, name:data[i].name, result:data[i].text};
            }
            $('#filter_name').val('');
            $('#filter_model').val('');
            return rows;
        },
        formatItem: function(row, i, n) {
            $('#filter_model').val('');
            $('#filter_name').val('');
            return row.text;
        },
        width: $("#filter_keyword").width()+18
        }).result(function(event, data, formatted) {
          $('#filter_name').val(data.name);
          $('#filter_model').val(data.model);
    })
    .keypress(function(e) {
        if (e.keyCode === 13) {
            e.preventDefault();
            moduleSearch();
      }
    });
    
    $('#filter_keyword').bind('paste', function(e) {
        setTimeout(function() {
            $('#filter_keyword').trigger('search').result(function(event, data, formatted) {
                $('#filter_name').val(data.name);
                $('#filter_model').val(data.model);
            })
        }, 0);
        
    });
    */
    $(".chooser_checkbox,.chooser_checkbox_clear").click(function(srcc){
		 if ($(this).hasClass("chooser_checkbox"))
	        {
	            $(this).removeClass("chooser_checkbox");
	            $(this).addClass("chooser_checkbox_clear");
	        }
	        else
	        {
	            $(this).removeClass("chooser_checkbox_clear");
	            $(this).addClass("chooser_checkbox");
	        }
	});

	$("#name_checkbox").bind("click", function(){
		if($("#sku_checkbox").hasClass("chooser_checkbox")){
			$("#sku_checkbox").removeClass("chooser_checkbox");
			$("#sku_checkbox").addClass("chooser_checkbox_clear");
			globalObj.bySku = 0;
		}
		if(globalObj.byName == 1 ){
			globalObj.byName = 0;
		}else{
			globalObj.byName = 1;
		}
	});

	$("#sku_checkbox").bind("click", function(event){
		if($("#name_checkbox").hasClass("chooser_checkbox")){
			$("#name_checkbox").removeClass("chooser_checkbox");
			$("#name_checkbox").addClass("chooser_checkbox_clear");
			globalObj.byName = 0;
		}
		if(globalObj.bySku == 1){
			globalObj.bySku = 0;
		}else{
			globalObj.bySku = 1;
		}
		if(event.which){
			if($('#filter_keyword').val()!="Kulcsszavak")
			{
				$('#filter_keyword').autocomplete( "search", $('#filter_keyword').val());
				$('#filter_keyword').focus();
			}
		}
	});
    
    $("#filter_keyword" ).autocomplete({
		source: function( request, response ) {
			globalObj.counter = 0;
			var mode = "";
			if( globalObj.byName == 1){
				mode = "by_name";
			}
			if(globalObj.bySku == 1){
				mode = "by_sku";
			}
			$.ajax({
				url: $('#surl').val(),
				dataType: "json",
				data: {
					manufacturer_id: function() { return $("#filter_manufacturers").val(); },
					q: $("#filter_keyword" ).val(),
					limit:10,
					mode:mode
				},
				success: function( data ) {
					response( $.map( data, function( item ) {
		                return {
							label: item.text,
							value: item.name,
							id: item.name + '=>' + item.model
						}
					}));
				},
				error: function(data){
					response( $.map( "", function( item ) {
		                return {
							label: "",
							value: "",
							id: "" + '=>' + ""
						}
					}));
				}
			});
		},
		minLength: 2,
		open: function() {
			$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
		},
		close: function() {
			$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
		},
		select: function(event, ui){
			
			var model = "";
			var name = "";
			var items = ui.item.id.split('=>');
			if(items.length = 2){
				name = items[0];
				model = items[1];
			}
			
			if(globalObj.bySku == 1){
				$('#filter_name').val(model);
				$(this).val(model);
			}
			if(globalObj.byName == 1){
				$('#filter_name').val(name);
				$(this).val(name);
			}
			
			moduleSearch();
		}
	}).data("autocomplete")._renderItem = function(ul, item) {
    		
    		var listItem = $("<li></li>")
    			.data("item.autocomplete", item)
    			.append("<a>" + item.label + "</a>")
    			.appendTo(ul);
    		ul.addClass("filter-keyword-autocmplete");
    		
    		if(globalObj.counter%2){
    			listItem.addClass("ac_even");
    		}else{
    			listItem.addClass("ac_odd");
    		}
    		globalObj.counter++;
    		return listItem;
    	};
    
    $( "#filter_keyword" ).autocomplete( "option", "delay", 500 );
    
    //hogy a copy paste utan is mukodjon az autocompete kereses
    $('#filter_keyword').bind('paste', function(e) {
    	this.value = '';
        setTimeout(function() {
        	$('#filter_keyword').autocomplete( "search", $('#filter_keyword').val()
        			);
        	$('#filter_keyword').focus();
        }, 0);
        $(this).css("color","#000000");
    });
    
    //amikor belekattint a kulcsszavak mezobe eloszor torolje, utana ne
    $('#filter_keyword').bind('click', function(e) {
    	if(globalObj.keyWordCountClick == 0){
    		this.value = '';
    		$('#filter_name').val('');
    	}
    	globalObj.keyWordCountClick++;
    });
    
    $('#module_search_auto_sign').bind('click', function(e){
    	$('#filter_keyword').autocomplete( "search", $('#filter_keyword').val());
    	$('#filter_keyword').focus();
    });
    
    $('#filter_keyword').bind('keypress', function(e) {
    	if (e.keyCode === 13) {
            e.preventDefault();
            moduleSearch();
    	}
    });
    $('input.ui-autocomplete-input').bind('keypress', function(e) {
    	if (e.keyCode === 13) {
            e.preventDefault();
            moduleSearch();
    	}
    });
    
    $('input.ui-autocomplete-input[id!=\'filter_keyword\']').bind('click', function(e){
    	$(this).val("");
    });
    
  // skype tiltas
  window.setTimeout(function() {
        $('.skype_pnh_container').html('');
        $('.skype_pnh_print_container').removeClass('skype_pnh_print_container');
  }, 800);
     
});


$(document).ready(function() {
//  $('#modal').jqm({ajax: 'examples/2.html', trigger: 'a.modal_trigger'});
  $("a.offer").fancybox({
    ajax : {
        type : "POST"
    }
  }); 
  
  var y_offset = read_cookie('y_offset');
  if (y_offset) {
    window.scrollTo(0, y_offset);
    erase_cookie('y_offset');
  }
  
});

