(function(b){b.tools=b.tools||{version:{}};b.tools.version.overlay="1.0.4";var c=[];function a(h,d){var r=this,q=b(window),f,n,s,i,k,m,l;var e=d.expose&&b.tools.version.expose;function p(o,t){b(r).bind(o,function(v,u){if(t&&t.call(this)===false&&u){u.proceed=false}});return r}b.each(d,function(o,t){if(b.isFunction(t)){p(o,t)}});var j=d.target||h.attr("rel");var g=j?b(j):null;if(!g){g=h}else{k=h}q.load(function(){m=g.attr("overlay");if(!m){m=g.css("backgroundImage");if(!m){throw"background-image CSS property not set for overlay element: "+j}m=m.substring(m.indexOf("(")+1,m.indexOf(")")).replace(/\"/g,"");g.css("backgroundImage","none");g.attr("overlay",m)}s=g.outerWidth({margin:true});i=g.outerHeight({margin:true});n=b('<img src="'+m+'"/>');n.css({border:0,position:"absolute",display:"none"}).width(s).attr("overlay",true);b("body").append(n);if(k){k.bind("click.overlay",function(o){r.load(o.pageY-q.scrollTop(),o.pageX-q.scrollLeft());return o.preventDefault()})}d.close=d.close||".close";if(!g.find(d.close).length){g.prepend('<div class="close"></div>')}f=g.find(d.close);f.bind("click.overlay",function(){r.close()});if(d.preload){setTimeout(function(){var o=new Image();o.src=m},2000)}});b.extend(r,{load:function(w,v){if(!n){q.load(function(){r.load(w,v)});return r}if(r.isOpened()){return r}if(d.oneInstance){b.each(c,function(){this.close()})}var u={proceed:true};b(r).trigger("onBeforeLoad",u);if(!u.proceed){return r}if(e){n.expose(d.expose);l=n.expose().load()}w=w||d.start.top;v=v||d.start.left;var o=d.finish.top;var t=d.finish.left;if(o=="center"){o=Math.max((q.height()-i)/2,0)}if(t=="center"){t=Math.max((q.width()-s)/2,0)}if(!d.start.absolute){w+=q.scrollTop();v+=q.scrollLeft()}if(!d.finish.absolute){o+=q.scrollTop();t+=q.scrollLeft()}n.css({top:w,left:v,width:d.start.width,zIndex:d.zIndex}).show();n.animate({top:o,left:t,width:s},d.speed,function(){g.css({position:"absolute",top:o,left:t});var x=n.css("zIndex");f.add(g).css("zIndex",++x);g.fadeIn(d.fadeInSpeed,function(){b(r).trigger("onLoad")})});return r},close:function(){if(!r.isOpened()){return r}var u={proceed:true};b(r).trigger("onBeforeClose",u);if(!u.proceed){return r}if(l){l.close()}if(n.is(":visible")){g.hide();var t=d.start.top;var o=d.start.left;if(k){u=k.offset();t=u.top+k.height()/2;o=u.left+k.width()/2}n.animate({top:t,left:o,width:0},d.closeSpeed,function(){b(r).trigger("onClose",u)})}return r},getBackgroundImage:function(){return n},getContent:function(){return g},getTrigger:function(){return k},isOpened:function(){return g.is(":visible")},getConf:function(){return d},onBeforeLoad:function(o){return p("onBeforeLoad",o)},onLoad:function(o){return p("onLoad",o)},onBeforeClose:function(o){return p("onBeforeClose",o)},onClose:function(o){return p("onClose",o)}});b(document).keydown(function(o){if(o.keyCode==27){r.close()}});if(d.closeOnClick){b(document).bind("click.overlay",function(o){if(!g.is(":visible, :animated")){return}var t=b(o.target);if(t.attr("overlay")){return}if(t.parents("[overlay]").length){return}r.close()})}}b.fn.overlay=function(e){var f=this.eq(typeof e=="number"?e:0).data("overlay");if(f){return f}var d=b(window);var g={start:{top:Math.round(d.height()/2),left:Math.round(d.width()/2),width:0,absolute:false},finish:{top:80,left:"center",absolute:false},speed:"normal",fadeInSpeed:"fast",closeSpeed:"fast",close:null,oneInstance:true,closeOnClick:true,preload:true,zIndex:9999,api:false,expose:null,target:null};if(b.isFunction(e)){e={onBeforeLoad:e}}b.extend(true,g,e);this.each(function(){f=new a(b(this),g);c.push(f);b(this).data("overlay",f)});return g.api?f:this}})(jQuery);

(function($) {

    $.fn.delegate = function(eventType, rules) {
		

		
        var makeArgs = function(args, el) {
            var args = $.makeArray(args);
            args.length < 2 ? args.push(el) : args.splice(1, 0, el);
            return args;
        };

        // In IE reset/submit do not bubble.
        // Safari 2 submit does not bubble.
        if (($.browser.msie && /reset|submit/.test(eventType))
            || ($.browser.safari && parseInt($.browser.version) < 500 && eventType == 'submit')) {

            if (eventType == 'reset') {
                // reset:
                // click [type=reset]
                // press escape [type=text], [type=password], textarea
                this.bind('click', function(e) {
                    for (var selector in rules) {
                        var $target = $(e.target);
                        if ($target.is('[type=reset]')
                            && $(e.target.form).is(selector)) {

                            arguments[0] = $.event.fix(e);
                            arguments[0].target = e.target.form;
                            arguments[0].type = eventType;
                            var ret = rules[selector].apply(this, makeArgs(arguments, e.target.form)); // required if confirm() is involved
                            return ret;
                        }
                    }
                });
                this.bind('keypress', function(e) {
                    for (var selector in rules) {
                        var $target = $(e.target);
                        if ($target.is('[type=text], [type=password], textarea')
                            && $(e.target.form).is(selector)
                            && e.keyCode == 27) {

                            arguments[0] = $.event.fix(e);
                            arguments[0].target = e.target.form;
                            arguments[0].type = eventType;
                            var ret = rules[selector].apply(this, makeArgs(arguments, e.target.form)); // required if confirm() is involved
                            return ret;
                        }
                    }
                });
            }

            if (eventType == 'submit') {
                // submit:
                // click [type=submit], [type=image]
                // press enter [type=text], [type=password], textarea
                this.bind('click', function(e) {
                    for (var selector in rules) {
                        var $target = $(e.target), form;
                        if (($target.is('[type=submit], [type=image]')
                            || ($target = $(e.target).parents('[type=submit], [type=image]')) && $target.length)
                            && $((form = $target[0].form)).is(selector)) {

                            arguments[0] = $.event.fix(e);
                            arguments[0].target = form;
                            arguments[0].type = eventType;
                            var ret = rules[selector].apply(this, makeArgs(arguments, form)); // required if confirm() is involved
                            return ret;
                        }
                    }
                });
                this.bind('keypress', function(e) {
                    for (var selector in rules) {
                        var $target = $(e.target);
                        if ($target.is('[type=text], [type=password], textarea')
                            && $(e.target.form).is(selector)
                            && e.keyCode == 13) {

                            arguments[0] = $.event.fix(e);
                            arguments[0].target = e.target.form;
                            arguments[0].type = eventType;
                            var ret = rules[selector].apply(this, makeArgs(arguments, e.target.form)); // required if confirm() is involved
                            return ret;
                        }
                    }
                });
            }

            return this;
        }

        return this.bind(eventType, function(e) {
            for (var selector in rules) {
                var $target = $(e.target);
                if ($target.is(selector) || ($target = $target.parents(selector)) && $target.length)
                    return rules[selector].apply(this, makeArgs(arguments, $target[0]));
            }
        });
    };

})(jQuery);

(function($) {

    $.fn.activeSearch = function(options) {

		var timer = false;
		var container = this;
		var group_id = $(container).attr('relgroup');
		var search_id = $(container).attr('searchid');
		var settings = jQuery.extend({
			updateDelay: 100
		}, options);
		var compareIds = new Array();
		var maxCompareLength = 4;
		var minCompareLength = 2;
		var compareNotEnough = 'Изберете два или повече артикула за сравнение!';
		var lastWidgetId = '';
		var page = 1;
		
		$(this).find('input').attr('checked',false);
		$('#activesearch_results').find('input').attr('checked',false);		
		
		var setUpdateTimer = function() {
			if (timer) clearTimeout(timer);
			timer = setTimeout(updateItems,settings.updateDelay);
			compareIds = new Array();
		};
		var api = $("#overlay").overlay({api:true}); 
		
		var updateItems = function (){
			

			var formdata = $("#activesearch_form").serializeArray();
			
			formdata.push({
				name: 'group_id',
				value: group_id
			});
			formdata.push({
				name: 'page',
				value: page
			});			
			formdata.push({
				name: 'search_id',
				value: search_id
			});			
			$('#activesearch_results').html('Loading...');
			$('#activesearch_results').load('/activesearch_dev.php',formdata);
			$("#activesearch_results").ajaxComplete(function(event,request,settings){
				
				if (lastWidgetId) {
					$("#activesearch_form .multiple_options").each(
						function(s) {

							if ($(this).attr('id') != lastWidgetId) {
								
								$(this).find('label').removeClass('hasoptions');
								
							}
							
						}
					);
				} else {
					
					$("#activesearch_form").find('label').removeClass('hasoptions');
					
				}
															 
				
	
				var so = eval( "(" + $('#searchoptions').html() + ")" );
				for (var i = 0; i < so.length; i++) {
					if ("activesearch_option_"+so[i].schema_id == lastWidgetId) continue;
					var qs = "#activesearch_option_"+so[i].schema_id+" input[name='activesearch[option_"+so[i].schema_id+"]["+so[i].opis+"]']";
	
					$(qs).parent().addClass('hasoptions');
					
				}
				

				
			});

		}
		
		
		var compareItems =  function() {
			
			$('#compareContainer').html('Loading ...');
			$('#compareContainer').load('/activesearch_dev.php/activesearch/compare',{ids: compareIds.join(','),group_id: group_id});
			api.load(); 
			
			
		}
/*		var state = 0;
		var selected = false;
		$(this).delegate('mousedown',{
			'label': function(e) {

				state = 1;
				
				selected = !$(e.target).find('input').attr('checked');
				}
		});			

		$(this).delegate('mouseover',{
			'label': function(e) {

				if (state) 	$(e.target).find('input').attr('checked',selected);
			
				}
		});	
		
		$(this).delegate('mouseout',{
			'label': function(e) {

				if (state) 	$(e.target).find('input').attr('checked',selected);


				}
		});	*/		

		$('#activesearch_results').delegate('click',{
			'.clearresults': function(e) {
					$('#activesearch').find('input').attr('checked',false);
					$('#activesearch_results').find('input').attr('checked',false);	
					lastWidgetId = '';
					page = 1;
					setUpdateTimer();
					e.preventDefault();
				},
			'.compareresults' : function(e) {				
				e.preventDefault();
				if (compareIds.length < minCompareLength) {					
					alert(compareNotEnough);
					
					return false;					
				}	
				compareItems();
			}											
		});
		
		$(this).delegate('click',{
			'input': function(e) {

				if (!$(e.target).parent().hasClass('hasoptions') && $(e.target).parent().siblings('.hasoptions').length) {
					e.stopPropagation();
					e.preventDefault();
					return;
				}
				if ($(e.target).attr('checked')) $(e.target).parent().addClass('checked'); else  $(e.target).parent().removeClass('checked');
				lastWidgetId = $(e.target).parent().parent().attr('id');
				page = 1;
				setUpdateTimer();						
			}
		});
	
		

		$("#activesearch_results").delegate('click',{
			'ul.pages a': function(e) {
				$(e.target).parent().siblings().removeClass('active');
				$(e.target).parent().addClass('active');
				$(this).find('div.activesearchpage').css('display','none');
				$('#activesearch_page'+$(e.target).text()).css('display','block');
				page = $(e.target).text();
				compareIds = new Array();
				updateItems();
				e.preventDefault();
			},
			'label.compare input': function(e) {
				
				var v = $(e.target).val();
				var s = $(e.target).attr('checked');
				if (s) compareIds.push(v);
					else compareIds.splice(compareIds.indexOf(v), 1);
				if (compareIds.length > maxCompareLength) $('label.compare input[value="'+compareIds.shift()+'"]').attr('checked',false);

			}
											
		});
		
        return this;
    };

})(jQuery);

$(document).ready(function() {


	$('#activesearch').activeSearch();
	$('#activesearch').find('img[rel]').each(
		function() {
			$(this).attr("src",$(this).attr("rel"));
		}
	);
	
});
