var browseComponentManager;
/**

browseComponentManager:
   Manages all components for browse section

author: dedmondson
date:   16/01/2009
*/

// Object Def
function  browseComponentManager(){
 

   // Private functions 
    var subscriptionRequestSuccessCallback = function() {
   	 $('#QS_SubscriptionBoxWrapper').fadeOut('normal', function(){ $('#QS_SubscriptionBoxThankyouWrapper').fadeIn('normal') } );
   	 window.setTimeout(function() {
   		$('#QS_subscriptionBoxForm').validate().resetForm();
		 $('.subscribeFirstName').hide();
	     $('.subscribeLastName').hide();
	     $('#subscribeEmailAddress').val("");
   		$('#QS_SubscriptionBoxThankyouWrapper').fadeOut('normal', function(){ $('#QS_SubscriptionBoxWrapper').fadeIn('normal') } ); 
   	  }, 10000); 
    }
	
    var subscriptionRequestErrorCallback = function(errorMessages) {
    	sessionController.showErrorOverlay(errorMessages);
    }
	 
   
	 
  // xxxManager: Public functions
  return{
  
    submitSubscriptionRequest:function() {
  	  var form = $('#QS_subscriptionBoxForm');
  	  if( form.validate().form()) {
  		basketController.subscribe( form.find('input[name=listName]').val(),
  				                    '',
  				                    form.find('input[name=subscribeFirstName]').val(),
  				                    form.find('input[name=subscribeLastName]').val(),
  				                    form.find('input[name=subscribeEmailAddress]').val(),
  				                    form.find('input[name=setting]').val(),
  				                    subscriptionRequestSuccessCallback,
  				                    subscriptionRequestErrorCallback)
  	  }
    },
    
    initValidation:function(){

        $("#QS_subscriptionBoxForm").validate({errorClass: "errorHighlight",
    		errorContainer: "#QS_subscriptionBoxErrorSection",
    		errorLabelContainer: "#QS_subscriptionBoxErrors",
    		onfocusout: false,
    		onclick: false,
    		onkeyup: false,
    		wrapper: "li",
    		highlight: function(element, errorClass) {
    			$(element).addClass(errorClass);
    		},
    		rules: QS_Constants.validation_rules("#QS_subscriptionBoxForm"),
		    messages: QS_Constants.validation_messages
    	});
    },
	
	initSubsriptionBox:function(){
	 $('.subscribeFirstName').show();
	 $('.subscribeLastName').show();
	 $('.subscribeEmailAddress').show();
	 
	 $('#subscribeFirstName').val("");
	 $('#subscribeLastName').val("");
	 $('#subscribeEmailAddress').val("");
	 
	},
	initConciseSubsriptionBox:function(){
	 $('#subscribeFirstName').show();
	 $('#subscribeLastName').show();
	 $('#subscribeEmailAddress').val("");
	}

	  
  }
}


// On page load
$(function(){
 browseComponentManager = new browseComponentManager();
 browseComponentManager.initValidation();
 $('#QS_SubscriptionBoxThankyouWrapper').hide()
});
$(function() {
$('.QS_toggleSetTitles').hide();

$('.QS_setTitles .QS_hideShowSetTitles').click(function(event) {
	var booksets = $(event.target).parents("div.QS_setTitles");
	if ( booksets.find('.QS_toggleSetTitles').is(":hidden"))
    {
		 
         booksets.find('.QS_toggleSetTitles').slideDown("slow");
         booksets.find('.QS_hideShowSetTitles').html('Hide included titles');
		 booksets.addClass('expanded');
		 booksets.removeClass('collapsed');
    } else {
    	booksets.find('.QS_toggleSetTitles').slideUp("slow");
    	booksets.find('.QS_hideShowSetTitles').html('Show included titles');
		booksets.addClass('collapsed');
		booksets.removeClass('expanded');
    }

		}); 
});


var verticalCatNavList;
function  VerticalCatNavList(){
  return{
   init:function(){	
		var categoryIdentifier = sessionController.getSelectedTopCategory();
		$("li.topCatLink").each(function(n){
		 if(this.id == ("category_"+categoryIdentifier) ){
		   $(this).addClass("selected");
		   $(this).find("ul.subCategories").show();
		 }
		 else{
		   $(this).removeClass("selected");
		   $(this).find("ul.subCategories").hide();
		 }
		});
		
		$("#category_"+categoryIdentifier+ " ul.subCategories").show();	
		
    },
	selectTopCategory:function(categoryIdentifier) {
       sessionController.setSelectedTopCategory(categoryIdentifier);
       $("li.topCatLink").each(function(n){
		 if(this.id == ("category_"+categoryIdentifier) ){
		   $(this).addClass("selected");
		   $(this).find("ul.subCategories").show();
		 }
		 else{
		   $(this).removeClass("selected");
		   $(this).find("ul.subCategories").hide();
		 }
		});
 	
    }
  }
}
$(function(){
 verticalCatNavList = new VerticalCatNavList();
 verticalCatNavList.init();
});


var searchBox;
function  SearchBox(){
  return{
   
	doSearch:function(term) {
      $("#searchField").val(term);
	  document.searchForm.submit();
    }
  }
}
$(function(){
 searchBox = new SearchBox();
});


var tbpNewletterSignup;
function  TbpNewletterSignup(){
  return{
   
	bind:function() {	
	 $('#sideBarNLEmail').bind('keypress',  function(event){
         if(event.keyCode == 13){
           tbpNewletterSignup.submitNewlettersRequest(document.sideBarNLForm);
		   return false;
         }      
     });
	 $('#pageNLEmail').bind('keypress',  function(event){
         if(event.keyCode == 13){
           tbpNewletterSignup.submitNewlettersRequest(document.pageNLForm);
		   return false;
         }      
      });
    },
	submitNewlettersRequest:function(form) {
       if(QS_Utils.validateEmailAddress(form.emailAddress.value)){
		 form.submit();
	   }
	   else{
		 sessionController.showErrorOverlay("Please enter a valid email address");
	   }
    }
  }
}
$(function(){
 tbpNewletterSignup = new TbpNewletterSignup();
 tbpNewletterSignup.bind();
});





