var options = {
    duration: 450,
    easing: 'easeInOutQuad',
    attribute: 'data-id', // attribute to recognize same items within source and dest
    adjustHeight: 'auto', // 'dynamic' animates height during shuffling (slow), 'auto' adjusts it before or after the animation, false leaves height constant
    useScaling: true, // disable it if you're not using scaling effect or want to improve performance
    enhancement: function(c) {}, // Visual enhacement (eg. font replacement) function for cloned elements
    selector: '> *'
};
var page = 1;
var vals = [];
var $filterSel = [];
var $filterOrder = [];
var filter_line = [];
var filter_brands = [];
var remove_id;
var first_pos_top = 0;
var price_min = 0;
var price_max = 500000;
var price_min_start = 0;
var price_max_start = 500000;
var order_by = 'price_tag';
var order_dir = 'asc';
var browser_msie = false;
var search_init = false;
$(function() {
	order_filter_init(filter_json);

	$('#search_str').keyup(function() {
		if (!search_init) {
			orderFilter();
		}
	});
	if($.browser.msie) {
		browser_msie = true;
	}

	var price_max_tmp = $('#slider_range_price_max').val();
	if (price_max_tmp) {
		price_max_start = (1000 * (Math.round((parseInt(price_max_tmp) + 5000 + 600) / 1000))) - 5;
		if (price_max == 500000) {
			price_max = (1000 * (Math.round((parseInt(price_max_tmp) + 5000 + 600) / 1000))) - 5;
		}
	}

	var slider_options = {
		price_min_init	: price_min_start,
		price_max_init	: price_max_start,
		price_min_value	: price_min,
		price_max_value	: price_max,
		step			: 5000
	};
	slider_options = slider_init(slider_options, orderFilter);
	price_min_start = slider_options.price_min_init;
	price_max_start = slider_options.price_max_init;

	var first_pos = $('ul#phone_list>li').offsetParent().position();
	setTop(first_pos.top);
	// hnappar
	$('.sort').hover(function() {
		var info = $(this).attr('rel').split(',', 2);
		if(info[1] != order_dir || info[0] != order_by) {
			if (info[1] == 'desc') {
				$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -1040px -409px'});
			}
			else {
				$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -1040px -385px'});
			}
		}
	}, function() {
		var info = $(this).attr('rel').split(',', 2);
		if(info[1] != order_dir || info[0] != order_by) {
			if (info[1] == 'desc') {
				$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -999px -409px'});
			}
			else {
				$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -999px -385px'});
			}
		}
	});
	$('.sort').bind('click', function() {
		order_filter_sort.call(this);
		sort_click.call(this);
	});
	$('.page').live('click', function() {
		page = $(this).attr('rel');
		orderFilter();
	});
	$('.checker').click(checker_click);
	$('.spec').hover(function() {
		var info = $(this).attr('rel').split(',', 2);
		if(info[1] == 'no') {
			$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -10px -442px', 'color':'#fff'});
			//$(this).find('.end').css({'background':'#fff url(/sysimages/sprite.png) no-repeat -245px -441px'});
		}
	}, function() {
		var info = $(this).attr('rel').split(',',2);
		if(info[1] == 'no') {
			$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -10px -463px', 'color':'#686b6e'});
			//$(this).find('.end').css({'background':'#fff url(/sysimages/sprite.png) no-repeat -245px -462px'});
		}
	});
	$('.spec').click(spec_click);
	$('.limit_brand').click(order_filter_limit_brand);
	$('.limit').click(order_filter_limit);
	$('ul#phone_list>li').hover(function(){
		var item = $(this);
		$(this).find('.phone_holder').animate({top: -20}, 220, 'easeInOutQuad');
		$(this).find('.compare').fadeTo('fast', 1);
	}, function(){
		var item = $(this);
		$(this).find('.compare').fadeTo('fast', 0)
		$(this).find('.phone_holder').animate({top: 0}, 500, 'easeInOutQuad');
	});
	var first_pos = $('ul#phone_list>li').offsetParent().position();
	var cont_pos = $('#listing_prods').position();

	var $filterSel = $('ul#phone_list>li').css("background", "#fff").filter('.threeg');
    var $filterAll = $('ul#phone_list>li').css('background','#fff');  
    var length_all = $filterAll.length;
    var length_sel;
	
	//showAll();
	orderFilter();
	
	$('#product_search_clear').live('click', function() {
		$.post('/ajax/', {
			search_clear		: true,
			web_category_sub_no	: $(this).attr('rel')
		}, undefined, 'json');

		product_search_clear();

		return false;
	});
	
	$('.prod_limiter').mouseenter(function() {
		clearTimeout(t);
		var options = { path: '/', expires: 86400 };
		$.cookie('filter', 'visible', options);
	});
});

function checkStatus(status) {
	var ret = '';
	if(status == 'no') {
		ret = 'yes';
	}
	else {
		ret = 'no';
	}
	return ret;
}
function setTop(data) {
	first_pos_top = data;
}

function order_filter_limit() {
	var info = $(this).attr('rel').split(',', 2);
	var filter = info[0];
	
	if(filter in oc(filter_line)) {
		for(var u = 0; u < filter_line.length; u++) {
			if(filter_line[u] == filter) remove_id = u;
		}
		if(remove_id == 0) {
			filter_line.shift();
		}
		else {
			filter_line.splice(remove_id, remove_id);
		}
	}
	else {
		filter_line.push(filter);
	}
	
	if (!search_init) {
		orderFilter();
	}
}

function order_filter_limit_brand() {
	var info = $(this).attr('rel').split(',', 2);
	var filter = info[0];
	
	if(filter in oc(filter_brands)) {
		for(var u = 0; u < filter_brands.length; u++) {
			if(filter_brands[u] == filter) remove_id = u;
		}
		if(remove_id == 0) {
			filter_brands.shift();
		}
		else {
			filter_brands.splice(remove_id,remove_id);
		}
	}
	else {
		filter_brands.push(filter);
	}
	
	if (!search_init) {
		orderFilter();
	}
}

function spec_click() {
	var info = $(this).attr('rel').split(',', 2);
	if(info[1] == 'no'){
		$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -2px -420px', 'color':'#fff'});
		//$(this).find('.end').css({'background':'#fff url(/sysimages/sprite.png) no-repeat -245px -420px'});
	}
	else {
		$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -10px -463px', 'color':'#686b6e'});
		//$(this).find('.end').css({'background':'#fff url(/sysimages/sprite.png) no-repeat -245px -462px'});
	}
	$(this).attr('rel', info[0]+','+checkStatus(info[1]));
}

function checker_click() {
	var info = $(this).attr('rel').split(',', 2);
	if(info[1] == 'no'){
		$(this).find('.check_me').addClass('mark_check');
	}
	else {
		$(this).find('.check_me').removeClass('mark_check');
	}
	$(this).attr('rel', info[0]+','+checkStatus(info[1]));
}

function sort_click() {
	var info = $(this).attr('rel').split(',');
	$('.sort').each(function() {
		var asc_desc = $(this).attr('rel').split(',')
		if (asc_desc[1] == 'desc') {
			$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -999px -409px'});
		}
		else {
			$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -999px -385px'});
		}
	});
	if (info[1] == 'desc') {
		$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -1081px -409px'});
	}
	else {
		$(this).css({'background':'url(/sysimages/sprite.png) no-repeat -1081px -385px'});
	}
}

function order_filter_sort() {
	var ord_info = $(this).attr('rel').split(',', 2);
	order_by = ord_info[0];
	order_dir = ord_info[1];
	
	if (!search_init) {
		orderFilter();
	}
}

function product_search_clear() {
	$('.limit, .limit_brand, .sort').each(function() {
		var rel_arr = $(this).attr('rel').split(',');

		if (rel_arr.length == 2) {
			if ($(this).hasClass('limit') && rel_arr[1] == 'yes') {
				order_filter_limit.call(this);
				spec_click.call(this);
			}
			else if ($(this).hasClass('limit_brand') && rel_arr[1] == 'yes') {
				order_filter_limit_brand.call(this);
				checker_click.call(this);
			}
			else if ($(this).hasClass('sort')) {
				if (rel_arr[0] == 'price_tag' && rel_arr[1] == 'asc') {
					order_filter_sort.call(this);
					sort_click.call(this);
				}
			}
		}
	});

	price_min = price_min_start;
	price_max = price_max_start;
	$('#slider-range').slider('option', 'values', [price_min_start, price_max_start]);
	$('#amount').val(number_format($('#slider-range').slider('values', 0), 0, ',', '.') + " kr. - " + number_format($('#slider-range').slider('values', 1), 0, ',', '.') + " kr.");
	$('#search_str').val('');

	orderFilter();
}

function order_filter_init(obj) {
	if (!obj) {
		return false;
	}

	search_init = true;
	if (obj.filter_arr && obj.filter_arr.length > 0) {
		for (var i = 0; i < obj.filter_arr.length; i++) {
			var filter_obj = obj.filter_arr[i];
			if ($filterSel.length == 0) {
			if ($('#no_results').length == 0) {
					$('#listing_prods').prepend('<div id="no_results" style="padding-top: 40px; color: #4A515A; font-size: 16px; font-weight: 600; text-align: center;">Engar niğurstöğur fundust. Prófağu ağ leita aftur eğa fækka völdum leitarskilyrğum.</div>');
				}
			}
			else {
				$('#no_results').remove();
			}
			$(filter_obj).each(function() {
				if ($(this).hasClass('limit')) {
					order_filter_limit.call(this);
					spec_click.call(this);
				}
				else if ($(this).hasClass('limit_brand')) {
					order_filter_limit_brand.call(this);
					checker_click.call(this);
				}
			});
		}
	}
	
	price_min = parseInt(obj.price_min);
	price_max = parseInt(obj.price_max);

	if (obj.order_by) {
		var order_dir = (obj.order_dir) ? obj.order_dir : 'asc';
		
		$('.sort').each(function() {
			var rel_arr = $(this).attr('rel').split(',');
			if (rel_arr.length != 2) {
				return false;
			}
			
			if (rel_arr[0] == obj.order_by && rel_arr[1] == order_dir) {
				order_filter_sort.call(this);
				sort_click.call(this);
			}
		});
	}
	
	if (obj.search_str) {
		$('#search_str').val(obj.search_str);
	}

	search_init = false;
}

function search_filter(index) {
	var price = $(this).find('.price').attr('title');
	var text_search = $('#search_str').val();
	if(text_search.length >= 1)
	{
		$('.search_prod_frame').addClass('search_prod_frame_selected');
	}else
	{
		$('.search_prod_frame').removeClass('search_prod_frame_selected');
	}
	var search_str = '[title*=' + text_search + '],[rel*=' + text_search.toLowerCase() + ']';
	if (text_search == '') {
		if (price >= price_min && price <= price_max) {
			return $(this);
		}
	}
	else {
		var text_check = $(this).find(search_str).text();
		if (price >= price_min && price <= price_max && text_check != '') {
			return $(this);
		}
	}
}

function clearProductSearch(id)
{
	document.getElementById(id).value = "";
	orderFilter();
}

function orderFilter() {
	var animationQueue = [];
	var filter = '';
	var filter_l = '';
	var filter_arr = [];
	
	for(var i = 0; i < filter_line.length; i++) {
		filter_arr.push(filter_line[i]);
		filter_l += filter_line[i];
	}
	
	if(filter_brands.length > 0) {
		for(var i = 0; i < filter_brands.length; i++) {
			filter_arr.push(filter_brands[i]);
			if(i > 0) {
				filter += ', '+filter_brands[i]+filter_l;
			}
			else {
				filter += filter_brands[i]+filter_l;
			}
		}
	}
	else {
		filter = filter_l;
	}
	
	$.post('/ajax/', {
		search_save			: true,
		filter				: filter,
		filter_arr			: $.toJSON(filter_arr),
		price_min			: price_min,
		price_max			: price_max,
		order_by			: order_by,
		order_dir			: order_dir,
		search_str			: $('#search_str').val(),
		web_category_sub_no	: $('#web_category_sub_no').val()
	}, undefined, 'json');
	
	var $filterSel = undefined;
	if (filter) {
		$filterSel = $('ul#phone_list>li').filter(filter).filter(search_filter);
	}
	else {
		$filterSel = $('ul#phone_list>li').filter(search_filter);
	}
	
	if (order_dir || order_by) {
		$filterSel = $filterSel.tsort('.' + order_by + '[title]', {
			returns	: true,
			order	: order_dir,
			orderby	: 'title'
		});
	}
	
	length_sel = $filterSel.length;
	var divided = Math.ceil(length_sel / 12);
	if(page > divided) {
		page = divided;
	}
	if(divided == 0) page = 1;
	drawPages(length_sel);
	var a = 0;
	var b = 0;
	var u = 0;
	var upperLimit = 12 * page;
	var lowerLimit = upperLimit - 12;
	var height_adj = parseInt($('#img_info').attr('rel')) + 130;
	$('#listing_prods').css('height', (3 * height_adj) + 40 +'px');

	if ($filterSel.length == 0) {
		if ($('#no_results').length == 0) {
			$('#listing_prods').prepend('<div id="no_results" style="padding-top: 40px; color: #4A515A; font-size: 16px; font-weight: 600; text-align: center;">Engar niğurstöğur fundust. Prófağu ağ leita aftur eğa fækka völdum leitarskilyrğum.</div>');
		}
	}
	else {
		$('#no_results').remove();
	}
	$filterSel.each(function(i) {
		$(this).css('z-index','10');
		vals.push($(this).children('.descr').html());
		if (lowerLimit <= u && u < upperLimit) {
			if(browser_msie === true) {
				$(this).css('display','block');
				animationQueue.push({
		        element: $(this), 
		        animation: {
		        	top: 0 + 10 + (b * height_adj),
		        	left: 0 + 28 + (a * 220)
		           }
		        });
				if (a < 3) {
					a++;
				}
				else {
					a = 0;
					if(b == 2) {
						b = 0;
					}
					else {
						b++;
					}
				}
			}
			else {
				animationQueue.push({
		        element: $(this), 
		        animation: {
		        	top: 0 + 10 + (b * height_adj),
		        	left: 0 + 28 + (a * 220),
					opacity: '1.0',
		            scale: '1.0'
		           }
		        });
				if (a < 3) {
					a++;
				}
				else {
					a = 0;
					if(b == 2) {
						b = 0;
					}
					else {
						if(b == 2) {
							b = 0;
						}
						else {
							b++;
						}
					}
				}
			}
		}
		else {
			$(this).css('z-index','1');
			if(browser_msie === true) {
				$(this).css('display','none');
				animationQueue.push({
		        element: $(this), 
		        animation: {
		        	top: 0 + 10 + (b * height_adj),
		        	left: 0 + 28 + (a * 220)
		           }
		        });
				if (a < 3) {
					a++;
				}
				else {
					a = 0;
					if(b == 2) {
						b = 0;
					}
					else {
						if(b == 2) {
							b = 0;
						}
						else {
							b++;
						}
					}
				}
			}
			else {
				$(this).css('opacity', 0);
				animationQueue.push({
		        element: $(this), 
		        animation: {
		        	top: 0 + 10 + (b * height_adj),
		        	left: 0 + 28 + (a * 220),
					opacity: '0.0',
		            scale: '0.0'
		           }
		        });
				if (a < 3) {
					a++;
				}
				else {
					a = 0;
					if(b == 2) {
						b = 0;
					}
					else {
						if(b == 2) {
							b = 0;
						}
						else {
							b++;
						}
					}
				}
			}
		}
		u++;
	});
	$('li').not($filterSel).each(function(i) {
		$(this).css('z-index','1');
		if(browser_msie === true) {
			$(this).css('display','none');
			animationQueue.push({
	        element: $(this), 
	        animation: {
	        	top: 0 + 10 + (b * height_adj),
	        	left: 0 + 28 + (a * 220)
	           }
	        });
			if (a < 3) {
				a++;
			}
			else {
				a = 0;
				if(b == 2) {
					b = 0;
				}
				else {
					if(b == 2) {
						b = 0;
					}
					else {
						b++;
					}
				}
			}
		}
		else {
			$(this).css('opacity', 0);
			animationQueue.push({
	        element: $(this), 
	        animation: {
	        	top: 0 + 10 + (b * height_adj),
	        	left: 0 + 28 + (a * 220),
				opacity: '0.0',
	            scale: '0.0'
	           }
	        });
			if (a < 3) {
				a++;
			}
			else {
				a = 0;
				if(b == 2) {
					b = 0;
				}
				else {
					if(b == 2) {
						b = 0;
					}
					else {
						b++;
					}
				}
			}
		}
        if (a < 3) {
			a++;
		}
		else {
			a = 0;
			if(b == 2) {
					b = 0;
				}
				else {
					if(b == 2) {
						b = 0;
					}
					else {
						b++;
					}
				}
		}
        
	});
	
	for (i = 0; i < animationQueue.length; i++) {
        animationQueue[i].element.animate(animationQueue[i].animation, options.duration, options.easing, postCallback);
    }
}
function oc(a)
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}

function drawPages(numberItems) {
	var pages = 'Síğa <span class="page'+checkPage(1)+'" rel="1">1</span>';
	var divided = Math.ceil(numberItems / 12);
    	
    	for (var i = 2; i <= divided; i++) {
    		pages += '<span class="split">|</span><span class="page'+checkPage(i)+'" rel="'+i+'" title="Síğa '+i+' af '+divided+'">'+i+'</span>';
    	}
	$('.pages').html(pages);
}
function checkPage(number) {
	var sel = '';
	if(number == page) {
		sel = ' sel';
	}
	return sel;
}

function postCallback() {
	var i = 1;
}

