/**
 * @author Marceli
 */
jQuery(document).ready(function()
{
 jQuery('#captcha').keyup(function()
  {
   document.getElementById('captcha').style.border = '1px solid #000';
   document.getElementById('captcha').style.background = '#ffffff';

   check_captcha();
  });

try {
	jQuery('#boats_search_button').click(function()
	{
		jQuery('div.error_search_msg').fadeOut()
	    var date_from = jQuery('#date_from').val();
		var date_to = jQuery('#date_to').val();
		var error_txt = "";
		if(!ValidateDate( date_from,date_to )&&date_to.length)
			error_txt = "Data wypłynięcia 'od' jest większa od daty wypływnięcia 'do'"
		
		if(error_txt.length > 0)
		{
			jQuery('div.error_search_msg').fadeIn().html(error_txt);
			return false;
		}
		else
			return true;	
	});
} catch(err) {}
	jQuery('input.cal').datepicker({ dateFormat: 'yy-mm-dd' });
	jQuery("#tabs").tabs();
	try
 	 {
	  jQuery("a[rel='pic']").colorbox({transition:"fade"});
	 } catch(err) {} 
	var current = GetCurrentCurrency();
	jQuery('#currency li a').each(function()
	{
		if(jQuery(this).html() == current)
			jQuery(this).addClass('selected')
	});
	
	
	
	var options = { 
        target:        'div.info_error',   // target element(s) to be updated with server response 
        beforeSubmit:  ValidateForm,
		success:       showResponse,
		url:  '/ecco/boats.php?action=sendReq' ,
		clearForm: true,
		resetForm: true
    }; 
 
    // bind to the form's submit event 
    jQuery('#reservation_form').submit(function() { 
        jQuery(this).ajaxSubmit(options); 
        return false; 
    }); 
	ReservationMap();
	jQuery('#currency ul li a').click(function()
	{
		ClearCurrency();
		jQuery(this).addClass('selected');
		if (jQuery('div.results').length) 
			CalculateTripsPrice();
		else {
			if(GetSelectedCurrency() != jQuery('div.current_price span').html())
				jQuery('div.current_price').fadeIn();
			else
				jQuery('div.current_price').fadeOut();
			GetRatio();
		}
		return false;
	});
});
function GetSelectedCheckbox()
{
	var i = 0;
	var checked = 0;
	jQuery('#tabs-5 input:checkbox').each(function()
	{
		i++;
		if (jQuery(this).attr('checked')) 
			checked = i-1;
	});
	return checked ? checked : 0;
}
function UncheckedAll()
{
	jQuery('#tabs-5 input:checkbox').each(function()
	{
		jQuery(this).attr('checked',false);
	});
}
function ClearCurrency()
{
	jQuery('#currency li a').each(function(){
		jQuery(this).removeClass('selected');
	});
}

function check_captcha()
{
	var submission = document.getElementById('captcha').value;
	try { document.getElementById('send_reservation').disabled=false; } catch(err) {}
	
	var url = '/captcha/process2.php';
	var wynik=ajax_it(url,submission,mcb);
	return wynik;
}

function mcb(resp)
 {
  if(resp['STATUS']=='1') 
   {
	document.getElementById('captcha').style.border = '1px solid #49c24f';
	document.getElementById('captcha').style.background = '#bcffbf';
	try { document.getElementById('send_reservation').disabled=false; } catch(err) {}
   }
  else
   {
	try { document.getElementById('send_reservation').disabled=true; } catch(err) {}
	document.getElementById('captcha').style.border = '1px solid #c24949';
	document.getElementById('captcha').style.background = '#ffbcbc';
   }
 }

function ajax_it(plik_php,param,callback) {
	var param_json=param;
	jQuery.ajax({
		url : plik_php,
		type : 'post',
		dataType : 'json',
		data : 'captcha='+param_json,
		success : callback,
		error : callback
	});

}


function ValidateForm(formData, jqForm, options)
{
		var error = 0;
		jQuery('div.info_error').fadeOut();
		jQuery('input[class*=req]').removeClass('red');
		jQuery('input[class*=req]').each(function()
		{		
			if (trim(jQuery(this).val()).length == 0) 
			{
				jQuery(this).addClass('red');
				jQuery('div.info_error').html('Proszę o prawidłowe uzupełnienie pól zaznaczonych na czerwono.').fadeIn('slow');
				error = 1;
			}
		});

		var selected = 0;

		jQuery('input[class*=req2]').each(function()
		{		
		if(jQuery(this).attr('checked'))
			selected = 1;
		});

		if (!selected) {
		 alert('Musisz wybrać chociaż jeden rodzaj kabiny.');
		 error=1;
		}

		selected = 0;
		jQuery('input[class*=req3]').each(function()
		{		
		if(jQuery(this).attr('checked'))
			selected = 1;
		});

		if (!selected) {
		 alert('Musisz zapoznac sie z zasadami rezerwacji i swiadczenia uslug przez Asiandivers');
		 error=1;
		}

		FormPrepare(formData, jqForm, options);
		if(!error)
		{
			jQuery('#tabs').block({ 
                message: '<p>Wysyłanie danych</h1>', 
                css: { 
			            border: 'none', 
			            padding: '15px', 
			            backgroundColor: '#000', 
			            '-webkit-border-radius': '10px', 
			            '-moz-border-radius': '10px', 
			            opacity: .8, 
			            color: '#fff' 
        		},
				overlayCSS:  { 
			        backgroundColor: '#000', 
			        opacity:         0.1
			    }
            });
		}
		return (error) ? false : true;
	
}
function FormPrepare(formData, jqForm, options)
{
	var rv = jQuery('#reservation_part').html();
	if(rv.length<20)
	{
	 try
	  {
	   boat_name = jQuery('#boat_view h2').html();
	  } catch (err) { }
 	}
	else
	{

	tab_first = jQuery('#reservation_part').find('table:eq(0)');
	tab_second = jQuery('#reservation_part').find('table:eq(1)');
	boat_name = jQuery('#boat_view h2').html();
	var cabin_kind;
	var cabin_price
	jQuery(':checkbox',tab_second).each(function()
	{
		if (jQuery(this).attr('checked')) 
		{
			cabin_kind = jQuery(this).parent().next().html();	
			cabin_price = jQuery(this).parent().next().next().html();
		}
		
	});

	tr_first = tab_first.find('tr:eq(0)');
	tr_second = tab_first.find('tr:eq(1)');
	tr_third = tab_first.find('tr:eq(2)');
	var wyplywa = tr_first.find('td:eq(1)').html();
	var czas = tr_first.find('td:eq(3)').html();
	var wraca = tr_second.find('td:eq(1)').html();
	var cel = tr_second.find('td:eq(3)').html();
	var trasa = tr_third.find('td:eq(1)').html();

	try { wyplywa=document.getElementById('r_wyplywa').innerHTML; } catch(err) { }
	try { czas=document.getElementById('r_czas').innerHTML; } catch(err) { }
	try { wraca=document.getElementById('r_wraca').innerHTML; } catch(err) { }
	try { cel=document.getElementById('r_kraj').innerHTML; } catch(err) { }
	try { trasa=document.getElementById('r_trasa').innerHTML; } catch(err) { }

	formData.push({name:'primary_data',value:wyplywa+';'+czas+';'+wraca+';'+cel+';'+trasa+';'+cabin_kind+';'+cabin_price+';'+boat_name});
     }
}
function showResponse(responseText, statusText) 
{
	 jQuery('div.info_error').attr('class','info_good').fadeIn().html(responseText);
	 jQuery('#tabs').unblock(); 
}
function GetRatio()
{
   var current = GetCurrentCurrency();
   var selected = GetSelectedCurrency();
   var cruise_id = jQuery('#cruise_id').val();

   jQuery('#tabs').block({ 
                message: '<p>Aktualizacja cen po zmianie waluty...</h1>', 
				centerY: 0,
                css: { 
			            border: 'none', 
			            padding: '15px', 
			            backgroundColor: '#000', 
			            '-webkit-border-radius': '10px', 
			            '-moz-border-radius': '10px', 
			            opacity: .8, 
			            color: '#fff',
						top: '40px' 
        		},
				overlayCSS:  { 
			        backgroundColor: '#000', 
			        opacity:         0.1
			    }
            }); 

	jQuery('td.current_price').load('boats.php?action=getSelectedTrip&cruise_id='+cruise_id+'&selected='+selected);
	var selected_check = GetSelectedCheckbox();
	
    jQuery('#tabs-5').load('boats.php?action=getCalendar&cruise_id='+cruise_id+'&selected='+selected,function()
	{
   		jQuery('#tabs').unblock(); 
		ReservationMap();
		if(parseInt(selected_check))
			jQuery('#tabs :checkbox:eq('+selected_check+')').attr('checked',true);
		
    });
}
function CalculateTripsPrice()
{
   var current = GetCurrentCurrency();
   var selected = GetSelectedCurrency();
   jQuery('div.results').block({ 
                message: '<p>Aktualizacja cen po zmianie waluty...</h1>', 
				centerY: 0,
                css: { 
			            border: 'none', 
			            padding: '15px',
			            backgroundColor: '#000', 
			            '-webkit-border-radius': '10px', 
			            '-moz-border-radius': '10px', 
			            opacity: .8, 
			            color: '#fff',
						top: '40px' 
        		},
				overlayCSS:  { 
			        backgroundColor: '#000', 
			        opacity:         0.1
			    }
            });
	var value_string = SearchFormValueString();
	jQuery('div.results').load('boats.php?action=searchCurrChange&selected='+selected+value_string,function(){
		jQuery('div.results').unblock(); 
	});
}
function SearchFormValueString()
{
	var value_string = "";
	jQuery('#search :input').each(function(){
		value_string += "&"+jQuery(this).attr('id')+"="+jQuery(this).val();
	});
	var from = jQuery('span.current').html();
	value_string += "&from="+from;
	return value_string;
}
function GetCurrentCurrency()
{
	if (jQuery('td.hidden_prices:first').html()) 
	{
		var parts = jQuery('td.hidden_prices:first').html().split(' ');
		var currency_default = parts[1];
		return currency_default;
	}
}
function GetSelectedCurrency()
{
	var selected_currency = jQuery('#currency li a[class*=selected]').html();
	return selected_currency;
}
function ReservationMap()
{
	jQuery('input.boat_reserve').click(function(){
	var element = jQuery(this);
	var selected = 0;
	var main_element = element.parent().parent().parent().parent().parent().parent();
	jQuery(':checkbox',main_element).each(function()
	{
		if(jQuery(this).attr('checked'))
			selected = 1;
	})
	if (selected) {
		jQuery('tr:eq(3)', main_element).remove();
		jQuery("#tabs").tabs('select', 0);
		jQuery('#reservation_part').html(main_element);
		jQuery('#reservation_boat_form').show();
		
	}
	else
		alert('Musisz wybrać chociaż jeden rodzaj kabiny.');
	
});
}
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+jQuery", "g"), "");
}
