function display_subcategories(source_id, select_id)
{
    var cats = new Array();

    $(source_id + " option:selected").each(function()
    {
        cats = categories[$(this).attr("value")];

        if (cats == "undefined" || cats == null)
        {
            return $(select_id).empty().append("<option value=\"0\">dowolna</option>");
        }
        else
        {
            if (cats.length > 0)
            {
                var options = "<option value=\"0\">dowolna</option>";

                for(var i = 0; i < cats.length; i++)
                {
                    options += "<option value=\""+ cats[i][0] +"\">"+ cats[i][1] +"</option>" ;
                }

                $(select_id).empty().append(options);
            }
        }
    });
}

function display_selected_subcategories(sub_id, source_id, select_id)
{
    if (sub_id > 0)
    {
        var cats = new Array();
        cats     = categories[parseInt($(source_id + " option:selected").attr( "value" ))];

        if (cats == "undefined" || cats == null)
        {
            $(select_id).empty().append("<option value=\"0\">dowolna</option>");
        }
        else
        {
            if (cats.length > 0)
            {
                var options  = "";
                var selected = "";

                for(var i = 0; i < cats.length; i++)
                {
                    if (sub_id === parseInt(cats[i][0]))
                    {
                        selected = "selected";
                    }

                    options   += "<option value=\""+ cats[i][0] +"\" "+ selected +">"+ cats[i][1] +"</option>" ;
                    selected  = "";
                }

                $(select_id).append(options);
            }
        }
    }
}

function popup(url, height, width, left) 
{
    var cfg = "width="+ width +",height="+ height +",left="+ left +",top=100,toolbar=no,location=no,directories=no,"
    +"status=no,menubar=no,"
    +"scrollbars=yes,resizable=yes";
    return window.open(url, "pop", cfg);
}

var Engine = {
    
    init: function()
    {
    	this.recommend();
        this.flashMessages();
        this.subcategories();
        this.price();
        this.manufacturer();
        this.changeImage();
        this.stuff();
        this.addGoogleStats();
    },
	
    recommend: function() 
    {
    	var $form = $("#recommend_form");
        
        $form.hide();
        
        $("#form_show").click(function()
        {
        	if ($form.css('display') == 'none') 
        	{
	        	$form.slideDown(2000);
        	}
            else
            {
            	$form.slideUp(2000)
            }
        });
        
        $("#form_hide").click(function()
        {
        	$form.slideUp(2000);
        });
    },
    
    flashMessages: function()
    {
        setTimeout(function() { $("#flash_error").slideUp(1000) }, 3000);
        setTimeout(function() { $("#flash_success").slideUp(1000) }, 1500);
    },
    
    stuff: function()
    {
    	$("a.confirm").click(function() 
    	{ 
    		if (! confirm( "Jesteś pewny(a)?" ))
    		{
    			return false;
    		}
		});
    	
        $(".browser_back").click(function()
        {
        	history.back(-1)
        });
        
        $(".print_page").click(function()
        {
        	window.print();
        });
    },
    
    changeImage: function()
    {
    	$(".thumbnail").click(function() 
        { 
            $(".photo_preview").attr("src", $(this).attr("rel")); 
        });
        
        $(".photo_preview").click(function() 
        { 
            popup("http://kupmaszyne.pl/gallery?id="+$("#offer_id").attr("value"), 600, 720, 150);
        });
        
        $("#close").click(function() 
        { 
            window.close();
        });
    },
    
    addGoogleStats: function() 
    {
    	if (GAID == "")
    	{
    	    return;
    	}
        
        var head = document.getElementsByTagName("head")[0];
        var scr = document.createElement("script");
        scr.type = "text/javascript";
        scr.src = (location.protocol == "http:" ? "http://www." : "https://ssl.") + "google-analytics.com/"+"ga.js";
        var once = 0;

        function runMe() {
            if (scr.readyState == "loading" || _gat == undefined || once) {
                return;
            }
            clearInterval(timer);
            once++;

            var pageTracker = _gat._getTracker(GAID);
            pageTracker._initData();
            pageTracker._trackPageview();
        }

        var timer = setInterval(runMe, 2000);
        scr["onload"] = runMe;
        scr["onreadystatechange"] = runMe;
        head.appendChild(scr); 
        
        return true;
    },
    
    manufacturer: function()
    {
        var manufacturer = $("#new_manufacturer");
        
        if(manufacturer)
        {
            if ($("#manufacturer_name").attr("value") == "")
            {
                manufacturer.hide();
            }
	        
            $(".add_manufacturer").click(function()
            {
                manufacturer.slideDown(400);
            });
        }
    },
    
    subcategories: function() 
    {
        $("#c").change(function()
        {
            display_subcategories("#c", "#sc");
        });

        $("#category_id").change(function()
        {
            display_subcategories("#category_id", "#subcategory_id");
        });

        display_selected_subcategories(parseInt($("#current_subcategory").attr("value")), "#c", "#sc");
        display_selected_subcategories(parseInt($("#sc_id").attr("value")), "#category_id", "#subcategory_id");
    },
    
    price: function () 
    {
        var price = $("#price");
        
        $("#price_is_negotiable").click(function()
        {
            if (price.attr("disabled") == undefined || price.attr("disabled") == false)
            {
                price.attr("disabled", true);
            }
            else
            {
                price.attr("disabled", false);
            }
        }
        );
        
        if ($("#price_is_negotiable").attr("checked"))
        {
            price.attr("disabled", true);
        } 
    }
}

$(document).ready(function()
{   
    Engine.init();
});
