$(function(){
	changeCurrency();
	$('.tabs .currency').change(function(){
		var currency = $(this).find('option:selected').attr('currency');
		changeCurrency(currency);
	});
	$('.generalFlatOut').add('.premiumFlat').click(function(e){
		window.location.href = $(this).find('h5 a').attr('href');
		return false;
	});
	$('#res_on_page').bind('change', set_items_on_page);
	$('#region div').click(function(e){
		filter_data('region', $(this).attr('id'), $(this).hasClass('cbox_active')?'remove':'set');
		$(this).hasClass('cbox_active')?$(this).attr('class', 'cbox_none'):$(this).attr('class', 'cbox_active');
	});
	$('#flatprice div').click(function(e){
		filter_data('flatprice', $(this).attr('id'), $(this).hasClass('cbox_active')?'remove':'set');
		$(this).hasClass('cbox_active')?$(this).attr('class', 'cbox_none'):$(this).attr('class', 'cbox_active');
	});
	$('#type div').click(function(e){
		filter_data('type', $(this).attr('id'), $(this).hasClass('cbox_active')?'remove':'set');
		$(this).hasClass('cbox_active')?$(this).attr('class', 'cbox_none'):$(this).attr('class', 'cbox_active'); 
	});
	$('#costclass div').click(function(e){
		filter_data('costclass', $(this).attr('id'), $(this).hasClass('cbox_active')?'remove':'set');
		$(this).hasClass('cbox_active')?$(this).attr('class', 'cbox_none'):$(this).attr('class', 'cbox_active');
	});
	$('#all_regions').click(function(e){
		filter_all('region');
	});
	$('#all_types').click(function(e){
        filter_all('type');
    });
	$('#all_costclasses').click(function(e){
        filter_all('costclass');
    });
	$('div.premiumFlatOut').hover(
	   function(){
	   	$(this).find('div.hoverFlat_top').css('visibility', 'visible').end().find('div.hoverFlat_bot').css('visibility', 'visible').end().find('div.premiumFlatMid').attr('class', 'hoverFlatMidPrem').end().find('div.premiumFlat').removeClass('premiumFlat').addClass('hoverPremiumFlat');
	   },
	   function(){
	   	$(this).find('div.hoverFlat_top').css('visibility', 'hidden').end().find('div.hoverFlat_bot').css('visibility', 'hidden').end().find('div.hoverFlatMidPrem').attr('class', 'premiumFlatMid').end().find('div.hoverPremiumFlat').removeClass('hoverPremiumFlat').addClass('premiumFlat');
	   }
	);
	$('div.generalFlatOut').hover(
	   function(){
	   	 $(this).attr('class', 'hoverFlatOut').find('div.hoverFlat_top').css('visibility', 'visible').end().find('div.hoverFlat_bot').css('visibility', 'visible').end().find('div.generalFlatMid').attr('class', 'hoverFlatMid').end().find('div.generalFlat').removeClass('generalFlat').addClass('hoverFlat');
	   },
	   function(){
	   	 $(this).attr('class', 'generalFlatOut').find('div.hoverFlat_top').css('visibility', 'hidden').end().find('div.hoverFlat_bot').css('visibility', 'hidden').end().find('div.hoverFlatMid').attr('class', 'generalFlatMid').end().find('div.hoverFlat').removeClass('hoverFlat').addClass('generalFlat');
	   });
});

function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function changeCurrency(currency){
	if(!currency){
		var from_cookies = getCookie('currency');
		if(from_cookies && from_cookies.length>0) currency = from_cookies;
		else currency = $('.tabs .currency option:selected').attr('currency');
		$('.tabs .currency option[currency="'+currency+'"]').attr('selected', 'selected');
	}
	$('#flatprice .ranges').hide();
	$('#flatprice .ranges[currency="'+currency+'"]').show();
	setCookie('currency', currency);
}

function filter_data(filter_type, filter_value, filter_action){
	$('#filters input').attr('disabled', true);
	$('#body').html('<div class = "loading"></div>');
	$.ajax({
		url: base_url + '/filter',
		type: 'GET',
		dataType: 'html',
		cache: false,
		data: {'type': filter_type, 'value': filter_value, 'action': filter_action},
		success: apply_filter,
		error: process_ajax_error
	});
}

function filter_all(filter_type){
	$('#'+filter_type+' div').attr('class', 'cbox_active');
	$('#body').html('<div class = "loading"></div>');
	$.ajax({
		url: base_url + '/filterall',
		type: 'GET',
		dataType: 'html',
		cache: false,
		success: apply_filter,
		error: process_ajax_error,
		data: {'type': filter_type}
	});
}

function apply_filter(data){
	$('#filters input').removeAttr('disabled');
	$('#body').html(data);
	$('#res_on_page').bind('change', set_items_on_page);
	$('div.premiumFlatOut').hover(
       function(){
        $(this).find('div.hoverFlat_top').css('visibility', 'visible').end().find('div.hoverFlat_bot').css('visibility', 'visible').end().find('div.premiumFlatMid').attr('class', 'hoverFlatMidPrem').end().find('div.premiumFlat').removeClass('premiumFlat').addClass('hoverPremiumFlat');
       },
       function(){
        $(this).find('div.hoverFlat_top').css('visibility', 'hidden').end().find('div.hoverFlat_bot').css('visibility', 'hidden').end().find('div.hoverFlatMidPrem').attr('class', 'premiumFlatMid').end().find('div.hoverPremiumFlat').removeClass('hoverPremiumFlat').addClass('premiumFlat');
       }
    );
    $('div.generalFlatOut').hover(
       function(){
         $(this).attr('class', 'hoverFlatOut').find('div.hoverFlat_top').css('visibility', 'visible').end().find('div.hoverFlat_bot').css('visibility', 'visible').end().find('div.generalFlatMid').attr('class', 'hoverFlatMid').end().find('div.generalFlat').removeClass('generalFlat').addClass('hoverFlat');
       },
       function(){
         $(this).attr('class', 'generalFlatOut').find('div.hoverFlat_top').css('visibility', 'hidden').end().find('div.hoverFlat_bot').css('visibility', 'hidden').end().find('div.hoverFlatMid').attr('class', 'generalFlatMid').end().find('div.hoverFlat').removeClass('hoverFlat').addClass('generalFlat');
       });
	$('.generalFlatOut').add('.premiumFlat').click(function(e){
        window.location.href = $(this).find('h5 a').attr('href');
        return false;
    });
	//correctPNG();
}

function process_ajax_error(request, status, error){
	$('#filters input').removeAttr('disabled');
	alert(ajax_error_message);
}

function validate_reservation_form(e){
	res = $('div.flatReservation form').validate({
		
		 showErrors: function(errorMap, errorList) {
                this.defaultShowErrors();
				$('label.error').addClass('advanced');
	     },
		 rules: {
                 "name": "required",
                 "contact_phone": "required",
                 "email":{required: false, email: true },
				 "arrival": "required",
                 "departure": "required"
         },
		 messages: {
                "name": required_msg,
                "contact_phone": required_msg,
                "email": email_incorrect_msg,
				"arrival": required_msg,
				"departure": required_msg
        }
	});
	if (!res.form()){
		return false;
	}
	else{
		$('#reservation').fadeTo('slow', 0.3);
		$('#reservation input').attr('readonly', true);
		$.ajax({
			url: base_url + '/makereservation',
			type: 'GET',
			dataType: 'xml',
			cache: false,
			error: process_ajax_error,
			data: {'name': $('#name').val(), 'phone': $('#contact_phone').val(),
			       'email': $('#email').val(), 'arrival': $('#arrival').val(),
				   'departure': $('#departure').val(), 'recipient': recipient,
				   'c_val': $('#captcha').val(), 'c_id': $('#captcha_code').val(),
				   'flat_id': current_flat, 'flat_address': flat_address
			      },
		    success: function(data){
				data = $(data).find('ajaxresponse');
				if (data.attr('status')=='bad_captcha'){
					captcha_id = data.find('captcha').attr('id');
					$('#captcha').val('');
					$('#figures').attr('src', base_url + '/captcha.png?id='+captcha_id);
					$('#captcha_code').val(captcha_id);
					$('<label for = "captcha" class = "error advanced">'+bad_captcha_msg+'</label>').insertAfter('#captcha');
				}
				else{
					$('#reservation').html(data.text());
				}
				
				$('#reservation').fadeTo('fast', 1.0);
				$('#reservation input').removeAttr('readonly');
			}
			
		});
	}
}
function set_items_on_page(e){
	$('#filters input').attr('disabled', true);
	$.ajax({
        url: base_url + '/setitemsonpage',
        type: 'GET',
        dataType: 'html',
        cache: false,
        success: apply_filter,
        error: process_ajax_error,
        data: {'value': $('#res_on_page').val()}
    });	
}

