
/*
 * 	Easy Tooltip 1.0 - jQuery plugin
 *	written by Alen Grakalic
 *	http://cssglobe.com/post/4380/easy-tooltip--jquery-plugin
 *
 *	Copyright (c) 2009 Alen Grakalic (http://cssglobe.com)
 *	Dual licensed under the MIT (MIT-LICENSE.txt)
 *	and GPL (GPL-LICENSE.txt) licenses.
 *
 *	Built for jQuery library
 *	http://jquery.com
 *
 */
(function($) {

	$.fn.easyTooltip = function(options){

		// default configuration properties
		var defaults = {
			xOffset: 10,
			yOffset: 25,
			tooltipId: "easyTooltip",
			clickRemove: false,
			content: "",
			useElement: ""
		};

		var options = $.extend(defaults, options);
		var content;

		this.each(function() {
			var title = $(this).attr("title");
			$(this).hover(function(e){
				content = (options.content != "") ? options.content : title;
				//content = (options.useElement != "") ? $("#" + options.useElement).html() : content;
				$(this).attr("title","");
				if (content != "" && content != undefined){
                                        //$("body").append("<div id='"+ options.tooltipId +"' style='background: black url("+ content +") no-repeat;'></div>");
                                        $("body").append("<img id='"+ options.tooltipId +"' src='"+ content +"'>");
                                        $("#" + options.tooltipId)
						.css("position","absolute")
						.css("top",getTopPosition(e.pageY - options.yOffset) + "px")
						.css("left",(e.pageX + options.xOffset) + "px")
						.css("display","none")
						.fadeIn("fast")
				}
			},
			function(){
				$("#" + options.tooltipId).remove();
				$(this).attr("title",title);
			});
			$(this).mousemove(function(e){
                                $("#" + options.tooltipId)
					.css("top",getTopPosition(e.pageY - options.yOffset) + "px")
					.css("left",(e.pageX + options.xOffset) + "px")
			});
			if(options.clickRemove){
				$(this).mousedown(function(e){
					$("#" + options.tooltipId).remove();
					$(this).attr("title",title);
				});
			}
		});

	};

        $.fn.tooltip = function(options){

		// default configuration properties
		var defaults = {
			xOffset: 10,
			yOffset: 25,
			tooltipId: "tooltip",
			clickRemove: false,
			content: "",
			useElement: ""
		};

		var options = $.extend(defaults, options);
		var content;
                var title;
                
                $(this).bind('mousemove', function(e){
                    if(!$("#" + options.tooltipId).is(':visible'))
                    {
                        title = $(this).attr("tooltip");
                        content = (options.content != "") ? options.content : title;
                        content = (options.useElement != "") ? $("#" + options.useElement).html() : content;
                        if (content != "" && content != undefined){
                                $("body").append("<div id='"+ options.tooltipId +"'>"+ content +"</div>");
                                $("#" + options.tooltipId)
                                        .css("position","absolute")
                                        .css("top",(e.pageY - options.yOffset) + "px")
                                        .css("left",getLeftPosition(e.pageX + options.xOffset) + "px")
                                        .css("display","none")
                                        .fadeIn("fast")
                        }
                    }
                    else
                    {
                        $("#" + options.tooltipId).css("top",(e.pageY - options.yOffset) + "px")
                                                  .css("left",getLeftPosition(e.pageX + options.xOffset) + "px")
                    }
                });
                $(this).bind('mouseout', function(e){
                    $("#" + options.tooltipId).remove();
                })
	};

})(jQuery);

getClientHeight = function()
{
    return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}
getVerticalScroll = function()
{
    return document.body.scrollTop||document.documentElement.scrollTop;
}
getTopPosition = function(pos)
{
    var imgHeight = $('#easyTooltip').height()+2
    var ch=getClientHeight()+getVerticalScroll()
    if(pos+imgHeight>=ch) pos=ch-imgHeight
    return pos;
}

getClientWidth = function()
{
    return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}
getHorizontalScroll = function()
{
    return document.body.scrollLeft||document.documentElement.scrollLeft;
}
getLeftPosition = function(pos)
{
    var tw = $('#tooltip').width()+2
    var ch=getClientWidth()+getHorizontalScroll()
    if(pos+tw>=ch) pos -= tw+25
    return pos;
}

$(function() {
        $(".sketch").easyTooltip();
        $('#pizza_item').flash(
            {src: '/assets/templates/default/flash/pizza_button.swf',
              width: 225,
              height: 140},
            {version: 8}
        );
        $('#drinks_item').flash(
            {src: '/assets/templates/default/flash/drinks_button.swf',
              width: 225,
              height: 140},
            {version: 8}
        );
        $('#lasagna_item').flash(
            {src: '/assets/templates/default/flash/lasagna_button.swf',
              width: 225,
              height: 140},
            {version: 8}
        );
        $('#salat_item').flash(
            {src: '/assets/templates/default/flash/salat_button.swf',
              width: 225,
              height: 140},
            {version: 8}
        );
        $('#telephone').flash(
            {src: '/assets/templates/default/flash/telephone.swf',
              width: 119,
              height: 129,
              wmode : "transparent"
            },
            {version: 8}
        );
        $('#car').flash(
            {src: '/assets/templates/default/flash/car.swf',
              width: 180,
              height: 90,
              wmode : "transparent"
            },
            {version: 8}
        );
        $('.additives_link a').mouseover(function(){
            $(this).parents('.goods_block').css('background', 'url(/assets/templates/default/images/item_bg_hover.gif) no-repeat top right')
        }).mouseout(function(){
            $(this).parents('.goods_block').css('background', 'url(/assets/templates/default/images/item_bg.gif) no-repeat top right')
        })

        if(typeof(pizza)=='object' && typeof(consistency)=='object' &&typeof(additives)=='object')
        {
            $("#tabs").tabs();
            $('#size_35').click(function(){
                //change images of size icons
                $(this).css('background', 'url(/assets/templates/default/images/size_35.gif) no-repeat')
                $('#size_45').css('background', 'url(/assets/templates/default/images/size_45.gif) 0 -74px no-repeat')
                $("input[name='shk-name']").val(pizza.title+' (35 см)')
                consistency.size=35

                recount()
            })
            $('#size_45').click(function(){
                //change images of size icons
                $('#size_35').css('background', 'url(/assets/templates/default/images/size_35.gif) 0 -60px no-repeat')
                $(this).css('background', 'url(/assets/templates/default/images/size_45.gif) no-repeat')
                $("input[name='shk-name']").val(pizza.title+' (45 см)')
                consistency.size=45

                recount()
            })
            recount = function(){
                var size = consistency.size
                var weight = parseInt(pizza['weight'+size])
                var price = parseInt(pizza['price'+size])

                if(typeof(consistency.adds)=='object')
                {
                    for(var i in consistency.adds)
                    {
                        weight += additives[i]['weight']*consistency.adds[i].count
                        price  += additives[i]['price']*consistency.adds[i].count
                    }
                }

                consistency.weight=weight
                $("input[name='shk-price']").val(price)
                $('#price').html(price+'&nbsp;грн.')
                $('#weight').html(weight+'&nbsp;г')
            }
            
            delDefCons = function(id){ //delete default additives
                var tr = $('#consistency').find("tr[defconstr='"+id+"']")
                if($(tr).find("td:first").css('color')=='#e65656')
                    addDefCons(id)
                else
                {
                    $(tr).find("td:first").css('color', '#e65656')
                    $(tr).find("td:last div").html('добавить').css('color','#6fb44e')

                    if(typeof(consistency.rejectedadds)=='string') consistency.rejectedadds={}
                    consistency.rejectedadds[id]=id
                    recount()
                }
            }
            addDefCons = function(id){
                var tr = $('#consistency').find("tr[defconstr='"+id+"']")
                $(tr).find("td:first").css('color', '#555')
                $(tr).find("td:last div").html('убрать').css('color','#e65656')

                delete consistency.rejectedadds[id]
                recount()
            }
            
            changeThickness = function(thickness, obj){
                var tr = $(obj).parents('tr:first')
                var table = $(obj).parents('table:first')
                $(table).find('td').css('color', '#555').css('text-decoration', 'none')
                $(tr).find('td').css('color', '#00af1b').css('text-decoration', 'underline')

                consistency.thickness=thickness

                recount()
            }

            changeSauce = function(saucebasis, obj){
                var tr = $(obj).parents('tr:first')
                var table = $(obj).parents('table:first')
                $(table).find('td').css('color', '#555').css('text-decoration', 'none')
                $(tr).find('td').css('color', '#00af1b').css('text-decoration', 'underline')

                consistency.saucebasis=saucebasis

                recount()
            }

            addAddit = function(id){
                var tr = $('#additives').find("td[ident='"+id+"']").parents('tr:first')
                $(tr).find('td:eq(0)').html('<div onClick="delAddit('+id+')" class="del_item"><!-- --></div>')
                $(tr).find('td:eq(1)').html('<div onClick="addAddit('+id+')" class="add_green_item"><!-- --></div>')
                $(tr).find("td").css('color', '#00af1b').not(':last').css('text-decoration', 'underline')
                if(typeof(consistency.adds)=='string') consistency.adds={}
                if(typeof(consistency.adds[id])=='object')
                    consistency.adds[id].count+=1
                else
                    consistency.adds[id]={'id': id, 'count': 1}
                                
                $(tr).find('td:eq(5)').html(consistency.adds[id].count)

                writeAdditivesString()
                recount()
            }
            delAddit = function(id){
                if(typeof(consistency.adds)=='string') consistency.adds={}
                if(typeof(consistency.adds[id])=='object')
                    consistency.adds[id].count-=1

                var tr = $('#additives').find("td[ident='"+id+"']").parents('tr:first')
                if(consistency.adds[id].count>=1)
                {
                    $(tr).find('td:eq(0)').html('<div onClick="delAddit('+id+')" class="del_item"><!-- --></div>')
                    $(tr).find('td:eq(1)').html('<div onClick="addAddit('+id+')" class="add_green_item"><!-- --></div>')
                    $(tr).find("td").css('color', '#00af1b').not(':last').css('text-decoration', 'underline')
                    $(tr).find('td:eq(5)').html(consistency.adds[id].count)
                }
                else
                {
                    delete consistency.adds[id]
                    $(tr).find('td:eq(0)').html('')
                    $(tr).find('td:eq(1)').html('<div onClick="addAddit('+id+')" class="add_item"><!-- --></div>')
                    $(tr).find("td").css('color', '#555').css('text-decoration', 'none')
                    $(tr).find('td:eq(5)').html('—')
                }

                writeAdditivesString()
                recount()
            }
            writeAdditivesString = function(){
                var arr = new Array()
                for(var addit in consistency.adds)
                {
                    arr.push(additives[addit].title)
                }
                if(arr.length)
                    $('#added_str').text(arr.join(', '))
                else
                    $('#added_str').text('-- ничего --')
            }
        }
        doc.height = $(document).height()-850
        var top = $('#shopCart').css('margin-top')
        doc.cartmargin = parseInt(top.substr(0, top.length-2))
});

doc = {cartmargin:0, height:0}

$(window).scroll(function(){
    var top = $(window).scrollTop()+doc.cartmargin-250
    if(top>doc.cartmargin && top<doc.height)
        $('#shopCart').css('margin-top', top+'px')
})
