
 
function cbSetInputSubmit(button)
{
	
	var jbutton = $(button);
	if (jbutton.attr('cbAction'))
	{		

		var form = $(jbutton.attr('form'));
		
		//alert(form.parent().html());

		var paths = form.attr('action').split('/');//location.pathname.split("/");

		if (paths[1]=='')
		{
			paths[1]=form.attr('cbModuleName');
		}

		paths[2]= jbutton.attr('cbAction');
		var path = '';
		for (var i = 1; i < paths.length; i++)
		{
			path += '/' + paths[i];
		}
		
		form.attr('action',path);
		
		
	}
}


function cbForm(form)
{
	
	this.form = form;
	this.validate = function()
	{	
		//alert($(this.form).parent().html());
		
		if ($(this.form).attr('cbValidation'))
		{
			var validationFunction = $(this.form).attr('cbValidation');
			var valid = (window[validationFunction](form));
			if (!valid)
				return false;
		}
		if ($(this.form).attr('ajax')=='true')
		{
			
			
			this.submitAjax();
			return false;
		}
		
		var formGuid = $('<input name="cbViewState" type="hidden"/>');
		formGuid.attr('value',$(this.form).attr('cbViewState'));
		$(this.form).append(formGuid);
		return true;
	}
	
	this.submitAjax = function()	
	{
		//var guid = ($('meta[name="cbViewState"]').attr('content'));
		var guid = $(this.form).attr('cbViewState');
		var self = $(this.form);
		
		//alert($('input[type="file"][value!=""]',$(this.form)).length);
		
		if ($('input[type=file][value]',$(this.form)).length==0)
		{
		
			$.ajax({	url: self.attr('action'),
					 	type: "POST",
						beforeSend: function(xhr , s)
						{
							
							$.blockUI.defaults.overlayCSS.opacity = '0.1'; 
							$.blockUI.defaults.css={textAlign: 'center',width: '100%'};
							//$.blockUI.defaults.css.textAlign = 'center';
							$.blockUI({ message: '<img src="/cbjs/spinner.gif"/>' });
							//self.html('<img src="/cbjs/spinner.gif">');
							xhr.setRequestHeader('CB_FORM',self.attr('id'));
						},
						success: function(response)
						{
							$.unblockUI();
							self.after(response).remove();
							cbSetForms();
							if (self.attr('onsuccess'))
								window[self.attr('onsuccess')](self)
							
						},
	
						data: $(this.form).serialize() + "&cbViewState="+guid
										
						}
										
							);
		}
		else
		{
			
			//self.post_form(self.attr('action'), function(r){alert('done'); })
			self.ajaxSubmit({
						beforeSubmit: function(xhr , s)
						{

							var formGuid = $('<input name="cbViewState" type="hidden"/>');
							formGuid.attr('value',self.attr('cbViewState'));
							
							self.append(formGuid);
							
							$.blockUI.defaults.overlayCSS.opacity = '0.1'; 
							$.blockUI.defaults.css={textAlign: 'center',width: '100%'};
							//$.blockUI.defaults.css.textAlign = 'center';
							$.blockUI({ message: '<img src="/cbjs/spinner.gif"/>' });
							//self.html('<img src="/cbjs/spinner.gif">');
							//xhr.setRequestHeader('CB_FORM',self.attr('id'));
						},
						success: function(response)
						{
							$.unblockUI();
							self.after(response).remove();
							//cbSetForms();
							if (self.attr('onsuccess'))
								window[self.attr('onsuccess')](self)
							
						}			
			}); 
		}
		return false;		
		
	}
	
	
	
};

cbForm.validateURL = function(value)
{
	if (value=='')
		return true;
	var expression = new RegExp("^(http|https)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&amp;%\$#\=~])*$");
	return expression.test(value);
	
}

cbForm.validateEmail = function(value)
{
	if (value=='')
		return true;
	var expression = new RegExp("[\\w-]+@([\\w-]+\\.)+[\\w-]+");
	return expression.test(value);
	
}
	

cbForm.submitForm = function(form)
{	
	var f = new cbForm(form);
	
	return f.validate();
}

cbForm.submitGetForm = function(form)
{
	
	if ($(form).attr('cbValidation'))
	{
		
		var validationFunction = $(form).attr('cbValidation');
		var valid = (window[validationFunction](form));
		if (!valid)
			return false;
	}
	
	var q = ($(form).serialize());
	var qs = q.split('&');
	
	
	var path = '';
	
	for (var i = 0; i < qs.length; i++)
	{
		var pair = qs[i].split('=');
		path += '/' + pair[0] + '/' + pair[1];
	}
	document.location.href=$(form).attr('action')+path;
	return false;
	
	
}
