var InsJs = {
	requestBlock: false,
    toggleTop: function(prefix, num)
	{
		$('.item'+prefix+'Show:visible').each(function() {
			$('#'+this.id+'_').css('display', 'block');
			$('#'+prefix+'_'+num+'_').css('display', 'none');
			$(this).slideUp();
			$('#'+prefix+'_'+num).slideDown();
		});
		return false;
	},
	moveGallery: function(direction)
	{
		if ($('.onlyInCracowNaviLink').length > 3) {
			if (direction > 0) {
				$('.onlyInCracowNaviLink:last').css({width:0}).insertBefore('.onlyInCracowNaviLink:first').animate({width:'66px'}, 350);
			}
			else {
				if (parseInt($('.onlyInCracowNaviLink:first').css('width')) < 66) {
                    $('.onlyInCracowNaviLink:first').insertAfter('.onlyInCracowNaviLink:last');
                }
                $('.onlyInCracowNaviLink').each(function(num) {
                    if (num==0) {
                        $(this).animate({width:'0px'}, 350, null, function() {
                            $(this).insertAfter('.onlyInCracowNaviLink:last').css({width:'66px'});
                        });
                    }
                    else if(num==3) {
                        $(this).css({width:0}).animate({width:'66px'}, 350)
                    }
                });
			}
		}
		return false;
	},

	showTextParts : function (hideByClass,showById){
		$(hideByClass).each(function(){
			$(this).fadeOut("fast",function(){ $(showById).fadeIn("fast");});
			
		});
		//$(showById).fadeIn("fast");
		return false;
	},

	showHide: function(element)
	{
		if($(element).css('display')=='none'){
			$(element).css('display','block');
		}else{
			$(element).css('display','none');
		}
	},

    requestForm: function(form, resultDiv, loadingDiv, callback)
    {
        if (InsJs.requestBlock) {
            return false;
        }

        if (!loadingDiv) {
            loadingDiv = resultDiv;
        }
        if (!callback) {
            callback = function(){};
        }

        jQuery.ajax({
            url: $(form).attr('action'),
            type: $(form).attr('method'),
            data: $(form).serialize(),
            beforeSend  : function() {
                InsJs.requestBlock = true;
                $(loadingDiv).show().html('<div class="loading"></div>');
            },
            success: function(text) {
                InsJs.requestBlock = false;
                $(resultDiv).hide().html(text);
                $(resultDiv).fadeIn('fast');
                callback(text);
            }
        });
        return false;
    },

	requestUrl: function(a, resultDiv, loadingDiv, callback)
    {
        if (InsJs.requestBlock) {
            return false;
        }

        if (!loadingDiv) {
            loadingDiv = resultDiv;
        }
        if (!callback) {
            callback = function(){};
        }

		var url;
		if(typeof(a) == 'string'){
			url = a;
		}
		else{
			url = $(a).attr('href');
		}

        jQuery.ajax({
            url: url,
            type: 'GET',
            beforeSend  : function() {
                InsJs.requestBlock = true;
                $(loadingDiv).show().html('<div class="loading"></div>');
            },
            success: function(text) {
                InsJs.requestBlock = false;
                $(resultDiv).hide().html(text);
                $(resultDiv).fadeIn('fast');
                callback(text);
            }
        });
        return false;
    },

   	requestFormCallback: function(form,validateCallback, beforeSendCallback, successCallback)
    {
		if(!validateCallback){
			if (validateCallback(form) == false) {
				return false;
			}
		}

        if (InsJs.requestBlock) {
            return false;
        }

        if (!beforeSendCallback) {
            beforeSendCallback = function(){};
        }

        if (!successCallback) {
            successCallback = function(){};
        }

        jQuery.ajax({
            url: $(form).attr('action'),
            method: $(form).attr('method'),
            data: $(form).serialize(),
            beforeSend  : function() {
                InsJs.requestBlock = true;
				beforeSendCallback(form);
            },
            success: function(text) {
                InsJs.requestBlock = false;
                successCallback(form,text);
            }
        });

        return false;
    }

/*
	addToPlanner : function(element,objectId,uri,plannerContentId)
	{
		$(element).fadeTo("slow", 0.80);
		$(element).html(i18n.planner_object_added);
		$.ajax({
		   type: "POST",
		   url:uri,
		   data: "object_id="+objectId,
		   success: function(msg){
				$(plannerContentId).html(msg);
				InsJs.plannerPreparePaginator();
				changePlannerBox('plannerBox','planYourStayBox');
				if ($.cookie('boxtodispaly') == null || $.cookie('boxtodispaly') == undefined) {
					$.cookie('boxtodispaly', 'plannerBox');
				}
				return false;
			}
		});

		return false;
	},
*/
};