/**
 * rsv.js - Really Simple Validation
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *
 * This file contains a collection of custom error handling functions for Really Simple Validation
 * jQuery form validation class.
 * 
 * This functions have been programmed by Can Berkol and Bircan Tuner for the courtsey of biber Ltd.
 */
 
 /*
 * Shows the error on a bubble next to given item.
 */
function error_on_bubble(f, errorInfo, options){
	// first destroy all existing messages
	$('.errorbubbles').remove();
	for (var i=0; i<errorInfo.length; i++)
    {		
      var element = errorInfo[i][0];
      var message = errorInfo[i][1];
      var errordiv = '<div id="errordiv'+i+'" class="bubble_container"></div>';
      $(element).after(errordiv);
      var bubbletable = '<table id="bubbletable'+i+'" class="errorbubbles" cellspacing="0" cellpadding="0" border="0"></table>';
      $('#errordiv'+i).append(bubbletable);
      var bubbletable_tbody = '<tbody id="bubbletable_tbody'+i+'" ></tbody>';
      $('#bubbletable'+i).append(bubbletable_tbody);
      var bubbletable_trtop = '<tr id="bubbletable_trtop'+i+'"></tr>';
      $('#bubbletable_tbody'+i).append(bubbletable_trtop);
      var bubbletable_tdtop_left = '<td id="bubbletable_tdtop_left'+i+'" class="tdtop_left"></td>';
      var bubbletable_tdtop_middle = '<td id="bubbletable_tdtop_middle'+i+'" class="tdtop_middle"></td>';
      var bubbletable_tdtop_right = '<td id="bubbletable_tdtop_right'+i+'" class="tdtop_right"></td>';
      $('#bubbletable_trtop'+i).append(bubbletable_tdtop_left);
      $('#bubbletable_trtop'+i).append(bubbletable_tdtop_middle);
      $('#bubbletable_trtop'+i).append(bubbletable_tdtop_right);
      var bubbletable_trcenter = '<tr id="bubbletable_trcenter'+i+'"></tr>';
      $('#bubbletable_tbody'+i).append(bubbletable_trcenter);
      var bubbletable_tdcenter_left = '<td id="bubbletable_tdcenter_left'+i+'" class="tdcenter_left"></td>';
      var bubbletable_tdcenter_middle = '<td id="bubbletable_tdcenter_middle'+i+'" class="tdcenter_middle"></td>';
      var bubbletable_tdcenter_right = '<td id="bubbletable_tdcenter_right'+i+'" class="tdcenter_right"></td>';
      $('#bubbletable_trcenter'+i).append(bubbletable_tdcenter_left);
      $('#bubbletable_trcenter'+i).append(bubbletable_tdcenter_middle);
      $('#bubbletable_trcenter'+i).append(bubbletable_tdcenter_right);
      var bubbletable_trbottom = '<tr id="bubbletable_trbottom'+i+'"></tr>';
      $('#bubbletable_tbody'+i).append(bubbletable_trbottom);
      var bubbletable_tdbottom_left = '<td id="bubbletable_tdbottom_left'+i+'" class="tdbottom_left"></td>';
      var bubbletable_tdbottom_middle = '<td id="bubbletable_tdbottom_middle'+i+'" class="tdbottom_middle"></td>';
      var bubbletable_tdbottom_right = '<td id="bubbletable_tdbottom_right'+i+'" class="tdbottom_right"></td>';
      $('#bubbletable_trbottom'+i).append(bubbletable_tdbottom_left);
      $('#bubbletable_trbottom'+i).append(bubbletable_tdbottom_middle);
      $('#bubbletable_trbottom'+i).append(bubbletable_tdbottom_right);
      var closelink = '<a id="bubble_closelink'+i+'" class="bubble_close"/>';
      var errormessagediv = '<div id="errormessagecontainer'+i+'" class="errormessagecontainer"></div>';
      var errormessagep = '<p>'+message+'</p>';
      $('#bubbletable_tdcenter_middle'+i).append(errormessagediv);
      $('#errormessagecontainer'+i).append(errormessagep);
      $('#bubbletable_tdcenter_middle'+i).append(closelink);
      var errordivobject = $('#errordiv'+i);
      var elementoffset = $(element).offset();
      var elementX = elementoffset.left;
      var elementY = elementoffset.top;
      var diffX =  element.offsetWidth - 50;
      var diffY = 50;
      var bubbleX = elementX + diffX;
      var bubbleY = elementY - diffY;
      $(errordivobject).css('position', 'absolute');
	  $(errordivobject).css('top', bubbleY);
	  $(errordivobject).css('left', bubbleX);
      $('#bubble_closelink'+i).click(function () { 
     	 $(this).parent().parent().remove();
      });
		if(options.displayType == "custom-one"){
			break;
		}
	}
}
function ajaxsubmit(f, errorInfo, options){
		var form = f
		var inputelements = [];
		$(':input', form).each(function(){
			inputelements.push(this.name + '=' + escape(this.value));
		})
		var inputdata = inputelements.join('&');
		var containerdiv = $('#newsletter');
		var containerdivoffset = $('#newsletter').offset();
		var containerdivX = containerdivoffset.left;
	    var containerdivY = containerdivoffset.top - 2;
	    var containerdivH = containerdiv.height() + 4;
	    var containerdivW = containerdiv.width()-19;
		var message = $.ajax({
			  type: 'GET',
			  url: options.ajaxurl,
			  data: inputdata+'&directAccess=NO&type=mini',
			  success: function(html){
			  	 $('#successmessage').remove();
			  	 $('#errormessage').remove();
			  	 $('#newsletter_responsetext').append(html);
			  	 if($('#successmessage').html() != null){
			  	 	$('#newsletter_responsetext').addClass('forms_newsletter_mini_response_success');
			  	 	$('#newsletter_responsetext').removeClass('forms_newsletter_mini_response_fail');
			  	 	$('#newsletter_responsetext').fadeIn(1500);
			  	 }
			  	 else if($('#errormessage').html() != null){
			  	 	$('#newsletter_responsetext').addClass('forms_newsletter_mini_response_fail');
			  	 	$('#newsletter_responsetext').removeClass('forms_newsletter_mini_response_success');
			  	 	$('#newsletter_responsetext').fadeIn(2500);
			     	$('#newsletter_responsetext').fadeOut(7000);
			  	 }
			  	 $('#newsletter_responsetext').css('top', containerdivY);
			  	 $('#newsletter_responsetext').css('left', containerdivX);
			  	 $('#newsletter_responsetext').css('width', containerdivW);
			  	 $('#newsletter_responsetext').css('height', containerdivH);
			   }  
			});
	return false;
}
function ajaxcontactsubmit(f, errorInfo, options){
		var form = f
		var inputelements = [];
		$(':input', form).each(function(){
			inputelements.push(this.name + '=' + escape(this.value));
		})
		var inputdata = inputelements.join('&');
		var containerdiv = $('#contact_form');
		var containerdivoffset = $('#contact_form').offset();
		var containerdivX = containerdivoffset.left;
	    var containerdivY = containerdivoffset.top - 2;
	    var containerdivH = containerdiv.height() + 4;
	    var containerdivW = containerdiv.width()-19;
		var message = $.ajax({
			  type: 'GET',
			  url: options.ajaxurl,
			  data: inputdata+'&directAccess=NO',
			  success: function(html){
			  	 $('#successmessage').remove();
			  	 $('#errormessage').remove();
			  	 $('#contactform_responsetext').append(html);
			  	 if($('#successmessage').html() != null){
			  	 	$('#contactform_responsetext').addClass('forms_response_success');
			  	 	$('#contactform_responsetext').css('opacity', 0);
			  	 	$('#contact_form').animate({
			  	 								opacity: 1
												},
												{
												duration: 'slow',
												complete: function(){
														$('#contactform_responsetext').animate({
			  	 											opacity: 1
															}, 
															'slow');
												}
												});
			  	 }
			  	 else if($('#errormessage').html() != null){
			  	 	$('#contactform_responsetext').addClass('forms_response_success');
			  	 	$('#contactform_responsetext').css('opacity', 0);
			  	 	$('#contact_form').animate({
			  	 								opacity: 1
												},
												{
												duration: 'slow',
												complete: function(){
														$('#contactform_responsetext').animate({
			  	 											opacity: 1
															}, 
															'slow');
												}
												});
			  	 }
			  	 $('#contactform_responsetext').css('top', containerdivY);
			  	 $('#contactform_responsetext').css('left', containerdivX);
			  	 $('#contactform_responsetext').css('width', containerdivW);
			  	 $('#contactform_responsetext').css('height', containerdivH);
			  	 $('#contact_form').hide();
			   }  
			});
	return false;
}