var oldTarget = 'general';
var baseUrl = 'http://www.playstationweb.de/abholung';

function counting( n ) 
{
	var l = n.value.length;
	if( l > 380 )
	{
		n.value = n.value.substr(0,380);
	}
	else
	{
		jQuery('#'+n.id+'_counter').attr( 'value', (380 - l).toString() );
	}
}

function checkNextLastPageButtons()
{
	var nextButtons = jQuery('.next-page-button');
	if( window.currentPage < window.maxPage )
		nextButtons.show();
	else
		nextButtons.hide();
	
	var lastButtons = jQuery('.last-page-button');
	if( window.currentPage > 1 )
		lastButtons.show();
	else
		lastButtons.hide();
}

function showErrorRow( level, pid )
{
	jQuery('.error-choice:gt('+(level-2)+')').remove();
	
	var choices = window.errorChoices[level];
	var realValues = new Array();
	
	for( var key in choices )
	{
		c = choices[key];
		if( c.pid == pid )
		{
			realValues.push( c );
		}
	}
	
	if( realValues.length > 0 )
	{
		var output = '<select class="error-choice" name="error_'+level+'" id="'+level+'" onchange="showErrorRow( parseInt(this.id)+1, this.value )"  ><option value="" selected="selected">--Bitte auswählen--</option>';
		for( var key in realValues )
		{
			v = realValues[key];
			output += '<option value="'+v.id+'">'+v.text+'</option>';
		}
		output += '</select><br/>'
		
		jQuery( '#error-choices' ).append( output );
	}
}

function checkDateNoWarranty()
{
	jQuery('#purchase-date-result').html('Garantiezeitraum abgelaufen.');
	jQuery('#nonwarranty-indoctrination').slideDown();
}

function checkDateWarranty()
{
	jQuery('#purchase-date-result').html('Sie haben noch Garantie.');
	jQuery('#nonwarranty-indoctrination').slideUp();
}

function checkDate()
{
	var now = new Date();
	var parts = this.value.split('.');
	parts[0] = parseInt( parts[0], 10 );
	parts[1] = parseInt( parts[1], 10 );
	parts[2] = parseInt( parts[2], 10 ) + 1;
	
	if( parts[2] > now.getFullYear()  )
	{
		checkDateWarranty();
	}
	else if( parts[2] == now.getFullYear() )
	{
		if( parts[1] > (now.getMonth()+1) )
		{
			checkDateWarranty();
		}
		else if( parts[1] == (now.getMonth()+1) )
		{
			if( parts[0] > now.getDate() )
			{
				checkDateWarranty();
			}
			else
			{
				checkDateNoWarranty();
			}
		}
		else
		{
			checkDateNoWarranty();
		}
	}
	else
	{
		checkDateNoWarranty();
	}
}

jQuery(document).ready(
	function()
	{	
		window.currentPage = 1;
		window.maxPage = 5;
		
		jQuery("a.fancybox").fancybox( {
			transitionIn:'elastic',
			transitionOut:'elastic',
			autoDimensions: 'false',
			width: 850,
			height: 'auto'				
		} );

		jQuery('.counter').keyup( function() { return counting( this ); } );

		$.datepicker.setDefaults($.datepicker.regional['de']);
		
		jQuery("#Kaufdatum").datepicker( {
			dateFormat: 'dd.mm.yy',
			onSelect: checkDate
		} );
		
		jQuery("#Abholdatum").datepicker( {
			dateFormat: 'dd.mm.yy'
		} );
		
		document.getElementById('Kaufdatum').onblur = checkDate;
		
		/*jQuery('#Kaufdatum').blur(
			function()
			{
				var myDate = this.value;
				alert( myDate );
				monthsBetween( new Date(), new Date() );
			}
		);*/
		
		jQuery("#Seriennummer").blur(
				function()
				{
					jQuery.getJSON( baseUrl + '/check_serial.php?serial='+this.value+'&system='+escape(window.currentSystem),
							function( result )
							{
								if( result.error )
								{
									jQuery("#model-number-dump").html( '<span class="input-error">'+result.desc+'</span>' );
								}
								else
								{
									jQuery('#seriennummer_container .input-error').remove();
									jQuery("#model-number-dump").html( result.desc );
									
									
									jQuery('#zubehoer-container').load(baseUrl+'/zubehoer.php',{'sid':result.sid});
									jQuery('#hidden-form-fields').html('<input type="hidden" name="sid" value="'+result.sid+'" />');
								}
							}
					);
				}
		);
		
		jQuery('#ZubehoerFremd').change(
			function()
			{
				var leng = jQuery('#ZubehoerFremd').val().length;
				if(leng >= 1000)
				{
					jQuery('#ZubehoerFremd').val((jQuery('#ZubehoerFremd').val()).substring(0,999));
					jQuery('#ZubehoerFremd_counter').val(0);
				}else{
					jQuery('#ZubehoerFremd_counter').val((1000-leng));
				}
			}
		)
		
		$('#ZubehoerFremd').keydown(function(event){jQuery('#ZubehoerFremd').change();});
		$('#ZubehoerFremd').keyup(function(event){jQuery('#ZubehoerFremd').change();});
		
		
		jQuery('#FehlerText').change(
			function()
			{
				var leng = jQuery('#FehlerText').val().length;
				if(leng >= 1000)
				{
					jQuery('#FehlerText').val((jQuery('#FehlerText').val()).substring(0,999));
					jQuery('#FehlerText_counter').val(0);
				}else{
					jQuery('#FehlerText_counter').val((1000-leng));
				}
			}
		)
		
		$('#FehlerText').keydown(function(event){jQuery('#FehlerText').change();});
		$('#FehlerText').keyup(function(event){jQuery('#FehlerText').change();});
		
		jQuery("a.systemlink").click(
			function()
			{
				var target = this.id;
				var systems = ['ps3','ps2','psp'];
				for( var i in systems )
				{
					if( systems[i] == target )
					{
						window.currentSystem = systems[i];
						jQuery('#system-form-field').html( '<input type="hidden" name="system" value="'+escape( window.currentSystem )+'" />');
						jQuery('.'+systems[i]).show();
					}
					else
						jQuery('.'+systems[i]).hide();
				}
				
				jQuery('#thank-form').hide();
				jQuery("#doubleColumn").slideUp(
					function()
					{
						//Remove old text
						jQuery('div.freestyleContent div.'+oldTarget).hide();
						oldTarget = target;
						//Show correct text
						jQuery('div.freestyleContent div.'+target ).show();
						
						jQuery("#ps3-support-formular").show();
						jQuery("#doubleColumn").slideDown();
						
						jQuery('#ps3-support-formular-page1').show();
						jQuery('#ps3-support-formular-page2').hide();
						jQuery('#ps3-support-formular-page3').hide();
						jQuery('#ps3-support-formular-page4').hide();
						jQuery('#ps3-support-formular-page5').hide();
						
						currentPage = 1;
						checkNextLastPageButtons();
					}
				);
				
				return false;
			}
		);
		
		jQuery('.next-page-button').click( function() {
			var currentPage = window.currentPage;
			
			var supportForm = jQuery('#support-form');
			var data = supportForm.serialize();
			jQuery.getJSON( baseUrl + '/check_page_'+currentPage+'.php', data, 
					function( result )
					{
						jQuery('.input-error').remove();
						if( result != null )
						{
							var all_ok = true;
							for( var key in result )
							{
								if( result[key].error )
								{
									all_ok = false;
									jQuery( '#'+key ).parent().append( '<div class="input-error" style="display:none">'+result[key].message+'</error>' );
								}
							}
							jQuery('.input-error').fadeIn();
							
							if( all_ok && currentPage < window.maxPage )
							{
								currentPage++;
								jQuery('#ps3-support-formular-page'+window.currentPage).fadeOut( 'fast', function() {
									jQuery('#ps3-support-formular-page'+currentPage).fadeIn('fast');
									window.currentPage = currentPage;
									if( currentPage >= window.maxPage )
									{
										jQuery('#ps3-support-formular-page'+currentPage).load( baseUrl + '/pages/summary.php', data,
												function(responseText, textStatus)
												{
													checkNextLastPageButtons();
													jQuery( '.last-page-button').click( function() {
														var currentPage = window.currentPage;
														if( currentPage > 1 )
														{
															currentPage--;
															jQuery('#ps3-support-formular-page'+window.currentPage).fadeOut( 'fast', function() { jQuery('#ps3-support-formular-page'+currentPage).fadeIn('fast'); } );
															
															window.currentPage = currentPage;
															checkNextLastPageButtons();
														}
													} );
												}
										);	
									}
									else
									{
										checkNextLastPageButtons();
									}
								} );
							}
						}
						else
						{
							jQuery( '.next-page-button' ).parent().append( '<div class="input-error">Fehler beim überprüfen der Daten</div>' );
						}
					}
			);
		} );	
		
		jQuery( '.last-page-button').click( function() {
			var currentPage = window.currentPage;
			if( currentPage > 1 )
			{
				currentPage--;
				jQuery('#ps3-support-formular-page'+window.currentPage).fadeOut( 'fast', function() { jQuery('#ps3-support-formular-page'+currentPage).fadeIn('fast'); } );
				
				window.currentPage = currentPage;
				checkNextLastPageButtons();
			}
		} );
		
		showErrorRow( 1, null );
		
		checkNextLastPageButtons();
		
		var supportForm = jQuery('#support-form');
		supportForm.submit( function() {
			var data = supportForm.serialize();
			jQuery.post(baseUrl+'/postdata.php', data,
					function( result )
					{
						jQuery('.input-error').remove();
						var all_ok = true;
						for( var key in result )
						{
							if( result[key].error )
							{
								all_ok = false;
								jQuery( '#'+key ).parent().append( '<div class="input-error">'+escape(result[key].message)+'</div>' );
							}
						}
						
						if( all_ok )
						{
							jQuery( '#ps3-support-formular').fadeOut('fast',function() {
								jQuery( '#thank-form').fadeIn('fast');
							} );
							
							jQuery( '.empty-after' ).attr('value','');
							jQuery( '.empty-area' ).each( function() { this.value = ''; } );
							jQuery('.empty-selected').each( function() { this.checked = false; } );
							jQuery( '#error-choices' ).empty();
							showErrorRow( 1, null );
							jQuery( '#model-number-dump' ).html( '' );
							jQuery( '#zubehoer-container' ).html( '' );
							
						}
					}
			);
			return false;
		} );
	}
);
