summaryrefslogtreecommitdiff
path: root/static/js/src/fun.js
blob: 11886786fc6d664604200bd69be201990f6c80b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// well fuck webkit for not supporting {text-decoration: blink}

function blinkStart(){
    blinkTimer = setInterval(function(){
        $(".blink").removeClass("blink").addClass("blink-turning-off")
        $(".blink-off").removeClass("blink-off").addClass("blink")
        $(".blink-turning-off").removeClass("blink-turning-off").addClass("blink-off")
    },500);
}

function blinkStop(){
    clearInterval(blinkTimer);
}



//big hand stuff
// TODO: replace this with simple pointer-events thing.
function initBigHand(id){
    var cursorId = "#cursor-big"
    var cursor = $(cursorId)[0]
    
    // jquery's reported element sizes are not exactly the same as the browser's 'mouseover' target sizes
    // so we'll allow a few pixels extra
    var fudgeFactor = 2

    $(id).addClass("no-cursor")

    // i have to do this weirdly bc putting the cursor image where the mouse cursor is causes problems with mouse events:
    // * it stops mousemove events on the image below the mouse cursor
    // * it fucks up mouseover/out and even mouseenter/leave events, as well as click
    
    // so i am doing this:
    // on mousing over the image:
    //    make cursor visible
    //    find image co-ords
    //    bind a global mousemove func
    //    bind cursor click event
    //    unbind mouseover
    // mousemove func:
    //    move image to mouse co-ords
    //    if mouse co-ords are outside the image co-ords:
    //        make cursor invisible
    //        unbind mousemove func
    //        unbind cursor click event

    var mousemove = function(e){
        var y = e.pageY, x = e.pageX, coords = initBigHand.coords
        
        cursor.style.top = y + "px"
        cursor.style.left = x - 32 + "px" // 32: (4 pixels * 8 pixels per big pixel) to line up pointy finger with cursor
        if (y < coords.top || 
            y > coords.bottom ||
            x < coords.left || 
            x > coords.right) {
            $(cursorId).addClass('invisible')
            $(cursorId).css({"top": 0, "left": 0 })
            $(cursorId).unbind('click', cursorClick)
            $('logo7').unbind('mousemove', mousemove)
            $(id).mouseover(imageMouseOver)
        }    
    }
    
    var cursorClick = function(){ $(id).click() }
    
    var imageMouseOver = function(){
        //console.log("moused over...")
        initBigHand.coords = {
            "left":   $(id).offset().left - fudgeFactor,
            "top":    $(id).offset().top - fudgeFactor,
            "right":  $(id).offset().left + $(id).width() + fudgeFactor,
            "bottom": $(id).offset().top + $(id).height() + fudgeFactor
        }
        $('body').mousemove(mousemove)
        $(cursorId).click(cursorClick)
        $(cursorId).removeClass('invisible')
        $(id).unbind('mouseover', imageMouseOver)
    }
    
    $(id).mouseover(imageMouseOver)
    
}


// uhhh todo: move preload stuff into js:
// var nextImage = new Image();
// nextImage.src = "your-url/newImage.gif";

// mAcRoMeDiA sHiT
function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
    var d=document;if(d.images){ if(!d.MM_p) d.MM_p=new Array();var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}