var objSite = {};
objSite.currentId = "";
objSite.passedFieldsets = new Array();

objSite.submitForm = function( curFieldset, nextFieldset, booSubmit, intMaxSteps )
{
	$('.validationError').remove();
	var inputs={};
	var input_values 	= objSite.get_form_values( curFieldset, inputs );
	var validate_url 	= $( "#visaForm #script_location" ).val()+"/scripts/validate-form.php";
	
	$.post(validate_url,input_values,
		function(data){	
			data = $.evalJSON( data );
			
			if( data.status == 'failed' ){
				$(".form-note").addClass( 'failed' ).html( 'Fields marked * are required' );
				var arrIds = data.message.split('#');
				
				for( var i=1; i<arrIds.length; i++ ){
					$( "#"+curFieldset+ " #"+arrIds[i]+"_label" ).prepend( '<span class="validationError">*</span> ' );
				}
			}
			else{
				objSite.setBreadcrumb( objSite.passedFieldsets.length+1 );
				objSite.disableBreadcrumbElements( intMaxSteps );
				
				
				if( !booSubmit ){
					if( curFieldset == "fieldset1" )
						$("#intro").css( 'display', 'none' );
					
					objSite.passedFieldsets.push( curFieldset );
					
					$(".form-note").removeClass( 'failed' ).html( 'All fields are required' );
					
					// set my fieldset classes
					$( '#'+curFieldset ).attr( 'class', 'inactive');
					$( '#'+nextFieldset ).attr( 'class', 'active');
					
					//set my breadcrumb classes
					$( '.'+curFieldset ).removeClass( 'active').addClass( 'completed' );
					$( '.'+nextFieldset ).addClass( 'completed' );
				}
				else{
					objSite.passedFieldsets.push( curFieldset );	
					
					var inputs={};
					
					for( var i=0; i<objSite.passedFieldsets.length; i++ ){
						inputs = objSite.get_form_values( objSite.passedFieldsets[i], inputs )
					}
					
					inputs['email_title'] = $( "#visaForm #email_title" ).val();
					inputs['email_prepend'] = $( "#visaForm #email_prepend" ).val();
					
					objSite.sendEmail( inputs );
					//window.location.replace("http://www.bonheuroutsourcing.com/your-form-has-been-submitted/");
				}
			}
		}
	);
}

objSite.sendEmail = function( objInputs ){
	var email_url = $( "#visaForm #script_location" ).val()+"/scripts/email-form.php";
	
	$.post(email_url,objInputs,
		function(data){	
			data = $.evalJSON( data );
			
			if( data.status == 'success' )
				window.location.replace( $( "#success_page" ).val() );
			
		}
	);
}

objSite.get_form_values = function(form_id, inputs){
	var selected_countries =new Array();
	var multiName = "";
	
	$('#'+form_id+' :input').each(function(i,n){
		switch (n.type){				
			case "checkbox":	
				if(n.checked){
					inputs[n.name]='y';
				}
				else{
					inputs[n.name]='n';
				}						
				break;
			case "radio":
				if(n.checked){
					inputs[n.name]=n.value;
				}						
				break;
			case "select-multiple":
				//get selected values
				var selected_values =new Array();
				var selected_indexes =new Array();					
				while(n.selectedIndex!=-1){							
					selected_indexes.push(n.selectedIndex);
					selected_values.push(n.options[n.selectedIndex].value);							
					n.options[n.selectedIndex].selected = false;							
				}
				//reset indexes
				for(var c=0;c<selected_indexes.length ;c++){
					n.options[selected_indexes[c]].selected = true;
				}						
				inputs[n.name]=selected_values;			
				break;	
			default :
				if( n.className.match('multiple') != null ){
					multiName = "country_visa_required";				
					selected_countries+="#"+n.value;
				}
				else{
					if( n.value != 'Please select...' )
						inputs[n.name]=n.value;	
				}
					break;									
		}				
	});
	
	
	
	if( selected_countries.length > 0){
		inputs[multiName] = selected_countries;
	}
	
	return inputs;	
}

objSite.getLastFieldset = function( ){
	
	var intLastIndex = objSite.passedFieldsets.length-1;
	var strLastFieldset = objSite.passedFieldsets[ intLastIndex ];
	
	objSite.passedFieldsets.splice( intLastIndex, 1 );
	
	objSite.setBreadcrumb( objSite.passedFieldsets.length );
	
	return strLastFieldset;
}

objSite.getLastFieldsetOnly = function( ){
	
	var intLastIndex = objSite.passedFieldsets.length-1;
	var strLastFieldset = objSite.passedFieldsets[ intLastIndex ];
	
	return strLastFieldset;
}

objSite.disableBreadcrumbElements = function( intMaxSteps ){
	//console.log( 'disableBreadcrumbElements :: ' + intMaxSteps );
	$( "#form-breadcrumb li" ).removeClass( 'disable' );
	
	if( intMaxSteps != null || intMaxSteps != $( "#form-breadcrumb li" ).length ){
		$( "#form-breadcrumb li" ).each( function( i, n ){
			if( i >= intMaxSteps )
				$( this ).addClass( 'disable' );
			
		});
	}
}

objSite.setBreadcrumb = function( intAmount ){
	$( "#form-breadcrumb li" ).removeClass( 'active' );
	
	$( "#form-breadcrumb li" ).each( function( i, n ){
		$( this ).removeClass( 'active' );
			
			
		if( i == intAmount ){
			$( this ).addClass( 'active' );
			return false;
		}
		else
			$( this ).addClass( 'complete' );
			
	});
}
