(function($){
  $.fn.like = function(options){

    var defaults = {
      'category_id':0
    };

    var opts = $.extend(defaults, options);

    return this.each(function(options){
      
      var element = $(this);
      var init_flag = false;

      var data = {};
      data.cmd = 'GetLikeByUrl';
			data.sid = $('#source_id').val();
      data.cmd_arg = 'category.aspx?categoryid=' + opts.category_id;

      var service_url = 'default.ashx';
	    var url = service_url + '?cmd=' + data.cmd + '&cmd_arg=' + data.cmd_arg;
	    //window.location.href = url;
            
      $.getJSON(service_url, data, function(data){
        
        for(var i=0;i<data.items.length;i++){
          var item = data.items[i];
          var ct = $('<div>').addClass('ct').html(item.likes + ' LIKES');
          var bar = $('<div>').addClass('bar');
          
          var lk = $('<div>').addClass('lk').click(function(){
            var form_data = 'cmd=Like&like_id=' + item.like_id;
            
            $.ajax({
              type: "POST",
              async: false,
              processData: false,
              url: service_url,
              data: form_data,
              dataType: "json",
              success: function(data) {
                var ct = element.find('.ct');
                ct.html(data + ' LIKES');
               	Cufon.replace(ct, { fontFamily:'ChunkFive'});
              },
              error: function(data){
              }
            });
            
            //alert(item.like_id);
          });
          var fb = $('<div>').addClass('fb').click(function(){
            window.open(item.facebook_url);
          });
          var tw = $('<div>').addClass('tw').click(function(){
            window.open(item.twitter_url);
          });
          var qs = $('<div>').addClass('qs').click(function(){

              clear_form(element);
              element.find('#qs_form').fadeIn('fast')

              element.find('.qs-table-container').fadeIn('fast',function(){
             	if(!init_flag){
               	$(element).find('#dob_month').placeholder();
               	$(element).find('#dob_day').placeholder();
               	$(element).find('#dob_year').placeholder();
                init_flag = true;
              }
            });            
          });

          bar.append(lk).append(fb).append(tw).append(qs);
                    
        
          var table = $('<table>').append( $('<tr>').append( $('<td>').append(ct) ).append( $('<td>').append(bar) ) );

          var qs_div = $('<div>').addClass('qs-table-container');
          var qs_table = '<table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="4"><div class="intro">Heck yea!<br/>I want to be the first to know.<br/>Sign me up for emails.</div></td></tr><tbody id="qs_form"><tr><td colspan="4"><div class="label">date of birth</div></td></tr><tr><td><input type="text" id="dob_month" placeholder="00" maxlength="2" /></td><td><input type="text" id="dob_day" placeholder="00" maxlength="2" /></td><td><input type="text" id="dob_year" placeholder="19XX" maxlength="4" /></td><td></td></tr><tr><td colspan="3"><div class="label">e-mail address</div></td><td></td></tr><tr><td colspan="3"><input type="text" id="email_address" /></td><td><div class="qs-go"></div></td></tr><tr><td colspan="4"><div class="tos-copy">I accept the <a href="javascript:void(0)" class="tos-link" onclick="show_terms()">Terms of Use</a> <input type="checkbox" id="tos" /></div></td></tr></tbody></table>';
          var qs_close = $('<div>').addClass('close').bind('click', function(event){
            $(element).find('.qs-table-container').fadeOut('fast');
          });
          
          $(element).append(table).append(qs_div.append(qs_table).append(qs_close));
         	Cufon.replace(ct, { fontFamily:'ChunkFive'});
         	$(element).find('.qs-go').click(function(){
         	  
         	  
         	  // validate here
         	  if(is_valid(element)){

              var birth_month = element.find('#dob_month').val();
              var birth_day =  element.find('#dob_day').val();
              var birth_year =  element.find('#dob_year').val();
              var email_address =  element.find('#email_address').val();
              var form_data = 'cmd=QuickSignUp&birth_month=' + birth_month + '&birth_day=' + birth_day + '&birth_year=' + birth_year + '&email_address=' + email_address;
              $.ajax({
                type: "POST",
                async: false,
                processData: false,
                url: service_url,
                data: form_data,
                dataType: "json",
                success: function(data) {
                  if(data == '1'){
                    element.find('#qs_form').fadeOut('fast')
                    clear_form(element);
                    show_message('Cool. Your\'e in. Check your email for a message from signup@7-eleven.com.', element);
                  }else if(data == '2'){
                    show_message('The email you entered already exists.', element);
                  }else{
                    show_message('An error? Where? It works on my machine.', element);
                  }
                },
                error: function(data){
                }
              });              
         	  }
         	});
        }

        if(data.items.length == 0) $(element).fadeOut('fast');
        
      });
      
    });
    function show_message(s, element){
      element.find('.intro').html(s);
    }
    function clear_form(element){
      element.find('.intro').html('Heck yea!<br/>I want to be the first to know.<br/>Sign me up for emails.');
      element.find('#dob_month').val('');
      element.find('#dob_day').val('');
      element.find('#dob_year').val('');
      element.find('#email_address').val('');
      element.find('#tos').attr('checked', false);
    }
    function is_valid(element){
      
      if(element.find('#dob_month').val() == ''){
        show_message('Please enter the Month of your birthday.', element);
        return false;
      }
      if(element.find('#dob_day').val() == ''){
        show_message('Please enter the Day of your birthday.', element);
        return false;
      }
      if(element.find('#dob_year').val() == ''){
        show_message('Please enter the Year in which you were born.', element);
        return false;
      }
      if(element.find('#email_address').val() == ''){
        show_message('Please enter your email address.', element);
        return false;
      }
      if(element.find('#tos').attr('checked') == false){
        show_message('Do you accept the Terms of Use?', element);
        return false;
      }

      return true;
    }
//trace(s){
//      if(window.console) window.console.log(s);
//    }
  };
})(jQuery);



 
