function equalHeight(group)
{
	tallest = 0;
	group.each(function(c)
	{
		thisHeight = c.offsetHeight;
		if(thisHeight > tallest)
		{
			tallest = thisHeight;
		}
	});
	group.invoke("setStyle", {height: tallest + 'px'})
}

function plusSign(group)
{
	tallest = 0;
	group.each(function(c)
	{
		thisHeight = c.offsetHeight;
		if(thisHeight > tallest)
		{
			tallest = thisHeight;
		}
	});
	$$('.plus_sign').invoke("setStyle", {top: (tallest / 2 - 20) + 'px'})
}

function getDocHeight() {
	return Math.max(
		Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
		Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
		Math.max(document.body.clientHeight, document.documentElement.clientHeight)
	);
}

function getDocWidth() {
	return Math.max(
		Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),
		Math.max(document.body.offsetWidth, document.documentElement.offsetWidth),
		Math.max(document.body.clientWidth, document.documentElement.clientWidth)
	);
}

function bprPopupShow(container, box, selector)
{
	
	if ($$(container).length > 0) {
	/*
		if(navigator.userAgent.indexOf("Firefox") !=- 1 || navigator.userAgent.indexOf("Netscape") !=- 1) {
			var shadowH = window.innerHeight + window.scrollMaxY;
			var shadowW = window.innerWidth + window.scrollMaxX;
		}
		if(navigator.userAgent.indexOf("MSIE") !=- 1 || navigator.userAgent.indexOf("Opera") !=- 1) {
			var shadowH = document.body.scrollHeight;
			var shadowW = document.body.scrollWidth;
		}
	*/

		var shadowH = getDocHeight();
		var shadowW = getDocWidth();

		$$(selector).each(function(element) {
			$(element).observe('click', function(e) {
				var popLeft = document.viewport.getDimensions().width / 2 - 330;
				
				var scrOfX = 0, scrOfY = 0;
				if( typeof( window.pageYOffset ) == 'number' ) {
					//Netscape compliant
					scrOfX = window.pageXOffset;
					scrOfY = window.pageYOffset;
				} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
					//DOM compliant
					scrOfX = document.body.scrollLeft;
					scrOfY = document.body.scrollTop;
				} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
					//IE6 standards compliant mode
					scrOfX = document.documentElement.scrollLeft;
					scrOfY = document.documentElement.scrollTop;
				}
				
				$$(box).invoke("setStyle", {left: popLeft + 'px'});
				$$(box).invoke("setStyle", {top: scrOfY + 140 + 'px'});
				$$(container + ' .shadow').invoke("setStyle", {height: shadowH + 'px'});
				$$(container + ' .shadow').invoke("setStyle", {width: shadowW + 'px'});
				$$(container).invoke("setStyle", {'display': 'block'});
				e.stop();
			});
		});
	}
}

function bprPopupHide(container) {
	$$(container + ' .close', container + ' .shadow').each(function(element) {
		$(element).observe('click', function(e) {
			$$(container).invoke("setStyle", {'display': 'none'});
			e.stop();
		});
	});
}

function bprWukapLayer() {
	if ($$('body.popup_layer').length > 0) {
		$$('div.doboz_termek_fulek a').each(function(element) {
			var href = $(element).readAttribute('href');
			href = (href.substr(href.length - 9) == 'reszletek') ? href + '_tv_layer' : href + '_layer';
			$(element).setAttribute('href', href);
		});
	}
}

// bpr termekoldal - moreInfoEffect meghivasa 

var FadeSlide = function(element, options) {

    Spry.Effect.Cluster.call(this, options);

    var duration = 1000;
    var from = '0%';
    var to = '100%';
    var transition = Spry.fifthTransition;
    var toggle = true;
    var finishFunc;

    if (options) {
    	if (options.duration != null) duration = options.duration;
    	if (options.from != null) from = options.from;
    	if (options.to != null) to = options.to;
    	if (options.transition != null) transition = options.transition;
    	if (options.toggle != null) toggle = options.toggle;
        if (options.finishFunc != null) finishFunc = options.finishFunc;
    }

    var slide_effect = new Spry.Effect.Slide(element, {
        duration: 1000,
        from: from,
        to: to,
        toggle: true,
        finish: finishFunc
    });
    var fade_effect = new Spry.Effect.Fade(element, {
        duration: 1000,
        from: from,
        to: to,
        toggle: true
    });

    this.addParallelEffect(slide_effect);
//    this.addParallelEffect(fade_effect);
};
FadeSlide.prototype = new Spry.Effect.Cluster();
FadeSlide.prototype.constructor = FadeSlide;

var moreInfoEffect = {
    localeStrings : [],
    init : function () {
        $$('.showHideInfoControl').each(function(element, index) {

            element.showHideAnimation = new FadeSlide($(element).down('div.showHideInfoContent'), {
                finishFunc : function() {
                    moreInfoEffect.switchTogglerLink($(element).down('a.showHideToggler'), index);
                }
            });

            $(element).down('a.showHideToggler').observe('click', function(e) {
				element.showHideAnimation.start();
                e.stop();
            });

            $(element).down('a.showHideToggler').defaultText = $(element).down('a.showHideToggler').innerHTML;
            $(element).down('a.showHideToggler').defaultText2 = $(element).down('span.title_opened').innerHTML;
        });
    },

    setLinkTitles : function(titles) {
        this.lnkShow = titles.lnkShow;
        this.lnkHide = titles.lnkHide;
    },

    setLocaleString : function(textArray) {
        this.localeStrings = textArray;
    },

    switchTogglerLink : function(showHideToggler, index) {
		if( $(showHideToggler).hasClassName('closed') ) {
            $(showHideToggler)
                .removeClassName('closed')
                .addClassName('opened')
                .innerHTML = ( this.localeStrings[index] != -1 && typeof this.localeStrings[index] == "object" ) ? this.localeStrings[index][0] : $(showHideToggler).defaultText2;
        } else {
            $(showHideToggler)
                .removeClassName('opened')
                .addClassName('closed')
                .innerHTML = $(showHideToggler).defaultText;
        }
    }
}

var moreInfoEffect2 = {
    localeStrings : [],
    init : function () {
        $$('div.showHideInfoControl2').each(function(element, index) {

            element.showHideAnimation = new FadeSlide($(element).down('div.showHideInfoContent'), {
                setup : function() {
                   $(element).up('div.showHideInfoContent').style.height = 'auto'; 
                },
                finishFunc : function() {
                    moreInfoEffect.switchTogglerLink($(element).down('a.showHideToggler'), index);
                }
            });

			function toggleElementAnimation(el) {
				var others = $$('div.showHideInfoControl2').filter(function(item) {
					var content = item.down('.showHideInfoContent');
					return (item != el) && (!((content.style.display == 'none') || (content.style.height == '0px')));
				});
				others.pluck('showHideAnimation').invoke('start');
                el.showHideAnimation.start();
			}
			
            $(element).down('a.showHideToggler').observe('click', function(e) {
				toggleElementAnimation(element);
                e.stop();
            });

            $(element).down('a.showHideToggler').defaultText = $(element).down('a.showHideToggler').innerHTML;
            $(element).down('a.showHideToggler').defaultText2 = $(element).down('span.title_opened').innerHTML;
        });
    },

    setLinkTitles : function(titles) {
        this.lnkShow = titles.lnkShow;
        this.lnkHide = titles.lnkHide;
    },

    setLocaleString : function(textArray) {
        this.localeStrings = textArray;
    },

    switchTogglerLink : function(showHideToggler, index) {
        if( $(showHideToggler).hasClassName('closed') ) {
            $(showHideToggler)
                .removeClassName('closed')
                .addClassName('opened')
                .innerHTML = ( this.localeStrings[index] != -1 && typeof this.localeStrings[index] == "object" ) ? this.localeStrings[index][0] : $(showHideToggler).defaultText2;
        } else {
            $(showHideToggler)
                .removeClassName('opened')
                .addClassName('closed')
                .innerHTML = $(showHideToggler).defaultText;
        }
    }
}

function bprFooterText() {
	if ($$('#tovabbi_feltetelek').length > 0) {
		document.getElementById('footer_text').innerHTML += document.getElementById('tovabbi_feltetelek').innerHTML;
		document.getElementById('tovabbi_feltetelek').innerHTML = '';
	}
	if ($$('#tovabbi_feltetelek_tv').length > 0) {
		document.getElementById('footer_text').innerHTML += document.getElementById('tovabbi_feltetelek_tv').innerHTML;
		document.getElementById('tovabbi_feltetelek_tv').innerHTML = '';
	}
	if ($$('#tovabbi_feltetelek_internet').length > 0) {
		document.getElementById('footer_text').innerHTML += document.getElementById('tovabbi_feltetelek_internet').innerHTML;
		document.getElementById('tovabbi_feltetelek_internet').innerHTML = '';
	}
	if ($$('#tovabbi_feltetelek_telefon').length > 0) {
		document.getElementById('footer_text').innerHTML += document.getElementById('tovabbi_feltetelek_telefon').innerHTML;
		document.getElementById('tovabbi_feltetelek_telefon').innerHTML = '';
	}
}

function cocktailPopupShow() {
	$$('.cocktail').each(function(element) {
		bprPopupShow('#' + element.id + '_popup', '.popup_cocktail', '#' + element.id);
	});
}
function clearboxPopupShow() {
	$$('.clearbox_doboz').each(function(element) {
		bprPopupShow('#' + element.id + '_popup', '.clearbox_content', '#' + element.id);
	});
}
function bprSetProgramGuideContent() {
	if ($$('#programguide_boxed').length > 0) {
		document.getElementById('programguide_minipack').innerHTML += document.getElementById('programguide_boxed').innerHTML;
		document.getElementById('programguide_boxed').innerHTML = '';
	}
}


Event.observe(window, 'load', function() {

	// tv elovalaszto - doboz magassagok beallitasa 
	equalHeight($$(".doboz_elovalaszto_felszeles:nth(0) .doboz_elovalaszto_magassag"));
	equalHeight($$(".doboz_elovalaszto_felszeles:nth(0) .doboz_elovalaszto_magassag2"));
	equalHeight($$(".doboz_elovalaszto_felszeles:nth(1) .doboz_elovalaszto_magassag"));
	equalHeight($$(".doboz_elovalaszto_felszeles:nth(1) .doboz_elovalaszto_magassag2"));
	equalHeight($$(".equalHeight_1"));
	equalHeight($$(".equalHeight_2"));
	plusSign($$(".equalHeight_1"));

	// dijcsomag eloszto - sugo doboz megjelenitese 
	$$("a.hint_link").each(function(element) {
		Event.observe(element, "click", function(event) {
			var id = element.readAttribute("id");
			var hint_id = id.substring(5);
			var o = element.cumulativeOffset();

			$$(".doboz_sugo").each(function(element2) {
				element2.style.display = 'none'; 
			});
			$(hint_id).style.top = (o.top + 5) + "px"; 
			$(hint_id).style.left = (o.left - 30) + "px"; 
			$(hint_id).style.display = 'block'; 

			event.stop();
		});
	});
	
	// dijcsomag eloszto - infobox magassaganak szamitasa 
	if ($$('.infobox').length > 0) {
		var infobox = $$('.infobox')[0];
		var infoboxImg = $$('.infobox_content')[0];
		infobox.style.height = 'auto';
		$$('.dijcsomagok tr.noborder')[0].style.height = (infoboxImg.offsetHeight + 21) + 'px';
	}
	
	
	// a kulso kontenert ideiglenesen megmutatjuk, hogy a Spry ki tudja szamolni a belso kontenerek magassagat
	var hiddenShowHideInfoControlDiv = $$('.showHideInfoControl > .showHideInfoContent').filter(function(el) {
		return el.style.display == 'none';
	});
	hiddenShowHideInfoControlDiv.invoke('show');

	moreInfoEffect2.init();
	// most pedig visszaelrejtjuk
	hiddenShowHideInfoControlDiv.invoke('hide');

	moreInfoEffect.init();

	bprPopupShow('#popup_holder', '.popup_order', '.offer .order');
	bprPopupHide('#popup_holder');

	bprPopupHide('.cocktail_popup_holder');
	bprPopupHide('.clearbox_popup_holder');

	bprWukapLayer();

	bprFooterText();
	bprSetProgramGuideContent();

	cocktailPopupShow();
	clearboxPopupShow();
	$$('.showHideInfoControl > .showHideToggler').each(function(element){
		Event.observe(element, 'click', function(){
			if ($(this).hasClassName('opened')) {
				closeAllLegordulo();
			}
		});
	});
});

function closeAllLegordulo() {
	$$('.showHideInfoControl2 .showHideToggler').each(function(element) {
		if ($(element).hasClassName("opened")) {
			$(element).simulate('click');
		}
	});
}

