/**
 * @author muzsi
 */
window.addEvent("domready", function() {
    var sliderVieportElements = 3;
    $$(".slidercell").each(function(e, i) {
        var sliderCont = e.getElement("div.slidingrow");
        var sliderContChilds = sliderCont.getChildren();
        sliderContChilds.each(function(e, i) {
            e.addEvent("mouseenter", function() { openSliderLinkList(this) })
            e.addEvent("mouseleave", function() { closeSliderLinkList(this) })
        })
        var noelements = sliderContChilds.length;
        var buttonLeft = e.getElement("div.slbleft");
        var buttonRight = e.getElement("div.slbright");
        var firstElementOnViewPort = 1;
        var isAnimating = false;
        var increment = 0;
        var leftPosition = 0;
        var fxSlidAnimation = new Fx.Tween(sliderCont);
        fxSlidAnimation.addEvent("complete", function() {
            isAnimating = false;
        })
        if (noelements > sliderVieportElements) {
            for (i = 0; i < sliderVieportElements; i++) {
                var duplicate = sliderContChilds[i].clone();
                duplicate.addEvent("mouseenter", function() { openSliderLinkList(this) })
                duplicate.addEvent("mouseleave", function() { closeSliderLinkList(this) })
                duplicate.inject($(sliderCont));
            }

            buttonLeft.addEvent("click", function() {
                if (!isAnimating) {
                    if (firstElementOnViewPort == 1) {
                        sliderCont.setStyle('left', "-" + (noelements * 312 + noelements * 1) + "px");
                        leftPosition = (noelements * 312 + noelements * 1) * -1;
                        firstElementOnViewPort = noelements;
                    }
                    else {
                        firstElementOnViewPort--;
                    }
                    leftPosition += 313;
                    fxSlidAnimation.start("left", leftPosition + "px");
                    isAnimating = true;
                }
            });
            buttonRight.addEvent("click", function() {
                if (!isAnimating) {
                    if (firstElementOnViewPort > noelements) {
                        firstElementOnViewPort = 2;
                        sliderCont.setStyle('left', "0px");
                        leftPosition = 0;
                    }
                    else {
                        firstElementOnViewPort++;
                    }
                    leftPosition -= 313;
                    fxSlidAnimation.start("left", leftPosition + "px");
                    isAnimating = true;
                }
            });
        } else {
            buttonLeft.setStyle("display", "none");
            buttonRight.setStyle("display", "none");
        }
    })

    //Fix for footer navigation position:fixed in iPhone/iPad due to viewport/page bug
    if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/iPad/i))
    {
        $("stinkyfooter").setStyle("position", "static");
    }   
})

function openSliderLinkList(obj){
	var mtobj = $(obj);
	var listChild = mtobj.retrieve("listChild");
		if (listChild != null) {
			var mtFx = listChild.retrieve("elmAnim");
			mtFx.cancel();
			mtFx.start({"top":"25px","text-align":"left","background-position":"-340px -106px"});
		}
		else {
			listChild = $(obj).getElement('ul');
			var mtFx = listChild.retrieve("elmAnim");
			if (mtFx != null) {
				mtFx.cancel();
				mtFx.start({ "top": "25px", "text-align": "left", "background-position": "-340px -106px" });
			}
			else {
			    listChild.setStyle("background-position","-340px -106px");
				mtFx = new Fx.Morph(listChild);
				mtFx.start({"top":"25px","text-align":"left","background-position":"-340px -106px"});
				listChild.store("elmAnim", mtFx)
			}
		}
}
function closeSliderLinkList(obj){
	var mtobj = $(obj); 
	var listChild = mtobj.retrieve("listChild");
	if(listChild!=null){
		var mtFx = listChild.retrieve("elmAnim");
		mtFx.cancel();
		mtFx.start({"top":"175px","text-align":"center","background-position":"-543px -106px"});
	} else {
		listChild = $(obj).getElement('ul');
		mtobj.retrieve("store",listChild);
		var mtFx = listChild.retrieve("elmAnim");
		if(mtFx != null){
			mtFx.cancel();
			mtFx.start({"top":"175px","text-align":"center","background-position":"-543px -106px"});
		} else {
			mtFx = new Fx.Morph(listChild);
			mtFx.start({"top":"175px","text-align":"center","background-position":"-543px -106px"});
			listChild.store("elmAnim",mtFx)
		}
	}
}
