var Site={
    init:function(){
        if(window.webkit){
            $("q").type="search";
        }
        Site.random();
        Site.pngfix();
        Site.popup();
        Site.projects();
        $(document.body).addClass("js");
        if(window.attachEvent&&!window.XMLHttpRequest){
            $$("#nav li ul").addEvent("mouseout", function(e){
                var e = new Event(e);
                e.stop();
                $$("#nav .hover").removeClass("hover");
            });
            $$("#nav>li").addEvent("mouseover", function(e){
                e = new Event(e);
                e.stop();
                $$("#nav .hover").removeClass("hover");
                this.addClass("hover");
            });
        }
        Site.feedback();
        Site.logo();
        Site.faq();
        Site.slideshow();
        Site.images();
        Site.zebra();
        $$(".labels a").addEvent("mouseover", function(){
            this.style.backgroundColor = "#c9cacc";
        });
        $$(".labels a").addEvent("mouseout", function(){
            this.style.backgroundColor = "transparent";
        });
    },
    logo:function(){
        swfobject.embedSWF("/f/logo.swf", "logo", "304", "77", "9.0.0");
    },
    zebra:function(){
        $$("tr").each(function(el,i){
        el.getElements("td:nth-child(2n), th:nth-child(2n)").addClass("alt")
        if(i%2==0) el.addClass("alt");
        })
    },
    popup:function(){
        $$("#order a").addEvent("click", function(e){
            if(Browser.Engine.trident && Browser.Features.xhr) return;
            var e = new Event(e);
            e.stop();
            if(!$("popup")){
                var ppp = new Element("div", {'id':'popup', 'styles':{'display':'none', 'position':'absolute'}});
                ppp.adopt(new Element('div', {'id':'iefix'}), new Element('div', {'id':'loader'}), new Element('a', {'href':'#','id':'close', 'html':'<span>&times;</span>'}));
                document.body.appendChild(ppp);
                $('close').addEvent('click', Site.close);
                $(document.body).addEvent('keypress', function(e){
                    if(e.code==27) Site.close();
                });
            }
            $("popup").style.display = "block";
            $("popup").style.top = (200 + ((document.documentElement.scrollTop)?document.documentElement.scrollTop:document.body.scrollTop) + "px");
            $("loader").load(this.href);
        })
    },
    close:function(e){
        var e = new Event(e);
        e.stop();
        $("popup").style.display = "none";
    },
    projects:function(){
        $$(".projects ul").set({'styles':{'display':'none'}});
        $$(".projects a").each(function(el,i){
            var list = el.getParent("li").getElement("ul")
            if(list){
                el.getParent("li").addClass('dashed');
                if (el.getParent("li").hasClass("open")) list.style.display = "block";
                el.addEvent("click", function(e){
                    var e = new Event(e);
                    e.stop();
                    //slider.toggle();
                    list.style.display=(list.offsetHeight)?"none":"block";
                })
            }
        });
    },
    random:function(){
        Site.pos = $random(0, Site.cars.length-1);
        var splash = $$("#splash div")[0];
        if (splash) splash.className = Site.cars[Site.pos];
        if($("tachka")) $("tachka").className = Site.cars[Site.pos];

    },
    cars:["cruiser", "jeep", "ford", "gazel", "honda", "lada", "lexus", "megan", "mers", "rav4"],
    images:function(){
        var imgs = [];
        Site.cars.each(function(car,i){
            imgs[i] = "/p/"+car+".png";
        });
        imgs[imgs.length] = "/p/order.png";
        var preloads = new Asset.images(imgs);
    },
    defaults:function(els, values){
        $$(els).each(function(el, i){
            try{$$("label[for='"+el.id+"']")[0].remove()}catch(e){}
            el.value=values[i];
            el.addEvent("focus", function(){
                this.value=(this.value==values[i])?"":this.value;    
                this.select();
            });
            el.addEvent("blur", function(){
                this.value=(this.value=="")?values[i]:this.value;    
            });
        });
    },
    feedback:function(){
        if(!$$("form.feedback").length) return;
        var ffx = new Fx.Slide($$("form.feedback")[0]).hide();
        $$("h3.feedback").addEvent("click", function(){
            ffx.toggle();
        });
     },
    faq:function(){
        $$(".faq h3").each(function(el,i){
            var slider = new Fx.Slide(el.getParent().getElement(".answer")).hide();
            $$(".js .answer").each(function(el,i){el.style.display = "block"});
            el.addEvent("click", function(){
                slider.toggle();
            });
        });

    },
    slideshow:function(){
        $$(".controls a").addEvent("click", Site.slide);
    },
    slide:function(e){
        var e = new Event(e);
        e.stop();
        var l = Site.cars.length;
        var sign = (e.target.className=="bw")?'-1':'+1';
        var pos = Site.pos?Site.pos:l;
        pos = eval(pos+sign);
        if(pos >= l) pos = pos - l;
        if(pos < 0) pos = pos + l;
        Site.pos = pos;
        var d = $$("#splash div")[0];
        var fx = new Fx.Tween(d);
        fx.start('opacity', 0).chain(
            function(){fx.start('opacity', 1); }
        );
        (function(){d.className = Site.cars[pos];}).delay(500);
    },
    pngfix:function(){
        if (window.attachEvent && !window.XMLHttpRequest) {
            //  css selector of all images with a property src ending on "png"
            $$('img[src$=png]').each(function(img, i) {

                // set some sample events...
                var coords = img.getCoordinates(); // stick that inside the 'addEvent' and you get errors after png fix.
                img.addEvent("mouseenter", function() {
                    var pic = new Element("div");
                        pic.setStyles({
                            "position": "absolute",
                            "left": parseInt(coords["left"]+10)+"px",
                            "top": parseInt(coords["top"]+26)+"px",
                            "border": "1px solid #000",
                            "border-top": "0px",
                            "min-width": "293px",
                            "min-height": "113px"
                        })
                        .setHTML("<img src='http://dci.uk.net/images/dot-com-logo-splash2.jpg' />").setProperty("id", "picpreview").injectInside(document.body);

                    var ps = pic.clone().empty().setOpacity(0.5)
                        .setStyles({
                            "background": "#555",
                            "border": "1px solid #000",
                            "left": parseInt(coords["left"]+13)+"px",
                            "top": parseInt(coords["top"]+29)+"px",
                            "width": "293px",
                            "height": "113px"
                        })
                        .setProperty("id", "ps")
                        .injectBefore(pic);

                    $("eventboard").setHTML(this.id);
                })
                .addEvent("mouseleave", function() {
                    if ($("picpreview")) {
                        $("picpreview").remove();
                        $("ps").remove();
                        $("eventboard").setHTML("left " + this.id);
                    }

                });

                var oldId = img.id;
                img.setProperty("id", "old"+i)

                // leave our demo one out... (has rel="exclude")
                if (img.getProperty("rel") == "exclude")
                    return false;

                // create span element...
                var imgClass = (img.className) ? "class='" + img.className + "' " : ""
                var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
                var imgStyle = "display:inline-block;" + img.style.cssText
                if (img.align == "left") imgStyle = "float:left;" + imgStyle
                if (img.align == "right") imgStyle = "float:right;" + imgStyle
                if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
                var strNewHTML = "<span id='clone"+i+"' " + imgClass + imgTitle
                + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
                + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                + "(src=\'" + img.src + "\', sizingMethod='crop');\"></span>";

                img.outerHTML = strNewHTML;
                // now, revert events back, then restore whatever other properties we want (opacity does not work)
                $("clone"+i).cloneEvents(img).setProperties(img.getProperties('alt','rel','title','id'));
                // id now is old id...

            }); // each
        } // end if ie6

    }
}
window.addEvent("domready", Site.init)

