/* ************************************************************************************************

	Prymat App Class

************************************************************************************************ */
function strpos(str,szukaj){
    str+='';
    szukaj+=''; //auto-konwersja do stringa
    var w=str.indexOf(szukaj);
    if(w==-1) return false;
    return w;
}




var PrymatApp = Class.extend({
	
    _config: {},
	
    init: function(object) {

	// Przypomnienie hasla(akcja wykonana z wirtualnego)
	url=window.location.href.split("#");
	simple=url.length-1;
	if(url[simple]=='przypomnijhaslo')
	{
	    jQuery(document).ready(function(){return Prymat.RestorePassword()});
	}
    
        jQuery.extend(this._config, object);
    },
	
    Config: function(key) {
        return this._config[key];
    },
	
    Scripts: {
        _loaded: {},
        Load: function(script, callback) {
            if(!this._loaded[script]) {
                //alert("laduje od poczatki");
				
                this._loaded[script] = true;
                jQuery.getScript(Prymat.Config("baseURL") + "assets/js/" + script, (typeof callback != "undefined" ?
                    function(){
                        setTimeout(callback, 450);
                    }
                    : null));
            }else {
                if(typeof callback != "undefined") {
                    //alert("zaladowany juz");
                    callback();
                }
            }
        }
    },
    Uploader : {
        callback : function (json) {}
    },
    Request : Class.extend({
        config : {
            url 	: '',
            output 	: 'raw',
            params	: {}
        },
        callback : function() {},
        init : function(url, params, callback, outputType) {
            this.config.url 	= Prymat.Config("baseURL") + 'do' + url;
            this.config.params 	= params;
            if (typeof outputType != 'undefined') {
                this.config.url 	+= '/output/' + outputType;
                this.config.output 	 = outputType;
            }
            this.callback = callback;
            var self = this;
            jQuery.post(this.config.url, this.config.params, function(data) {
                var result;
                if (self.config.output == 'json') {
                    try {
                        eval('result = ' + data);
                    } catch(err) {}
                } else {
                    result = data;
                }
                self.callback(result, self.config);
				
                Prymat.FullDateSwitcher.prepare();
            });
        }
    }),
	
    Miscellaneous : {
        InputDefault: function(selector, value) {
            if (jQuery(selector).val() == '') {
                jQuery(selector).val(value);

            }
            jQuery(selector).focus(function() {
                //alert("focus");
                if(jQuery(this).val() == value) {
                    jQuery(this).val(" ");
                }
            });
			
            jQuery(selector).blur(function() {
                //alert("blur");
                if(jQuery(this).val() == " ") {
                    jQuery(this).val(value);
                }
            });
        }
    },
	
    Validation: {
        Init: function(result) {
			
            jQuery(".input_error").removeClass("input_error");
			
            if(result.success == 1) {
                jQuery.prompt(result.message, {
                    buttons: {
                        Zamknij: false
                    },
                    opacity: 0.7,
                    callback: function(v,m,f) {
                        if(v == true) {
                            return;
                        }
					
                        switch(result.action) {
                            case 'reload':
                                if (strpos(document.location.href, '#')) {
                                    document.location.href = document.location.href.split("#")[0];
                                } else {
                                    document.location.href = document.location.href;//.split("#")[0]; test bo rozwala undefined
                                }
                                break;
                            case 'redirect':
                                document.location.href = result.url;
                                break;
                        }
                    }
                });
            }else {
                if("errors" in result) {
                    jQuery.each(result.errors, function(name, is_error) {
                        jQuery("*[name=" + name + "], .err-" + name ).each(function() {
                            if(jQuery(this).attr("type") == "checkbox" || jQuery(this).attr("type") == "radio") {
                                jQuery(this).next().addClass("input_error");
                            }else {
                                jQuery(this).addClass("input_error");
                            }
                        });
                    });
                }
			    
                jQuery.prompt(result.message, {
                    buttons: {
                        Zamknij: false
                    },
                    opacity: 0.7
                });
            }
        }
    },
	
    Prompt: {
        Forbidden : function() {
            this.Message('Aby wykonać tą akcje musisz być zalogowany!', 'Zaloguj się');
            return false;
        },
        Message: function(message, title) {
            //			jQuery.scrollTo(0);
            if (typeof title != 'undefined' && title != '') {
                message = "<h3>" + title + "</h3>" + "<div>" + message + "</div>";
            }
			
            jQuery.prompt(message, {
                buttons: {
                    Zamknij: false
                },
                opacity: 0.7
            });
			
            return false;
        },
        MessageRedirect: function(message, title, url) {
            //			jQuery.scrollTo(0);
            if (typeof title != 'undefined' && title != '') {
                message = "<h3>" + title + "</h3>" + "<div>" + message + "</div>";
            }

            jQuery.prompt(message, {
                buttons: {
                    Zamknij: false
                },
                opacity: 0.7
            });

            return false;
        },
		
        Form: function(title, form_template_url, buttton_caption, request_fields) {
            jQuery.scrollTo(0);
            var _request_fields = {};
            var _buttons        = {};
            var _success_action = null;
            var _redirect_url = null;
			
            _buttons[buttton_caption] = true;
			
            jQuery.extend(_request_fields, request_fields);

            new Prymat.Request(form_template_url, _request_fields, function(form_template) {
			
                var form_id       = jQuery(form_template).parent().find("form").attr("id");
				
                form_template = "<h3>" + title + "</h3>" + form_template;
				
                var prompt_states = {
                    form: {
                        html: form_template,
                        buttons: _buttons,
                        focus: 1,
                        submit: function(v,m,f) {
                            if(v == true) {
                                jQuery("#" + form_id).submit();
                                return false;
                            }else {
                                return true;
                            }
                        }
                    },
                    result: {
                        html:'<span class="prompt_form_result" id="prompt_form_result"></span>',
                        buttons: {
                            Powrot: -1,
                            Zamknij: 0
                        },
                        focus: 1,
                        submit: function(v,m,f) {
                            if(v == 0) {
							
                                switch(_success_action) {
                                    case 'redirect':
                                        if(document.location.pathname == '/') {
                                            document.location.href = _redirect_url;
                                            break;
                                        }
                                    case 'reload':
                                        document.location.href = document.location.href.split("#")[0];
                                        break;
                                }
								
                                jQuery.prompt.close();
                            }else if(v == -1) {
                                jQuery.prompt.goToState('form');
                            }
                            return false;
                        }
                    }
                };
				
                jQuery.prompt(prompt_states, {
                    loaded: function() {
						
						jQuery('.sidebarCulinaryshare').css('visibility','hidden');
						
                        var form = jQuery("#" + form_id);
						
                        form.find('input[type=text]').eq(0).focus();
						
                        if(form.find("input[type=submit], input[type=image]").length==0) {
                            form.append('<input type="submit" value="zaloguj się" style="visibility:hidden; width:1px; height:1px;" />')
                        }
						
                        form.find("input[type=submit], input[type=image]").click(function() {
                            form.submit();
                            return false;
                        });
						
                        jQuery('.jqi .buttonZapisz').click(function(e){
                            e.preventDefault();
                            this.disabled=true;
                        });
                        jQuery('.jqi .buttonPowrot').click(function(e){
                            jQuery('.jqi .buttonZapisz').removeAttr('disabled');
                        });
						
                        form.submit(function() {
                            jQuery.post(form.attr("action"), form.serialize(), function(form_result) {
                                if(form_result.success == 1) {
                                    _success_action = form_result.action;
                                    if(typeof(form_result.redirect_url) != 'undefined')
                                        _redirect_url = form_result.redirect_url;

                                    if ($.browser.msie && $.browser.version.substr(0,1)<7) {
                                        document.location.href = _redirect_url;
                                    }

                                    jQuery(".jqi .buttonPowrot").hide();
                                    jQuery(".jqi .buttonZamknij").show();
                                }else {
                                    if("errors" in form_result) {
                                        jQuery.each(form_result.errors, function(name, is_error) {
                                            jQuery("*[name=" + name + "]").each(function() {
                                                if(jQuery(this).attr("type") == "checkbox" || jQuery(this).attr("type") == "radio") {
                                                    jQuery(this).next().addClass("input_error");
                                                }else {
                                                    jQuery(this).addClass("input_error");
                                                }
                                            });
                                        });
                                    }else {
                                        jQuery(".jqi .input_text, .jqi .text").addClass("input_error");
                                    }
									
                                    jQuery(".jqi .buttonPowrot").show();
                                    jQuery(".jqi .buttonZamknij").hide();
                                }
								
                                jQuery("#prompt_form_result").html(   form_result.message );
                                                                
                                jQuery.prompt.goToState('result');
                            }, "json");
							
                            return false;
                        });
                    },
                    callback: function()
                    {
                    	jQuery('.sidebarCulinaryshare').css('visibility','');
                    }, 
                    opacity: 0.7
                });
            });
			
            return false;
        }
    },
    FullDateSwitcher : {
        prepare : function() {
            jQuery('.fullDateSwitcher').each(function() {
                jQuery(this).css('cursor', 'pointer');
				
                var htmlOn 	= jQuery(this).attr('alt');
                var htmlOff = jQuery(this).html();
				
                jQuery(this).hover(
                    function() {
                        jQuery(this).html(htmlOn);
                    },
                    function() {
                        jQuery(this).html(htmlOff);
                    }
                    )
            });
        }
    },
    RestorePassword : function() {
		
        jQuery.prompt.close()
        Prymat.Prompt.Form('Odzyskiwanie hasła', '/Auth/passwordRestore', 'Wyślij');
        return false;
    },
    RecommendRecipe : function() {
        url = window.location;
        Prymat.Prompt.Form('Poleć znajomemu', '/Recipe/recommend?url=' + url, 'Wyślij');
        return false;
    },
    Abuse : function() {
        url = window.location;
        Prymat.Prompt.Form('Nadużycie', '/Recipe/abuse?url=' + url, 'Ok');
        return false;
    },

    Facebook : {
        init : function() {
            jQuery('.facebookRegister').click(function() {
                FB_RequireFeatures(["XFBML"], function() {
                    FB.Facebook.init("674dccfad050cc799167a26929e9d20e", "/xd_receiver.htm");
                    FB.Connect.requireSession(function() {
                        document.location = '/rejestracja.html';
                    });
                });
                return false;
            })
        },
        addToWall : function(name, url) {
            FB_RequireFeatures(["XFBML"], function() {
                FB.Facebook.init("674dccfad050cc799167a26929e9d20e", "/xd_receiver.htm");
			
                var attachment = {
                    'name'			: name,
                    'href'			: url,
                    'description'	:'Zobacz więcej na www.doradcasmaku.pl.'
                };
				  
                var actionLinks = [
                {
                    "text": "Doradca Smaku",
                    "href": 'http://www.doradcasmaku.pl'
                }
                ];
				
                FB.Connect.streamPublish(name, attachment, actionLinks);
				
            });
            return false;
        },
        like : function() {
            FB.init("674dccfad050cc799167a26929e9d20e");
        }
    }
});

/* ************************************************************************************************

	Default on dom ready
	
************************************************************************************************ */


$(function() {
    if (jQuery.browser.msie) {
        jQuery('input.rounded').removeClass('rounded').addClass('rounded_ie');
    }
    jQuery("img").each(function() {
        if (jQuery(this).attr('src') == '') {
            jQuery(this).hide();
        }
    });
    jQuery(".forbidden").click(function() {
        return Prymat.Prompt.Forbidden();
    });
    $("textarea.input_text").elastic();
    Prymat.Facebook.init();
    Prymat.FullDateSwitcher.prepare();
    $(".fancybox").fancybox({
        scrolling: 'no',
        onComplete: function() {
        	onLoadLodowka();
        	jQuery('.sidebarCulinaryshare').css('visibility','hidden');
        },
        onClosed: function() {
        	jQuery('.sidebarCulinaryshare').css('visibility','');
        }
    });
});


var show = function(el) {
    if (console && console.log) {
        console.log(el);
    } else {
        alert(el);
    }
}

//lodowka APP

//function lodowkaNextSkladniki() {
//    jQuery.get('/do/Lodowka/skladniki/ile/4/jakirozmiar/size70x50/', function(data) {
//        jQuery('#lodowka-lista-skladnikow2').html(data);
//    });
//    jQuery.get('/do/Lodowka/skladniki/ile/6/jakirozmiar/size70x50/', function(data) {
//        jQuery('#lodowka-lista-skladnikow').html(data);
//    });
//    jQuery.get('/do/Lodowka/skladniki/ile/4/jakirozmiar/size85x60/', function(data) {
//        jQuery('#lodowka-lista-skladnikow3').html(data);
//    });
//}
//
//function lodowkaPrevSkladniki()
//{
//    jQuery.get('/do/Lodowka/skladniki/ile/4/jakirozmiar/size70x50/', function(data) {
//        jQuery('#lodowka-lista-skladnikow2').html(data);
//    });
//    jQuery.get('/do/Lodowka/skladniki/ile/6/jakirozmiar/size70x50/', function(data) {
//        jQuery('#lodowka-lista-skladnikow').html(data);
//    });
//    jQuery.get('/do/Lodowka/skladniki/ile/4/jakirozmiar/size85x60/', function(data) {
//        jQuery('#lodowka-lista-skladnikow3').html(data);
//    });
//}

function onLoadLodowka()
{
    jQuery('#lodowka-input').autocomplete(Prymat.Config("baseURL") + 'do/Component/getSuggest/output/json', {
        minChars	: 2,
        width		: 111,
        mustMatch	: false,
        autoFill        : true,
        formatItem: function(item) {
            //alert("format item");
            return item.name;
        },
        parse		: function(data, idek, desc ) {
            //alert("parse" + data);
            eval('var rows = ' + data);

            var result = [];

            if (rows.items) {
                for (var i = 0; i < rows.items.length; i++) {


                    result[i] = {
                        data: rows.items[i],
                        value: rows.items[i].name,
                        result: rows.items[i].name
                    };
                    if( i == 0){

                        first_name = trim11( rows.items[i].name );
                        desc       = trim11( desc );
                        //alert(  stripos( desc ,  first_name )   );

                        if(  stripos( desc ,  first_name ) >= 0 )
                        {
                            item = rows.items[i];
                            var id 	= 0;
                            var src = '';
                            if (typeof item != 'undefined' && item.id) {
                                id 	= item.id;
                                if (item.photoUrl && item.photoUrl.size113x80) {
                                    src = item.photoUrl.size113x80;
                                }
                            }
                            jQuery("#lodowka-temp").val(id);
                            //alert(id);
                            //parent.prepareComponent(idek, id, src);
                        }

                    }
                }
            }else{

                jQuery('#lodowka-input').val('');

            }

            return result;
        }
    }).result(function(event, item) {

        var id 	= 0;
        var src = '';
        if (typeof item != 'undefined' && item.id) {
            id 	= item.id;
            if (item.photoUrl && item.photoUrl.size113x80) {
                src = item.photoUrl.size113x80;
            }
        }
        jQuery("#lodowka-temp").val(id);
        //parent.prepareComponent(this.id, id, src);
    })
}

var $idkSkladnikow={};

function lodowkaUsun()
{
	delete $idkSkladnikow[jQuery(this).attr('rel')];
	jQuery(this).parents('span').eq(0).remove();
}

function lodowkaSubmitSkladnik()
{
	if(!$idkSkladnikow[jQuery("#lodowka-temp").val()])
	{
		$idkSkladnikow[jQuery("#lodowka-temp").val()]=jQuery("#lodowka-temp").val();
	
	    jQuery("#lodowka-temp").val(0);
	    var wartosc = jQuery('#lodowka-input').val();
		
	    jQuery("#lodowka-wybrane-produkty").append('<span class="rounded">'+wartosc+'<b rel="'+jQuery("#lodowka-temp").val()+'"></b></span>');
	    jQuery("#lodowka-wybrane-produkty b:not(.added)").click(lodowkaUsun).addClass('added');
	}
}

function lodowkaDodajSkladnik(obiekt)
{
	if(!$idkSkladnikow[jQuery(obiekt).attr('rel')])
	{
		$idkSkladnikow[jQuery(obiekt).attr('rel')]=jQuery(obiekt).attr('rel');
	
		var wartosc = jQuery(obiekt).children('span.Desc').html();
		
	    jQuery("#lodowka-wybrane-produkty").append(wartosc);
	    jQuery("#lodowka-wybrane-produkty b:not(.added)").click(lodowkaUsun).addClass('added');
	}
}


function lodowkaParsuj()
{
    var zapytanie = '?uid=738732';
    jQuery.each($idkSkladnikow, function(i, d) {
        zapytanie = zapytanie + '&c[]=' + d;
    });

    document.location.href = '/' + zapytanie;
}
