$(window).load(function(){
		$('img.sb_captcha_img').each( function() {
			var captchaWidth = $(this).outerWidth();
			var containerWidth = $(this).parents('.editable').width();
			if ( captchaWidth > containerWidth ) {
				if ( $(this).hasClass('sb_width_handled') ) {
					return;
				}
				$(this).addClass ( 'sb_width_handled' );
				$(this).width ( containerWidth ).siblings('.sb_captcha_enlarge_note').show();
				$(this).mouseover( function(e){
					$('#sb_captcha_magnifier').remove();
					var off = $(this).offset();
					$('body').append ( '<div id="sb_captcha_magnifier" style="position: absolute; z-index: 99999; top: ' + off.top + 'px; left: ' + off.left + 'px;"><img src="' + $(this).attr('src') + '" /></div>');
					$('#sb_captcha_magnifier').mouseout( function() {
						$(this).remove();
					});
				});
			}
		});
});

$(document).ready(function(){
	$('.sb_formmail_send_mail').click(function(){
		var formId = this.id.replace(/^sb_submit(.*)$/ig,"#sb_formmail_form$1");
		var data = {};
		var parentId = $(this).parents('div.sb_formmail').attr('id');
		$('#'+parentId+' .sb_widget_formmail_success_message').hide();
		var fcName = $(this).attr('rel');
		sbFormMailAddFormLoader(parentId,fcName);
		var theUrl = $(formId).attr('action');
		$('#'+parentId+' p.sb_error').html('');
		$(formId+' :input').each(function(){
			data[$(this).attr('name')] = $(this).val();
		});
		var self = $(this);
		$.post($(formId).attr('action'),data,function(response){
			$(formId).find('.sb_formmail_preloader_overlay').remove();
			if (response.status) {
				if (response.status == 'ok') {
					$('#'+parentId+' form').hide();
					$('#'+parentId+' form :input').val('');
					$('#'+parentId+' .sb_widget_formmail_success_message').show();
				} else if(response.errors && response.errors.fields) {
					$('#'+parentId+' form :input').each(function(){
						if (typeof(response.errors.fields[$(this).attr('name')]) != 'undefined') {
							$(this).prevAll('p.sb_error').html(response.errors.fields[$(this).attr('name')]);
						}
						self.parents('form').find('input[name="protect_field"]').val('');
					});
				}
				var captchaImg = self.parents('form').find('.sb_captcha_img');
				var mathExpr = self.parents('form').find('.sb_math_str');
				var jsField = self.parents('form').find('input[name="protect_field"]');
				if (response.captcha && captchaImg.length > 0) {
					captchaImg.attr('src',response.captcha);
				} else if (mathExpr.length>0) {
					mathExpr.text (response.mathprotect);
				} else if (jsField.length>0) {
					jsField.val(response.jsprotect);
				}
			}
		},'json');
		return false;
	});

	$('.sb_clear_form').click(function(){
		$(this).parents('form:first').get(0).reset();
		return false;
	});
	
	$('.sb_clear_form').click(function(){
		$(this).parents('form:first').get(0).reset();
		return false;
	});
	
	$('.sb_formmail_new_query').click(function(){
		$(this).parents('div.sb_formmail').find('form').show();
		$(this).parents('div.sb_widget_formmail_success_message').hide();
		return false;
	});
	
	$('.sb_formmail .sb_reload_captcha').click(function(){
		var self = $(this);
		var fcName =$(this).attr('rel');
		var theRegEx = new RegExp('^([^;]*);'+fcName+':([^;&]*);?(&.*)?$','ig');
		var theUrl = '';
		if ($(this).parents('form').attr('action').match(theRegEx)) {
			theUrl = $(this).parents('form').attr('action').replace(theRegEx, "$1;"+fcName+":\$2%26getnewprotectionstring=true%26r="+Math.random()+"$3");
		} else {
			theUrl = $(this).parents('form').attr('action').replace(/^([^&]*)(&rewriteurls.*$)?/ig,'$1;'+fcName+":getnewprotectionstring=true%26r="+Math.random()+"$2");
		}
		$.getJSON(theUrl,function(response){
			if (self.siblings('img').length > 0) {
				self.siblings('img').attr('src',response.captcha);
			}
		});
		return false;
	});
});

function sbFormMailAddFormLoader(randName,fcName) {
	var theWidth = $('#'+randName+' form').width()+20;
	var theHeight = $('#'+randName+' form').height()+20;
	$('#'+randName+' form').append('<div class="sb_formmail_preloader_overlay" style="width:'+theWidth+'px;height:'+theHeight+'px;top:0px;left:0px;"><div class="sb_formmail_preloader"></div></div>');
	
}
