var xmlHttp;
var validation_obj = new Object();

// select 'quarterly' option in additional services form onpage load.
$(document).ready(function(){
  
  $('form#additionalservices #freq_radio_1').attr('checked', true);
  
});

function UpdateField(field, form, sessionid) {
  if($('#' + form + ' #' + field + '_radio_0').length > 0)
	// radio group
	{
		// get checked value
		var data = $('#' + form + " input[@name='" + field + "']:checked").val();
		
    // alert(data);
	}
	else if($('#' + form + ' #' + field + '_0').length > 0)
	// checkboxes
	{
    var data;
    var group = document.getElementsByName(field);
    for(var i = 0, n = group.length; i < n; ++i) {
  	  if (group[i].checked == true) {
  	    if (data == undefined) {
    		  data=group[i].value + ",";
  	    } else {
  	      data=data+group[i].value + ",";
  	    }
      }
    }

		// alert($('#' + field + '_0').attr('id'));
  }
	else
	// text field
	{
    var data = $('#' + form + ' #' + field).val();

		// alert($('#' + field).val());
  }
	
	$.post('/savedata.php',
		{ 
			'sessionid': sessionid,
			'field_name': field,
			'data': data,
			'form': form
		},
		function(data){
			
			if(data.validation_error)
			{
				// alert(data.validation_error);
				// validation failed, update relevant label
				$('#' + form + ' #' + data.validation_field + '_error').html(data.validation_error);
				
				$('#' + form + ' #' + data.validation_field + '_error').show();
			}
			else
			{
				// update/insert ok clear error label
				// alert(data.msg);
				$('#' + form + ' #' + data.validation_field + '_error').html('');
				
				$('#' + form + ' #' + data.validation_field + '_error').hide();
			}
			
			// action other fields
			if(data.error_other)
			{
				$('#' + form + ' #' + data.error_other + '_error').html(data.error_other_msg);
				
				$('#' + form + ' #' + data.error_other + '_error').show();
			}
			
			if(data.clear_other)
			{
				$('#' + form + ' #' + data.clear_other + '_error').html('');
				
				$('#' + form + ' #' + data.clear_other + '_error').hide();
			}
			
		}, 'json');
}

function sendEmail(emailaddress)
{
  xmlHttp=GetXmlHttpObject();
  
  var url="/sendemail.php?sessionid="+sessionid+"&emailaddress="+emailaddress+"&form="+form;
  xmlHttp.open("GET",url,true); 
  xmlHttp.send(null); 
}

function submitForm(form, sessionid)
{
	
	// do quick validation
	var validation_error_cnt = 0;
	var validation_array = [];
	
	validation_array = validation_obj[form];
	
	for(i = 0; i < validation_array.length; i++)
	{
		// loop field in case checkbox list
		var empty = true;
		
    // alert($('[name=' + validation_array[i][0] + ']').attr('id'));
		
		$('[name=' + validation_array[i][0] + ']').each(function(){
			
      // alert($(this).attr('id') + '|' + $(this).val());
			
			if($(this).attr('class') == 'checkbox')
			{
				// same ids for all cb's so get parent label then all inputs inside
				// needs to be fixed so all fields have unique id's!
				// alert($(this).parent().find('.checkbox'));
				
				// $(this).parent().find('.checkbox').each(function(){
					
					if($(this).attr('checked'))
					{
						empty = false;
					}
					
					// alert($(this).attr('id') + '|' + $(this).attr('checked') + '|' + empty);
					
				// });
			}
			else if($(this).val() != '')
			{
				// alert($(this).attr('id') + '|' + $(this).html());
				
				empty = false;
			}
			
		});
		
		if(empty)
		{
			var this_field = '#' + validation_array[i][0];
			
			// alert(this_field);
			
			if(validation_array[i][1] == 'text_other')
			{
				// get other field to check
				other_data = validation_array[i][2].split('|');
				
				// alert(other_data[0] + '|' + other_data[1]);
				
				// get checkboxes see if required is checked
				$('[name=' + validation_array[i][0] + ']').each(function(){
					
					// alert($(this).val());
					
					if($(this).val() == other_data[1] && $(this).attr("checked"))
					{
						// alert($(this).val());
						
						// the 'other' check box is checked and the other field i empty: error
						$('#' + $(this_field).attr('id') + '_error').html('&darr; You must specify an answer &darr;');

						$('#' + $(this_field).attr('id') + '_error').show();
						
						validation_error_cnt++;
					}
					
				});
			}
			else
			{
				
				$(this_field + '_error').html('&darr; This field can not be empty &darr;');

				$(this_field + '_error').show();
				
				validation_error_cnt++;
			}
		}
	}
	
	if(validation_error_cnt > 0)
	{
		alert("You must fill out all the required fields!");
	}
	else
	// validation ok
	{
		if (document.getElementById('useragreement_accept_' + form).checked == true)
		{
			window.location = "/pdf/"+form+"/"+sessionid;
			
      // unhide hidden forms if this is aai form
      if(form == 'accountactivity')
      {
        showForms();
        
        // close aai form
        $('.form5').slideToggle('fast');
        
        // open requested form
        // alert(">>" + $('[name=serv_app]:checked').val());
        
        switch($('[name=serv_app]:checked').val())
        {
          case 'Account Opening: Individual':
            $('.form1').slideToggle('fast');
            break;
          case 'Account Opening: Joint':
            $('.form2').slideToggle('fast');
            break;
          case 'Account Opening: Corporate':
            $('.form3').slideToggle('fast');
            break;
          case 'Account Opening: Trust':
            $('.form4').slideToggle('fast');
            break;
          case 'Internet Banking Service':
            $('.form6').slideToggle('fast');
            break;
          case 'Credit Card Application: Individual':
            $('.form7').slideToggle('fast');
            break;
          case 'Credit Card Application: Corporate':
            $('.form10').slideToggle('fast');
            break;
          case 'gkard':
            $('.form8').slideToggle('fast');
            break;
          case 'Additional Services Required':
            $('.form9').slideToggle('fast');
            break;
        }
      }
		}
		else
		{
			alert('Please agree to the terms and conditions!');
		}
	}
}

function GetXmlHttpObject()
{
	var xmlHttp=null;

	try
  	{
  		xmlHttp=new XMLHttpRequest();
  	}
	catch (e)
  	{
  		try
    	{
    		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    	}
  		catch (e)
	    {
    		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    	}
  	}
	
	return xmlHttp;
}

/*
  Unhide forms if aai form filled in this session
*/
function showForms()
{
  // show all forms
  $('form').show();
  
  // hide all notices
  $('.aaiNotice').hide();
}
