web/wp-content/themes/inove/js/base.js
author ymh <ymh.work@gmail.com>
Mon, 22 Mar 2010 16:36:28 +0100
changeset 5 ac511f1ccc8e
parent 1 0d28b7c10758
permissions -rw-r--r--
add hgignore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
/*
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
Author: mg12
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
Update: 2008/05/05
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
Author URI: http://www.neoease.com/
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
*/
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
(function() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
function $(id) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
	return document.getElementById(id);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
function setStyleDisplay(id, status) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
	$(id).style.display = status;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
function goTop(a, t) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
	a = a || 0.1;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
	t = t || 16;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
	var x1 = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
	var y1 = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
	var x2 = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
	var y2 = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
	var x3 = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
	var y3 = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
	if (document.documentElement) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
		x1 = document.documentElement.scrollLeft || 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
		y1 = document.documentElement.scrollTop || 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
	if (document.body) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
		x2 = document.body.scrollLeft || 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
		y2 = document.body.scrollTop || 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
	var x3 = window.scrollX || 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
	var y3 = window.scrollY || 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
	var x = Math.max(x1, Math.max(x2, x3));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
	var y = Math.max(y1, Math.max(y2, y3));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
	var speed = 1 + a;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
	window.scrollTo(Math.floor(x / speed), Math.floor(y / speed));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
	if(x > 0 || y > 0) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
		var f = "MGJS.goTop(" + a + ", " + t + ")";
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
		window.setTimeout(f, t);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
function switchTab(showPanels, hidePanels, activeTab, activeClass, fadeTab, fadeClass) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
	$(activeTab).className = activeClass;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
	$(fadeTab).className = fadeClass;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
	var panel, panelList;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
	panelList = showPanels.split(',');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
	for (var i = 0; i < panelList.length; i++) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
		var panel = panelList[i];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
		if ($(panel)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
			setStyleDisplay(panel, 'block');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
	panelList = hidePanels.split(',');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
	for (var i = 0; i < panelList.length; i++) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
		panel = panelList[i];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
		if ($(panel)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
			setStyleDisplay(panel, 'none');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
function loadCommentShortcut() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
	$('comment').onkeydown = function (moz_ev) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
		var ev = null;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
		if (window.event){
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
			ev = window.event;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
		} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
			ev = moz_ev;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
		if (ev != null && ev.ctrlKey && ev.keyCode == 13) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
			$('submit').click();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
	$('submit').value += ' (Ctrl+Enter)';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
function getElementsByClassName(className, tag, parent) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
	parent = parent || document;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
	var allTags = (tag == '*' && parent.all) ? parent.all : parent.getElementsByTagName(tag);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
	var matchingElements = new Array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
	className = className.replace(/\-/g, '\\-');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
	var regex = new RegExp('(^|\\s)' + className + '(\\s|$)');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
	var element;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
	for (var i = 0; i < allTags.length; i++) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
		element = allTags[i];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
		if (regex.test(element.className)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
			matchingElements.push(element);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
	return matchingElements;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
window['MGJS'] = {};
0d28b7c10758 First commit
ymh
parents:
diff changeset
   106
window['MGJS']['$'] = $;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   107
window['MGJS']['setStyleDisplay'] = setStyleDisplay;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   108
window['MGJS']['goTop'] = goTop;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   109
window['MGJS']['switchTab'] = switchTab;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   110
window['MGJS']['loadCommentShortcut'] = loadCommentShortcut;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   111
window['MGJS']['getElementsByClassName'] = getElementsByClassName;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   112
0d28b7c10758 First commit
ymh
parents:
diff changeset
   113
})();