$(document).ready(function() {
	setAjax();
})



function block_ui() {
	$.blockUI({
		message: '',
		showOverlay: true,
		overlayCSS:  { 
        backgroundColor: '#000', 
        opacity:0
    }
	});
}

function doGET(url,dest_el,curr_url) {
	block_ui();
	$('#curr_url').html(url);
	
	if(!url.match('language.php')) {
		$('#curr_dest').html($(dest_el).attr('id'));
	}
	var curr_dest = $('#curr_dest').html();

	$.ajax({
		url: url,
		type: 'GET',
		dataType: 'html',
		success: function(data) {
			
			if(url.match('language.php')) {
				$('body').hide()
//				$('body').html('<img src="/template/default/image/ajax-load.gif" />');
				$('#'+curr_dest).html(' ')
				$.ajax({
					url: 'index.php',
					type: 'GET',
					dataType: 'html',
					success: function (dat) {
						var el = document.getElementById(curr_dest)
						$('#'+curr_dest).html(' ')
						// ziskam obsah aktualnej stranky a prilepim ho
						curr_url = curr_url.replace('&amp;','&');
						$.ajax({
							url: curr_url,
							type: 'GET',
							dataType: 'html',
							success: function(dx) {
								$('body').html(dat);
								$('#'+curr_dest).html(dx)
								check_category(curr_url);
//								$('body').html(dat);
//								$('#'+curr_dest).html(dx)
								setAjax();
								$('#curr_dest').html(curr_dest)
								$('#curr_url').html(curr_url)
								$('body').show()
							}
						})

					}
				})
				
				
//				check_category(url);
//				set_html($('#div_flags'),data)
//				setAjax();
				//window.location.reload();
			}
			else {
				check_category(url);
				set_html($(dest_el),data)
				setAjax();
			}
			$.unblockUI();
		}
	});
}

function check_category(url) {
	var myRegExp = new RegExp(".*\.php");
	url = url.replace(myRegExp,'add_left_menu.php');
	url = url.replace('&amp;','&');
	$.ajax({
		url: url,
		type: 'GET',
		dataType: 'html',
		success: function(data) {
			if(url.match('language.php')) {
				window.location.reload();
			}
			else {
				set_html($("#div_left_menu"),data)
			}

		}
	});
}


function set_html(dest_el, data) {
	var con = $(dest_el).html()
	$(con).remove();
	$(dest_el).html(data);
	setAjax();
}

function setAjax() {
	var curr_url = false;
	var curr_dest = false;
	$('a').each(function(i){
		$(this).unbind();
		var url_link = $(this).attr('href');
		$(this).css('cursor','pointer')
		var current_url = '';
		
		var dest_el = get_destination_element($(this));
		if(dest_el == false) {

		}
		else {
			$(this).bind('click',function(){
				$(this).unbind();
				if(url_link.match('index.php')) {
					var myRegExp = new RegExp(".*\.php");
					url_link = url_link.replace(myRegExp,'index.ajax.php');
				}
				else if(url_link.match('language.php')) {
					curr_url = $('#curr_url').html();
				}
				doGET(url_link, dest_el,curr_url);
				return false;
			})
		}
	})
	
	// odoslanie formulara sutaze
	$('#form_sutaz').unbind();
	var options1 = { target: '#output' }; 
    $('#form_sutaz').submit(function() {
        $(this).ajaxSubmit(options1);
        return false; 
    });
	
    // odoslanie formuara dotaznika
    $('#form_dotaznik').unbind();
    var options2 = { target: '#td_main' }; 
    $('#form_dotaznik').submit(function() {
        $(this).ajaxSubmit(options2);
        return false; 
    });
    
    // odoslanie formulara vyhladavania
    $('#search_form').unbind();
    var options3 = { target: '#td_main_main', success: function(msg){
     setAjax();
   }
 }; 
    $('#search_form').submit(function() {
        $(this).ajaxSubmit(options3);
        return false; 
	});
    
	$(".sf-menu").superfish(); 
}


function get_destination_element(el) {
	
	if($(el).hasClass('url_dotaznik')) {
		var dest_el = $('#td_main');
	}
	else if($(el).hasClass('url_anketa')) {
		var dest_el = $('#div_anketa');	
	}
	else if($(el).hasClass('url_produkt')) {
		var dest_el = $('#td_main_main');
	}
	else if($(el).hasClass('form_sutaz')) {
		var dest_el = $('#td_sutaz');
	}
	else if($(el).hasClass('noajax')) {
		return false;
	}
	else if($(el).hasClass('lang_url')) {
		var dest_el = $('#div_flags')
	}
	else {
		var dest_el = $("#td_main_main");
		return false;
	}
	return dest_el;
}
