var swfu;
var cities = [];
var lastCountry = {"from": "", "to": ""};
var lastCity = {"from": "0", "to": "0"};
var allowedFromDates = [];
var allowedToDates = [];
var curFromDate = new Date();
var defaultHeader = 'default';

function setupIcon(item)
{
	if ($(item).hasClass('icon-print')) return;

  var part = $(item).attr('href').split('/');
  var file = part[part.length-1];
  
  var f = file.split(".");
  var ext = f[f.length-1].toLowerCase();
  
  switch(ext)
  {
  	case 'bmp':
    case 'png':
    case 'gif':
    case 'jpg':
    case 'jpeg':
      ext = 'img';
    break;
    default:
      ext = ext;
    break;
  }
  
  $(item).addClass("icon-" + ext);
}

$(function(){
  $('.check_all').click(function(){
    var $checked = $(this).hasClass('checked');

    $('.gallery input:checkbox').each(function(){
      $(this).attr('checked', !$checked);
    });

    $(this).toggleClass('checked');

    return false;
  });
	
	$(".icons a[href]").each(function(i, item){
		setupIcon(item);
	});
	
	$("a.icon[href]").each(function(i, item){
    setupIcon(item);
	});
	
	$container = $('#container'); 
	$container.height($(document.body).height()-$('#header').height()-$('#line').height());
  $('#left').height($container.height()-30);
	$('#right').height($container.height()-30);
	$('#center').height($container.height()-30);
	
	findDefaultHeader();
	
	$areas = $('#headermap area');
	
	$areas.mouseover(function(){
		
			if (this.href.indexOf('tourism') != -1)
			{
				if (defaultHeader == 'default')
        {
        	changeHeader('tourism');
        }
        else if (defaultHeader != 'tourism')
        {
        	changeHeader('full');
        }
			}
			else
			{
				if (defaultHeader == 'default')
        {
          changeHeader('transport');
        }
        else if (defaultHeader != 'transport')
        {
          changeHeader('full');
        }
			}
	});
	
	$areas.mouseout(function(){
		changeHeader(defaultHeader);
	});
});

function toggleLang(id, lang, fixLangTextArea)
{
  $('div#langfields_' + id + ' > div.fields > .text').addClass('hidden');
  $('div#langfields_' + id + ' > div.fields > #' + id + '_' + lang).removeClass('hidden');

  if (fixLangTextArea === true) NFFix();

  $('#langlabels_' + id + ' > .text').addClass('hidden');
  $('#langlabels_' + id + ' > #' + id + '_label_' + lang).removeClass('hidden');
  
  $('div#langfields_' + id + ' > div.langs > a').removeClass('selected');
  $('div#langfields_' + id + ' > div.langs > a#lang_' + id + '_' + lang).addClass('selected').blur();
  
  return false;
}

function findDefaultHeader()
{
	var parts = $('#header_img').attr('src').split('/');
	var file = parts[parts.length - 1];
	
	defaultHeader = file.substring(7, file.lastIndexOf('.'));
}

function changeHeader(what)
{
	$('#header_img').attr('src', baseUrl + '/images/layout/header_' + what + '.jpg');
}

function toggleGoogleLang()
{
  var val = $('#google_translate').val();

  if (val)
    document.location.href = "http://translate.google.com/translate?hl=uk&u=" + document.location + val;
  else return false;

  return true;
}

function toggleToDate()
{
  var valu = $('input[name="OrderForm[side]"]:radio:checked').val();
  
  if (valu == "2")
    $('#todate_dl').show();
  else
    $('#todate_dl').hide();

  NFFix();
  blockDates();

  return false;
}

function fixLangTextArea()
{
  $(".chidden").each(function(i, item){
    $(this).addClass('hidden').removeClass('chidden');
  });
  
  return false;
}

function fillCities(CountryId, what)
{
	if (!isNaN(CountryId) && CountryId != lastCountry[what] && cities)
	{
		$('select[name="OrderForm[' + what + 'location]"] option[value!=""]').remove();
		
		if (CountryId != 0)
		{
			$dropCity = $('select[name="OrderForm[' + what + 'location]"]');
    
	    if (cities[CountryId])
	    {
	      for (var i=0; i<cities[CountryId].length; i++)
	      {
	        $dropCity.append('<option value="' + cities[CountryId][i].id +'">' + cities[CountryId][i].name + '</option>');
	      }
	    }
		}
		
		lastCountry[what] = CountryId;
		
		NFFix();
	}
	
	return true;
}

function checkFromDate(date)
{
	if (Date() > date)
	{
		return [false, ''];
	}
	else
	{
		var d = parseInt(date.getDate());
		var m = parseInt(date.getMonth()) + 1;
		return [allowedFromDates[(d < 10 ? "0" : "") + d + '.' + (m < 10 ? "0" : "") + m], ''];
	}
}

function checkToDate(date)
{
	if (Date() > date)
  {
    return [false, ''];
  }
  else
  {
    var d = parseInt(date.getDate());
    var m = parseInt(date.getMonth()) + 1;
    return [allowedToDates[(d < 10 ? "0" : "") + d + '.' + (m < 10 ? "0" : "") + m], ''];
  }
}

function blockDates()
{
	var fromCity = $('select[name="OrderForm[fromlocation]"]').val();
	var toCity = $('select[name="OrderForm[tolocation]"]').val();
	var side = $('input[name="OrderForm[side]"]:radio:checked').val();
	var parts = $('input[name="OrderForm[type]"]:radio:checked').val().split('_');
	var discount = parseFloat(parts[1]);
	
	if (fromCity && toCity && (lastCity['from'] != fromCity || lastCity['to'] != toCity))
	{
		$.getJSON(baseUrl + "/transport/index/dates/",
		{"from": fromCity, "to": toCity, "side": side},
		function(data){
		  allowedFromDates = [];
		  allowedToDates = [];
		  
		  try
		  {
		  	for (i=0; i<data.from.length; i++)
		  	{
		  		var p = $.trim(data.from[i]).split('.');
		  		var d = parseInt(p[0]);
		  		var m = parseInt(p[1]);
		  		
		  		allowedFromDates[(d < 10 ? "0" : "") + d + '.' + (m < 10 ? "0" : "") + m] = true;
		  	}
		  }
		  catch(e)
		  {
		  	
		  }
		  
		  try
		  {
		  	for (i=0; i<data.to.length; i++)
        {
        	var p = $.trim(data.to[i]).split('.');
          var d = parseInt(p[0]);
          var m = parseInt(p[1]);
          allowedToDates[(d < 10 ? "0" : "") + d + '.' + (m < 10 ? "0" : "") + m] = true;
        }
		  }
		  catch(e)
		  {
		  	
		  }
		  
		  var discountprice = Math.floor(parseFloat(data.price) * (100 - discount)/100);
		  
		  $('input[name="OrderForm[price]"]').val(data.price);
		  $('input[name="OrderForm[discountprice]"]').val(discountprice + data.price[data.price.length-1]);
		});
	}
	
	return true;
}

function changePrice()
{
	var price = $('input[name="OrderForm[price]"]').val();
	
	if (price)
	{
		var parts = $('input[name="OrderForm[type]"]:radio:checked').val().split('_');
	  var discount = parseFloat(parts[1]);
	  var discountprice = Math.floor(parseFloat(price) * (100 - discount)/100);
	  
	  $('input[name="OrderForm[discountprice]"]').val(discountprice + price[price.length-1]);
	}
	
	return false;
}

$.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    $("<img>").attr("src", baseUrl + arguments[i]);
  }
}