var MPP = {};
MPP.getBtnClass = function(elem)
{
    var reg = /^(btn-[^_]*)(_a)?$/;
    var classes = jQuery(elem).attr('class').split(" ");
    for (var i = 0 ; i < classes.length ; i++)
    {
        var cls = classes[i];
        var res = reg.exec(cls);
        if (res) return res[1];
    }
    return null;
}
function makeAbsolute(path){
	return window.location.protocol + "//" + window.location.host + path;
}
MPP.register_XHRRequestAll = function(allvoucherreq, allvoucherreqfail)
{
	var action = makeAbsolute('/sortiment/c/xhr/mpp/services/requestall');
	var messageBox = jQuery("div.info-msg");
	jQuery("a.requestall").bind("click", function(ev){
		ev.preventDefault();
		var $this = jQuery(this);
		
		// don't allow multiple requests
        if ($this.hasClass('ajax_progress')) {
        	return;
        }
		
		var btnClass = MPP.getBtnClass($this);
		jQuery.ajax({
			url: action,
			data: {asSms: btnClass == 'btn-sms', asEmail: btnClass == 'btn-email'},
			beforeSend: function(jqXHR, textStatus) {
	        	   $this.addClass('ajax_progress');
	        },
			success: function(data, status) {
				$this.removeClass('ajax_progress');
				$this.removeClass(btnClass);
				$this.addClass(btnClass + "_a");
				messageBox.html(allvoucherreq);
               	messageBox.css('display','block');
			},
			error: function(){
				messageBox.html(allvoucherreqfail);
               	messageBox.css('display','block');
			}
		});
	});
}
MPP.register_XHRSubscription = function()
  {
    function getPk(url)
    {
        var reg = /([?&])pk=(\d+)/;
        var result = reg.exec(url);
        return result[2];
    }
    var baseUrl = makeAbsolute('/sortiment/c/xhr/mpp/services/');
    var subscribeUrl = baseUrl + 'subscribe';
    var unsubscribeUrl = baseUrl + 'unsubscribe'; 
    jQuery("a.subscription").bind("click", function(ev){
        ev.preventDefault();
		var $this = jQuery(this);

        // don't allow multiple requests
        if ($this.hasClass('ajax_progress')) {
        	return;
        }
        
        var url = "";
        var oldClass = "";
        var newClass = "";
        
        var pk = getPk(jQuery(this).attr('href'));
        if(jQuery(this).hasClass("subscribe")){
            url = subscribeUrl;
            oldClass = "subscribe";
            newClass = "unsubscribe";
        }
        else {
            url = unsubscribeUrl;
            oldClass = "unsubscribe";
            newClass = "subscribe";
        }
        var btnClass = MPP.getBtnClass($this);
        jQuery.ajax({
           url: url,
           data: {code: pk, asSms: btnClass == 'btn-sms', asEmail: btnClass == 'btn-email' },
           beforeSend: function(jqXHR, textStatus) {
        	   $this.addClass('ajax_progress');
           },
           success: function(data, status){
             $this.removeClass(oldClass).addClass(newClass);
             $this.removeClass('ajax_progress');
             if (newClass == 'subscribe')
             {
               $this.removeClass(btnClass + '_a');
               $this.addClass(btnClass);
             }
             else
             {
               $this.removeClass(btnClass);
               $this.addClass(btnClass + '_a');
             }
           }
        });
    });
  }
  
MPP.register_XHRVoucherSubscription = function(reminderset,reminderremoved,coderequested)
  {
	function getMessage(message, arg)
	{
		return message.replace(/\{0\}/, arg);
	}
	
    function getOid(url)
    {
        var reg = /([?&])oid=(\d+)/;
        var result = reg.exec(url);
        return result[2];
    }
    function getType(url)
    {
    	var reg = /&type=([a-z]+)/;
    	var result = reg.exec(url);
        return result[1];
    }
    var baseUrl = makeAbsolute('/sortiment/c/xhr/mpp/vouchers/');
    var subscribeUrl = baseUrl + 'subscribe';
    var unsubscribeUrl = baseUrl + 'unsubscribe'; 
    jQuery("a.subscription").bind("click", function(ev){
        ev.preventDefault();
        var $this = jQuery(this);
        
        // don't allow multiple requests
        if ($this.hasClass('ajax_progress')) {
        	return;
        }
        
        var url = "";
        var oldClass = "";
        var newClass = "";
        var oid = getOid(jQuery(this).attr('href'));     
        var messageBox = jQuery("div.info-msg");
        if(jQuery(this).hasClass("requestable")) {
        	url = subscribeUrl;
        	newClass = "";
        }
        else if(jQuery(this).hasClass("subscribe")){
            url = subscribeUrl;
            oldClass = "subscribe";
            newClass = "unsubscribe";
        } else {
            url = unsubscribeUrl;
            oldClass = "unsubscribe";
            newClass = "subscribe";
        }
        var btnClass = MPP.getBtnClass($this);
        var type = getType(jQuery(this).attr('href'));
        var buttons = jQuery("div.id"+oid+" a."+type);
        
        jQuery.ajax({
           url: url,
           data: {code: oid, type: type },
           beforeSend: function(jqXHR, textStatus) {
        	 $this.addClass('ajax_progress');
           },
           success: function(data, status){
        	 $this.removeClass('ajax_progress');
             if (newClass == 'subscribe')
             {
               buttons.removeClass(oldClass).addClass(newClass);
               buttons.removeClass(btnClass + '_a');
               buttons.addClass(btnClass);
               messageBox.html(getMessage(reminderremoved, $this.attr('title')));
          	   messageBox.css('display','block');
             }
             else if(newClass == 'unsubscribe')
             {
               buttons.removeClass(oldClass).addClass(newClass);
               buttons.removeClass(btnClass);
               buttons.addClass(btnClass + '_a');
               messageBox.html(getMessage(reminderset, $this.attr('title')));
               messageBox.css('display','block');
             }
             else {
             	messageBox.html(getMessage(coderequested, $this.attr('title')));
            	messageBox.css('display','block');
            	buttons.removeClass(btnClass);
                buttons.addClass(btnClass + '_a');
             }
           }
        });
    });
  }
jQuery(document).ready(function(){
	jQuery('.login-form').each(function(){
		var form = jQuery(this);
		jQuery('.button3', form).bind('click', function(ev){
			ev.preventDefault();
			form.submit();
		});
	});
});
