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("");
	 
	}

	  
  }
}


// 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');
    } else {
    	booksets.find('.QS_toggleSetTitles').slideUp("slow");
    	booksets.find('.QS_hideShowSetTitles').html('Show included titles');
    }

		}); 
});

