var currentPage = 1;
var productCount;
var productsPerPage = 10;
var pageCount;
var filters = Array();
var brandFilters = Array();
var priceFilters = Array();


// Product Buy function 

/*
function transferCallback(){
	setTimeout( function() {
		$( "#basket" ).removeAttr( "style" ).hide().fadeIn();
	}, 1000 );	
}*/

function onBuyButtonClick( eid, fromid, duration ){
	
	var options = { to: "#basket", className: "ui-effects-transfer" };
	
	$('#'+fromid).effect( "transfer", options, duration );
	
	
	//var eid = e.attr('id');
	var idstrs = eid.split("_", 3 );
	
	var artNR = parseInt( idstrs[1] );
	//var a = '#name_'+artNR;
	var name  = $('#name_'+artNR).html();
	var price = $('#price_'+artNR).html();
	var vendorArtNo = $('#vendorArtNo_'+artNR).html();
	var vendor = $('#vendor_'+artNR).html();
	var weight = $('#weight_'+artNR).html();
	var qtty = $('#qtty_'+artNR).val();
	var link = $('#link_'+artNR).html();
	
	$.ajax({
		type: 'POST',
		//url: '/libraries/ajaxBuy.php',
		url: root+'index.php/ajax/addToCart',
		data:{
			artnr: artNR,
			name: name,
			price: price,
			vendorArtNo : vendorArtNo,
			vendor : vendor,
			weight : weight,
			qtty : qtty,
			link: link
		},
		dataType: "html",
		success: function(msg){
			$('#cartCont').html( msg );
			if( name.length > 32 ){
				name = name.substring(0,31) + "...";
			}
			$('#artPlaceHolder').html(name);
			//jAlert( $('.cartInfoBlock').html(), "eDiscount Multimedia" );
			$.alerts.cancelButton = '&nbsp;'+txtGoToBasket+'&nbsp;';
			$.alerts.okButton = '&nbsp;'+txtContinue+'&nbsp;';

			/*
			var btns = {};
			btns[txtContinue] = function(){ $( this ).dialog( "close" ); }
			btns[txtGoToBasket] = function(){ window.location = root+'checkout'; }
			
			$('.cartInfoBlock').dialog(
					
					{ buttons: btns,
						title: 'eDiscount Multimedia',
						width: 500,
						height: 160,
						resizable: false,
						modal:true
						
					}
			);
			
			*/
			
			jConfirmInfo( $('.cartInfoBlock').html(), 'eDiscount Multimedia', 	function(r) {
				if( ! r ){
					window.location = root+'checkout';
				}
			});
			
		}
	});
	
}

// Product tab handlers 

function onProductTabClick( e ){
	var eid = e.attr('id');
	var idstrs = eid.split("_", 2 );
	
	var Index = parseInt( idstrs[1] );
	var tabs = $('.productTab');
	
	tabs.each( function(){
		$(this).css( 'background-color', 'white');
		$(this).css( 'margin-top', '0px');
		$(this).css( 'height', '22px');
		$(this).css( 'font-weight', 'normal');
		$(this).css( 'line-height', '22px');
		$(this).css( 'color', '#1c93c4' );
	});
	
	$(e).css( 'background-color', '#fdf9e1');
	$(e).css( 'color', '#c77305' );
	$(e).css( 'margin-top', '-2px');
	$(e).css( 'height', '26px');
	$(e).css( 'font-weight', 'bold');
	$(e).css( 'line-height', '26px');
	
	var tabCont = $('.prTabContainer');
	tabCont.each( function(){
		$(this).css('display', 'none');
		
	});
	
	$('#prTabContainer'+Index).css('display','block');
}


function onResetFilterTabClick(){
	for( var f in filters){
		filters[f] = false;
	}
	for( var f in brandFilters){
		brandFilters[f] = false;
	}
	for( var f in priceFilters){
		priceFilters[f] = false;
	}
	
	var cbs = $('.filterCB');
	cbs.each( function(){
		$(this).attr( 'checked',false);
		
	});
	
	repaginate();
}

function onFilterTabClick( e ){
	//alert( e.attr('id') );
	var eid = e.attr('id');
	var idstrs = eid.split("_", 2 );
	
	var Index = parseInt( idstrs[1] );
	var tabs = $('.filterTab');
	
	tabs.each( function(){
		$(this).css( 'background-color', '#EEE');
		$(this).css( 'margin-top', '0px');
		$(this).css( 'height', '22px');
	});
	
	$(e).css( 'background-color', 'white');
	$(e).css( 'margin-top', '-2px');
	$(e).css( 'height', '24px');
	
	var tabCont = $('.tabContainer');
	tabCont.each( function(){
		$(this).css('display', 'none');
		
	});
	
	$('#tabContainer'+Index).css('display','block');
}


function initPriceArray( id ){
	priceFilters[id] = false;
}


function initBrandArray( id ){
	brandFilters[id] = false;
}


function initArray( id ){
	filters[id] = false;
}


function setPage( page ){
	if( page == '+1'){
		if( currentPage < pageCount ){
			currentPage++;
		}
	}
	else if( page == '-1' ){
		if( currentPage > 1 ){
			currentPage--;
		}
	}
	else{
		currentPage = Number(page);
	}
	repaginate();
}



function onPRFilterClick( event, element, id ){
	var checked = element.attr('checked');

	//alert( 'price filter click' );
	/*for( var pf in priceFilters ){
		priceFilters[pf] = false;
	}*/
	priceFilters[id] = checked; 
	
	//filters[id] = checked;
	currentPage = 1;
	repaginate();
}

function onBRFilterClick( event, element, id ){
	var checked = element.attr('checked');

	/*for( var bf in brandFilters ){
		priceFilters[bf] = false;
	}*/
	
	brandFilters[id] = checked; 
	//alert( 'br filter click' );
	//filters[id] = checked;
	currentPage = 1;
	repaginate();
}

function onFilterClick( event, element, id ){
	var checked = element.attr('checked');
	
	/*for( var bf in brandFilters ){
		priceFilters[bf] = false;
	}*/
	
	filters[id] = checked;
	currentPage = 1;
	repaginate();
}

function repaginate(){
	
	var Elements = Array();
	
	// 1 - on prend tos les éléments
	// Hide all products and put them into the Elements array
	var products = $('.productBox');
	products.each( function(){
		$(this).css('display','none');
		Elements.push( $(this) );
	});

	//var atLeastOneFilter;
	//var inIt;


	// 2 - si au moins une case prix cochée, on enlève les éléments qui n'ont pas la case prix cochée
	var someFilterSelected = false;
	for( var pf in priceFilters ){
		if( priceFilters[pf] == true ){
			someFilterSelected = true;
			break;
		}
	}
	
	if( someFilterSelected ){
		for( var pf in priceFilters ){
			if( priceFilters[pf] == false ){
				for( var i=0; i<Elements.length; i++){
					var item =  $(Elements[i]);
					var itemPrice = item.children('._pr').html();
					itemPrice = Number(itemPrice);
					var remove = false;
					switch( pf ){
						case "0-250":
							if( itemPrice < 250 ){
								remove = true;
							}
							break;
						case "0-500":
							if( itemPrice < 500 ){
								remove = true;
							}
							break;
						case "0-1k":
							if( itemPrice < 1000 ){
								remove = true;
							}
							break;
						case "0-2k":
							if( itemPrice < 2000 ){
								remove = true;
							}
							break;
						case "250-500":
							if( itemPrice >= 250 && itemPrice <= 500 ){
								remove = true;
							}
							break;
						case "500-1k":
							if( itemPrice >= 500 && itemPrice <= 1000 ){
								remove = true;
							}
							break;
						case "1k-2k":
							if( itemPrice >= 1000 && itemPrice <= 2000 ){
								remove = true;
							}
							break;
						case "2k-4k":
							if( itemPrice >= 2000 && itemPrice <= 4000 ){
								remove = true;
							}
							break;
						case "4k-X":
							if( itemPrice >= 4000 ){
								remove = true;
							}
							break;
					}
					if( remove ){
						Elements.splice(i,1);
						i--;
					}
				}
			}
		}
	}
	
	// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	// 3 - si au moins une case marque cochée, on enlève les éléments qui n'ont pas la case marque cochée
	var someFilterSelected = false;
	for( var pf in brandFilters ){
		if( brandFilters[pf] == true ){
			someFilterSelected = true;
			break;
		}
	}
	
	if( someFilterSelected ){
		for( var bf in brandFilters ){
			if( brandFilters[bf] == false ){
				products = $( '.filter'+bf );
				for( var i=0; i<Elements.length; i++){
					var elRemoved = false;
					products.each( function(){
						if( $(this).attr('id') == $(Elements[i]).attr('id') ){
							Elements.splice(i,1);
							elRemoved = true;
						}
					});
					if( elRemoved ){
						i--;
					}
				}
			}
		}
	}
	
	// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	// 4 - si au moins une case filtre cochée, on enlève les éléments qui n'ont pas la case du filtre cochée
	var someFilterSelected = false;
	for( var f in filters ){
		if( filters[f] == true ){
			someFilterSelected = true;
			break;
		}
	}
	
	if( someFilterSelected ){
		for( var f in filters ){
			if( filters[f] == false ){
				products = $( '.filter'+f );
				for( var i=0; i<Elements.length; i++){
					var elRemoved = false;
					products.each( function(){
						if( $(this).attr('id') == $(Elements[i]).attr('id') ){
							Elements.splice(i,1);
							elRemoved = true;
						}
					});
					if( elRemoved ){
						i--;
					}
				}
			}
		}
	}
	

	var productsOnPage = 0;
	
	productCount = Elements.length

	pageCount = productCount / productsPerPage;
	if( productCount % productsPerPage != 0 ){
		pageCount = parseInt( pageCount+1 );
	}

	// Update page buttons
	var arr = $('.pageButton');
	arr.each( function(){
		$(this).css('display','none');
		//$(this).css( 'color', '#333' );
		//$(this).css( 'font-weight', 'normal' );		
	});
	
	var pageButtonNP = $('.pageButtonNP');
	
	if( pageCount < 2 ){
		$('#nextPageBtn').css('display', 'none');
		$('#prevPageBtn').css('display', 'none');
	}
	else{
		$('#nextPageBtn').css('display', 'block');
		$('#prevPageBtn').css('display', 'block');
		
		$start = currentPage - 20 + 1;
		if( $start < 1 ){
			$start = 1;
		}
		
		for( var i=$start; i<$start+20; i++ ){
			$('#pb'+i).css( 'display', 'block' );
			$('#pb'+i).css( 'color', '#AAA' );
		}
		
		$('#pb'+currentPage).css( 'color', 'red' );
		$('#pb'+currentPage).css( 'font-weight', 'bold' );
	}	

	// adjust pager left padding
	/*
	var bodyWidth = 1000; // 1080 - left padding - right padding (see page css class)
	var pagerWidth = $('.pager').width();
	var diff = bodyWidth - pagerWidth;
	var pagerLeft = diff / 2;
	$('.pager').css( 'margin-left', ''+pagerLeft+'px' );
	*/
	
	var cPage = 1;
	for( var e in Elements ){
		if( cPage == currentPage ){
			Elements[e].css('display','block');
		}
		productsOnPage++;
		if( productsOnPage == productsPerPage ){
			productsOnPage = 0;
			if( cPage == currentPage){
				break;
			}
			else{
				cPage++;
			}
		}
	}
}


function displayInitialPage(){
	repaginate();
}


