// Filter main. 

$(document).ready(function() {
						   
	// Open Filter boxes.
		$(".select_wrapper .select_button a:not(#more)").click(SelectBoxOut);	
	// open More filter
	
		$(".select_wrapper .select_button a#more").click(SelectBoxMore);	
		$("#close_more").click(SelectBoxMore);	
	// Select main categorie
		$(".select_box .item-wrap").click(AddSelection);
	// Select Sub categories
		$(".select_box .item-subwrap").click(AddSelectionSub);
	
	//More box tabs
	 	$(".filterTab li").click(ShowMoreContent);

	// Special unique selection
		$(".special_unique .item-wrap").click(SpecialSelection);
	// More checkboxes
		$(".items-colum .item-wrap").click(MoreSelection);
	// Vip Select 
		$(".no_selection select").click(CheckVipExtra);
		
	// Languages
		$("#languages").change(changeLang);


});

/*	
	Open filter boxes ( in & out)
	
*/
	function SelectBoxOut(evt){
		var $box =$(this).parents('.select_wrapper').next();
		if(!$box.is(":visible")){
			var height=$box.height();
			
			$box.hide().css({ height : 0 });
			var $img=$(" img",this);
			$img.attr('src',$img.attr("src").replace("select_button.gif","select_button_active.gif"));
			
			$box.show().animate({ height : height }, { duration: 400 });
			
		}else{
			var height=$box.height();
	
			var $img=$(" img",this);
			$img.attr('src',$img.attr("src").replace("select_button_active.gif","select_button.gif"));
		
		
			$box.animate({ height: 0 }, { duration: 200, complete: function () {
					$box.hide().css({ height :  height });
					
				} });
			
		}
		
		return false;
	};
	
	/*	
	Open filter boxes MORE( in & out)
	
*/
	function SelectBoxMore(evt){
		var $box =$(".special_filter");
		$(".select_box").hide();
		var $img=$(".select_button a img");
		$img.attr('src',$img.attr("src").replace("select_button_active.gif","select_button.gif"));
		
		
		if(!$box.is(":visible")){
			
			
			$(".special_filter .more-wrap").hide();
			$(".special_filter .more-wrap:eq(0)").show();
			$(".filterTab li").removeClass("active");
			$(".filterTab li:eq(0)").addClass("active");
			$(".special_filter .more-wrap:eq(0)").show();
			var $img=$(" img",this);
			$img.attr('src',$img.attr("src").replace("select_button.gif","select_button_active.gif"));
			
			$box.show();
			
		}else{
			
	
			var $img=$(" img",this);
			$img.attr('src',$img.attr("src").replace("select_button_active.gif","select_button.gif"));
		
		
			$box.hide();
			
		}
		
		return false;
	};
	
	
	
	
	
	
	
/*
	Function : Add Filterbox selection ( basic main).


*/
	
	function AddSelection(evt){
		
		// Uitklap box wrapper
		var select_box_wrap=$(this).parents('.select_box');
		
		// Select All Item
		var select_all	   =$(" .select_all",select_box_wrap);
		
		// Id of selectbox uitklap
		acTypeId	=$(select_box_wrap).attr('id');
	
		
		// Niks doen als select all geselecteerd is.
		if($(this).hasClass('select_all')){
				return false;			
		}
		
		var action="add";
		if($(" .item-select",this).length==0){
			action="remove";	
		}
		
		if(action=="add"){
			
			
			
			
			// change box class.
			var $selectbox=$(" .item-select",this);// Blue select box
		
			
			//Select all uit
			$(" .item-select-active",select_all).attr("class","item-select");
			// Input select 
			var selectv			=$(this).parents('.select_box').prev(); // #selectwrapper
			var $selectTekst	=$(" .select_input span",selectv);		// Filter input tekst.

			//Check if there is a selection or none.(e.g. : All formats).
			if($selectTekst.text().match(/All\s/gi)){
				$selectTekst.text($selectTekst.text().replace('All',1)); // Replace All with 1
			}else{
				// Grab number and update selection.
				var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));
				number+=1;
				
				
				// User Vip or not ?
				
				if(!vip){
					
					// Genres
					
					if( acTypeId=='select_box_genres' ){
						if( number > 3 ){
							open_vip('Only V.I.P. members are allowed to select more then 3 genres ');
							return false;
						}
					}
					
					// Categories
					
					if( acTypeId=='select_box_cat' ){
						if( number > 2 ){
							open_vip('Only V.I.P. members are allowed to select more then 2 Categories ');
							return false;
						}
					}
					
									
					
				}
				
				// Insert number selection text.
				$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,number));
			}
			
			// Set form checkbox
			$(" .item_checkbox input",this).attr('checked',true);
				$selectbox.attr("class","item-select-active");
			//has subselection?
			
			var $subgroep=$(this).next();
			if($subgroep.hasClass("subgroep")){
				
				var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));//Grab current number
				
				$(" .item-subwrap",$subgroep).each(function(index) {
						
						$(" .item-select",this).attr("class","item-select-active");//change bluebox
						$(" .item_checkbox input",this).attr('checked',true);//form checkbox.
						number+=1;
						
			
				});
				$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,number));// add subcategories to total number
				
			}
		}else{
			// De-select boxes.
					
			var $selectbox=$(" .item-select-active",this);
			$selectbox.attr("class","item-select");
			// remove checkbox
			$(" .item_checkbox input",this).attr('checked',false);		
				
			// Input select 
			var selectv			=$(this).parents('.select_box').prev(); // #selectwrapper
			var $selectTekst	=$(" .select_input span",selectv);		// Filter input tekst.	
				
				
			// Grab current selection
			var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));
			number-=1;
			$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,number));
			
			
			//has subselection?
			
			var $subgroep=$(this).next();
			if($subgroep.hasClass("subgroep")){
				
				var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));//Grab current number
				
				$(" .item-subwrap",$subgroep).each(function(index) {
						
						if($(" .item-select-active",this).length!=0){
							number-=1;
						}
						
						$(" .item-select-active",this).attr("class","item-select");
						$(" .item_checkbox input",this).attr('checked',false);
						
						
			
				});
				$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,number));// add subcategories to total number
				
			}
			
			
			// Check if number is not below 1 ( >> = selection all).
			var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));
			if(number <1){
				$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,'All'));
				//Select all aan
				$(" .item-select",select_all).attr("class","item-select-active");
			}
		}
		
	};
	
	/*
		Add Sub Selection filter
	
	
	
	*/
	
	
	function AddSelectionSub(evt){
		
		// Select all
		var select_box_wrap=$(this).parents('.select_box');
		var select_all	   =$(" .select_all",select_box_wrap);
		
		
		var action="add";
		if($(" .item-select",this).length==0){
			action="remove";	
		}
		
		if(action=="add"){
			// change box class.
			var $selectbox=$(" .item-select",this);
			$selectbox.attr("class","item-select-active");
			
			//Select all uit
			$(" .item-select-active",select_all).attr("class","item-select");
		
			var $parentFormat=$(this).parent().prev();
			
						// Input select 
			var selectv			=$($parentFormat).parents('.select_box').prev();
			var $selectTekst	=$(" .select_input span",selectv);
				$(" .item_checkbox input",this).attr('checked',true);
			
			if($selectTekst.text().match(/All\s/gi)){
				$selectTekst.text($selectTekst.text().replace('All',1)); // Replace All with 1
			}else{
				// Grab number and update selection.
				var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));
				number+=1;
				$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,number));
				
			}
			
			if($(" .item-select",$parentFormat).attr("class").length!=0){
				var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));
				number+=1;
				$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,number));	
			}
			
			
			
			// set parent format box
			$(" .item-select",$parentFormat).attr("class","item-select-active");
			
			// set checkbox sub en parent format
		
			$(" .item_checkbox input",$parentFormat).attr('checked',true);
		
			
			
			
			
		}else{
			
				
			// remove box
			var $selectbox=$(" .item-select-active",this);
			$selectbox.attr("class","item-select");
			var $parentFormat=$(this).parent().prev();
			
			var selectv			=$($parentFormat).parents('.select_box').prev();
			var $selectTekst	=$(" .select_input span",selectv);
		
			
			
			// remove checkbox
			$(" .item_checkbox input",this).attr('checked',false);
			
			
			var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));
			number-=1;
			$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,number));
			
			
			
			
			var $subgroep=$(this).parent();
			if($(" .item-select-active",$subgroep).length==0){
				$(" .item_checkbox input",$parentFormat).attr('checked',false);
				$(" .item-select-active",$parentFormat).attr("class","item-select");
				var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));
				number-=1;
				$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,number));
			}
			
			var number =parseInt($selectTekst.text().match(/\d{1,2}/gi));
			if(number <1){
				$selectTekst.text($selectTekst.text().replace(/\d{1,2}/,'All'));
				$(" .item-select",select_all).attr("class","item-select-active");
			}
		}
			
			
		
	};
	
	
	/*
		More filter Tabs
	
	*/
	function ShowMoreContent(evt){
		
		var index=$(this).index();
		
		$(".special_filter .more-wrap").hide();
		
		$(".special_filter .more-wrap:eq("+index+")").fadeIn(500);
		$(".filterTab li.active").removeClass("active");
		$(this).addClass("active");
		
		return false;
	};
	
	
	/*
		Special unqiue selection 
	*/
	function SpecialSelection(evt){
		
			if(!vip){
				
				open_vip('Only V.I.P. members are allowed to make this Selection ');
				return false;	
				
			}
			
			
			
			// remove all
			var parent=$(this).parent();
			
			$(" .item-wrap .item-select-active",parent).attr("class","item-select");
			$(" .item-wrap .item_checkbox input",parent).attr("checked",false);
		
		
		
			// change box class.
			var $selectbox=$(" .item-select",this);// Blue select box
			$selectbox.attr("class","item-select-active");
			
		
			// Set form checkbox
			$(" .item_checkbox input",this).attr('checked',true);
			
		
		
	};
	
	
	/*
	
		More selection ( moood,tags etc)
	
	*/
	
	function MoreSelection(evt){
		
		var action="add";
		if($(" .item-select",this).length==0){
			action="remove";	
		}
		
		if(action=="add"){
			
			if(!vip){
				/* Count selected Items (VIP) */
				acTotalItemsMoods = $("#more-moods .items-colum .item-select-active").size();
				acTotalItemsTags = $("#more-tags .items-colum .item-select-active").size();
				
				if( acTotalItemsMoods == 2 ){
					open_vip('Only V.I.P. members are allowed to select more then 2 Moods ');
					return false;
				}
				
				if( acTotalItemsTags == 2 ){
					open_vip('Only V.I.P. members are allowed to select more then 2 Tags ');
					return false;
				}
				
			}
			// change box class.
			var $selectbox=$(" .item-select",this);// Blue select box
			$selectbox.attr("class","item-select-active");
			
			
		
			
			// Set form checkbox
			$(" .item_checkbox input",this).attr('checked',true);
			
			
			
		}else{
			// De-select boxes.
					
			var $selectbox=$(" .item-select-active",this);
			$selectbox.attr("class","item-select");
			// remove checkbox
			$(" .item_checkbox input",this).attr('checked',false);		
				
		}
		
	};
	
	
	function CheckVipExtra(evt){
		 if(!vip){
			 	open_vip('Only V.I.P. members are allowed to use this selection ');
				return false;
			 
		 }
		 
		 return true;
		
		
	};
	
	function changeLang(evt){
		var lang=$(this).val();
		if(lang!="none"){
				
		
			var url='http://www.nzbmovieseeker.com/Languages/'+lang+'/';
			window.location = url;

		}
		
		return false;
	};
