/**
 * LUCKY.JS
 *
 * @author          Filipe Araujo
 * @date            October 2009
 * @version         1.0
 * @since           1.0
 * @description     Extending CN library to contain consistency in our javascript 
 *
 * @lastChange		Added CN.modules & CN.module.features
 */


/**
 * @class			CN MODULES
 * @description		Collection of modules
 * @public
 * @author			Filipe Araujo
 */ 
CN.modules = CN.modules || {}


/**
 * @class			CN MODULES FEATURES
 * @description		Collection of modules within the features position
 * @public
 * @author			Filipe Araujo
 */ 
CN.modules.features = CN.modules.features || {}


/**
 * Newsletter Form
 * @classDescription    Instantiates the module
 * @constructor
 */
CN.modules.features.NewsletterForm = (function($CN){
    
     var default_text = "your email address",
    /**
     * build newsletter ( add event handlers )
     * @memberOf CN.modules.features.NewsletterForm
     * @private
     */     
     build = function(){
        /**
        * @note     targets .newsletter form
        */
		var   form = jQuery(".newsletter form"),
              email 	= jQuery("input[name='email']" , form),
              sample_links = jQuery(".samples ", form);
        
        email.bind("focus", checkEmail);
        email.bind("blur", checkEmail);
        
        jQuery.each(sample_links, function(i,val){
            jQuery(val).click(showSample);
        });        
    },
    /**
     * checks email for valid entry if not reset it
     * @memberOf CN.modules.features.NewsletterForm
     * @private
     */   
    checkEmail = function(e){
       if ($CN.isEmpty(this.value)){
            this.value = default_text;
       }
	   else if(this.value == default_text){
	       this.value = '';
		   expandNewsletter();
	   }
	   
    },
    /**
     * show sample newsletters 
     * @memberOf CN.modules.features.NewsletterForm
     * @private
     */ 
    showSample = function(e){
        var newsletter = e.target.id,        
               params = 'width=700,height=800,scrollbars=1,top=100,left=100',
               url;
        
        switch(newsletter){            
            case 'newsletter.445':
                url ='';
                break;
            case 'newsletter.446':
                url = '';
                break;
             case 'newsletter.447':
                url ='';
                break;
            default :
                url ='/services/sample/'; 
                break;
        }
        
        window.open(url, '' , params);
    }
    
    /**
     * expands newsletters selections and binds a focus event once opened.
     * @memberOf CN.modules.features.NewsletterForm
     * @private
     */ 
    expandNewsletter = function(){
        /**
        *@notes     issue with ie7 and below with slidedown effect, defaulting to show on those browsers
        */
        (jQuery.browser.msie && (jQuery.browser.version < 8))  ? jQuery("#newsletter_selection").show() : jQuery("#newsletter_selection").slideDown('slow');
        jQuery(".newsletter form input[name='email']" ).bind("focus", checkEmail);
    }    
    
    
    jQuery(document).ready(function(){
        build();
    })

    return {}
})(MAGNET)