var curentscroll = 0; // current scroll init 0 to be start over
var menuHeight = 0; // initial products menu height
var caseStudies = {
    index:0,
    interval: undefined,
    duration: 6000,
    items: [],
    init:function(options){
        caseStudies.duration = (options.duration)? options.duration*1000 : caseStudies.duration;
        caseStudies.put(caseStudies.items[caseStudies.index++]);
        caseStudies.setInterval();
        Ext.get("wholeCase").hover(caseStudies.clearInterval, caseStudies.setInterval);
    },
    put: function(study){
        $("cs_teaser").update("“"+study.teaser+"“");
        $("cs_sign").update(study.sign);
        $("cs_link").update('<a href="'+ study.foldername+'"><strong>Read Complete Case »</strong></a>');
    },
    next: function(){
        if(caseStudies.index == caseStudies.items.length){ caseStudies.index = 0; }
        Ext.get("wholeCase").shift({opacity:0, duration:0.5, callback:function(){
            caseStudies.put(caseStudies.items[caseStudies.index++]);
            Ext.get("wholeCase").shift({
                opacity: 1,
                duration: 0.5
            });
            caseStudies.setInterval()
        }});
    },
    clearInterval:function(){
        if (!caseStudies.interval) { return true; }
        clearInterval(caseStudies.interval);
    },
    setInterval: function(){
        caseStudies.clearInterval();
        caseStudies.interval = setInterval(caseStudies.next, caseStudies.duration)
    }
}

function getInitialHeight(elem, num){
    var tds = $(elem).descendants().findAll(function(node){ return node.className == "docItem"; });
    var height = 0;
    for(var x = 0; x < num; x++){
        if (!tds[x]) { continue; }
        height += Number(tds[x].getHeight())+10
    }
    return height;
}
function menu_open(menu){
    Ext.get(menu).time = setTimeout(function(){
        // set borders of the menu
        $(menu+"_menu").setStyle({border:"2px solid #999", borderTop:"none", borderLeft:"none"});
        Ext.get(menu+"_menu").shift({    // Drop the menu
            height:$(menu+"_table").getHeight(),
            easing:"bounceOut",
            duration:1,
            stopFx: true,
            callback:function(){
                $(menu+"_menu").setStyle({border:"2px solid #999", borderTop:"none", borderLeft:"none"});
            }
        });
    },300)
}

function menu_close(menu){
    clearTimeout(Ext.get(menu).time);
    Ext.get(menu+"_menu").shift({ // close menu
        height:0,
        duration:0.2,
        stopFx: true,
        callback: function(){
            $(menu+"_menu").setStyle({border:"none"}); // remove border after effect finishes
        }
    });
}

Ext.onReady(function(){
    // pretend hover for each Navigation Item
    $$(".menuItem").each(function(item){
        Ext.get(item).hover(
            function(){ 
                Ext.get(item).setStyle({background:"url(/images/nav_over.png)"});
            }, function(){ 
                Ext.get(item).setStyle({background:"none"}); 
            }
        );
    });
    
    Ext.get("products").hover(
        function(){ menu_open("products"); }, 
        function(){ menu_close("products"); }
    );

    Ext.get("services").hover(
        function(){ menu_open("services"); }, 
        function(){ menu_close("services"); }
    );

    
    Ext.get("support").hover(
        function(){ menu_open("support"); }, 
        function(){ menu_close("support"); }
    );
    
	$$(".products").each(function(item){
        Ext.get(item).hover(function(){ Ext.get(item).setStyle({background:"#B7B7B7", color:"#fff"})}, function(){ Ext.get(item).setStyle({background:"none", color:"#000"}); });
    });
    
    $$(".forumthread").each(function(item){
        Ext.get(item).hover(function(){ Ext.get(item).setStyle({background:"#F0F0F0"})}, function(){ Ext.get(item).setStyle({background:"#FFF"}); });
    });
    
    /*
    $$(".documentsClose").each(function(elem){
        Ext.get(elem).hover(
            function(){ // onmouse over expand document bar for full preview
                elem.time = setTimeout(function(){
                    var h = elem.cleanWhitespace().firstChild.getHeight(); // get inner tables height
                    Ext.get(elem).shift({height:h, easing:"easeOut", duration:.5, stopFx:true}); // animate
                },600)
            },
            function(){ // onmouse out get back to original height
                if(elem.time){ clearTimeout(elem.time); }
                Ext.get(elem).shift({height:elem.initHeight, easing:"easeOut", duration:.5, stopFx:true});
            }
        );
        elem.initHeight = getInitialHeight(elem, 10); // Collect each documentation titles height and Show only three menu items at once
        elem.setStyle({height:elem.initHeight+"px"}); // set initial height
    })
    if($("screenshots")){
        Ext.get("thumbs").scrollTo("left", curentscroll, true);  // reset the scroll
        // right button action
        Ext.get("right").on("click", function(){
            curentscroll += 460;
            curentscroll = (curentscroll>$("ttable").getWidth())? $("ttable").getWidth() : curentscroll;
            Ext.get("thumbs").scrollTo("left", curentscroll, {easing:"easeOut", duration:1.5});
        })
        // left button action
        Ext.get("left").on("click", function(){
            curentscroll-=460;
            curentscroll = (curentscroll<0)? 0 : curentscroll;
            Ext.get("thumbs").scrollTo("left", curentscroll, {easing:"easeOut", duration:1.5});
        })
        
        // set all the thumbnails onclick
        $$(".thump").each(function(img){    // set first thumnail for preview
            if(!$("preview").set){
                $("preview").src = img.src.replace("_th", "");
                $("preview").set = true;
            }
            
            img.observe("click", function(){ $("preview").src = img.src.replace("_th", ""); });
        })
    }
    */   
    if($("wholeCase")){
        caseStudies.init({duration:20}); //start case studies loop, duration for change in seconds
    }
    if(!Prototype.Browser.Opera){    // Text shadows not working on opera
        
        // Slows down the carousel.
        // $$(".promo_text").invoke("textshadow",{light:"glow", offset:2, opacity:.5, color:"#000", imageLike:true});
        
        if($("white")){
            $("white").textshadow({light:"glow", offset:2, color:"#000", opacity:0.5, imageLike:true});
        }
    }
    if($("headingTable")){
        $("headingTable").unselectable();
    }
    
})

function buttonOver(elem,over){
	var realImage = "";
	
    if(elem.style.backgroundImage){
		realImage = elem.style.backgroundImage;
		elem.style.backgroundImage = elem.style.backgroundImage.substring(0,elem.style.backgroundImage.length-5) + "_over.gif)";
	}else if(elem.src){
		realImage = elem.src;
		elem.src = elem.src.substring(0,elem.src.length-4) + "_over.gif";
	}
    
	elem.onmouseout = function(){ buttonOut(elem); };
    
	if(!over){
		elem.onmousedown = function(){ buttonDown(elem); };
		elem.onmouseup  = function(){ buttonUp(elem); };
	}
    
	buttonOut = function(elem){
		if(elem.style.backgroundImage){
			elem.style.backgroundImage = realImage;
		}else if(elem.src){
			elem.src = realImage;
		}
	}
    
	buttonUp = function(elem){
		if(elem.style.backgroundImage){
			elem.style.backgroundImage = realImage.substring(0,realImage.length-5) + "_over.gif)";
		}else if(elem.src){
			elem.src = realImage.substring(0,realImage.length-4) + "_over.gif";
		}
	}
    
	buttonDown = function(elem){
		if(elem.style.backgroundImage){
			elem.style.backgroundImage = realImage.substring(0,realImage.length-5) + "_down.gif)";
		}else if(elem.src){
			elem.src = realImage.substring(0,realImage.length-4) + "_down.gif";
		}
	}
}

