말은 자신을 기쁘게도 슬프게도 건강하게도 아프게도 할 수 있습니다.
지혜롭게도 어리석게도 만듭니다.
말은 사람을 일으켜 세울 수도 있고 낙담시키거나 상처받게도 할 수 있습니다.
말하기 전에 내가 한 말이 진실한가?
도움이 되는가?
영감을 주는가?
꼭 필요한가? 그리고 친절한가를 먼저 생각해야 합니다.
분노의 입술을 가진 사람은 잔인한 마음을 가진 사람입니다.
부정적인 입술을 가진 사람은 두려운 마음을 나타냅니다.
판단하는 입술을 가진 사람은 죄책감을 가진 사람입니다.
지옥을 항상 말하는 사람은 그 마음에 지옥을 가진 사람입니다.
격려의 입술을 가진 사람은 행복한 마음을 가진 사람입니다.
온유한 입술을 가진 사람은 그 마음에 사랑이 있습니다.
자신의 입술을 제어할 줄 아는 사람은 평화의 마음이 있습니다.
하기에 "말하기 전에 세번을 생각하라" 라는 격언이 있습니다.
내가 하는 이 말이 나에게도 이롭고상대방에도 이롭고
듣는 사람들에게도 이로운 말인가?
',
STYLE: '.playBox_thx #player.player,.playBox_thx #player.player object{min-height:' + Math.max(Global.innerHeight * 0.6, 580) + 'px !important}.tips_container{position:absolute;top:3em;padding:1em 2em;right:50px;color:green;opacity:0.4;background:#ddd;z-index:999999}.tips_container:hover{opacity:0.8}.tips_container .tips_toggleWide{color:red;cursor:pointer;display:none}.tips_close{position:absolute;right:3px;top:3px}',
NODEINSERTED_HACK: '@-moz-keyframes nodeInserted{from{opacity:0.99;}to{opacity:1;}}@-webkit-keyframes nodeInserted{from{opacity:0.99;}to{opacity:1;}}@-o-keyframes nodeInserted{from{opacity:0.99;}to{opacity:1;}}@keyframes nodeInserted{from{opacity:0.99;}to{opacity:1;}}embed,object{animation-duration:.001s;-ms-animation-duration:.001s;-moz-animation-duration:.001s;-webkit-animation-duration:.001s;-o-animation-duration:.001s;animation-name:nodeInserted;-ms-animation-name:nodeInserted;-moz-animation-name:nodeInserted;-webkit-animation-name:nodeInserted;-o-animation-name:nodeInserted;}',
TOGGLE_BTN: '.tips_container .tips_toggleWide'
};
var DONE = [];
var UTIL = {
addCss: function (str) {
var style = document.createElement('style');
style.textContent = str;
document.head.appendChild(style);
},
procFlash: function (elem) {
if (DONE.indexOf(elem) !== -1) {
return;
}
if (this.reloadFlash(elem)) {
DONE.push(elem);
}
},
reloadFlash: function (elem) {
var attrs = ['data', 'src'];
var players = CONSTANTS.PLAYERS;
var reloaded = false;
UTIL.forEach(attrs, function (attr) {
UTIL.forEach(players, function (player) {
var find = player.find;
var replace = player.replace;
var value = elem[attr];
var movie = elem.querySelector('param[name="movie"]');
if(movie&&movie.value){
movie.value = movie.value.replace(find,replace);
}
if (value && find.test(value)) {
var nextSibling = elem.nextSibling;
var parentNode = elem.parentNode;
var clone = elem.cloneNode(true);
clone[attr] = value.replace(find, replace);
parentNode.removeChild(elem);
parentNode.insertBefore(clone, nextSibling);
//Baidu tieba shit.
if(getComputedStyle(clone).display==='none'){
clone.style.display='block';
}
reloaded = true;
}
});
});
return reloaded;
},
forEach: function (arr, callback) {
if (this.isArrayLike(arr)) {
if (Array.prototype.forEach) {
Array.prototype.forEach.call(arr, callback);
} else {
var i = 0;
for (i = 0; i < arr.length; ++i) {
callback.call(arr[i], arr[i]);
}
}
}
},
isArrayLike: function (obj) {
if (typeof obj !== 'object') {
return false;
}
var types = ['Array', 'NodeList', 'HTMLCollection'];
var i = 0;
for (i = 0; i < types.length; ++i) {
if (Object.prototype.toString.call(obj).indexOf(types[i]) !== -1) {
return true;
}
}
return false;
}
};
var STORE;
(function(){
var isStorage = true;
if(!Global.localStorage){
isStorage = false;
}else{
try{
var key = String(Math.random());
localStorage.setItem(key,'test');
if(localStorage.getItem(key)!=='test'){
throw 'not equal';
}
localStorage.removeItem(key);
}catch(e){
isStorage=false;
}
}
STORE = {
getItem: function(key){
if(isStorage){
return localStorage.getItem(key);
}
},
setItem: function(key, value){
if(isStorage){
localStorage.setItem(key, value);
}
}
};
})();
function init() {
function onAnimationStartHandler(e) {
if (e.animationName === 'nodeInserted') {
var target = e.target;
if (target.nodeType === 1 && /OBJECT|EMBED|IFRAME/ig.test(target.nodeName)) {
UTIL.procFlash(target);
}
}
}
UTIL.addCss(CONSTANTS.NODEINSERTED_HACK);
/*Chrome*/
document.body.addEventListener('webkitAnimationEnd', onAnimationStartHandler, false);
}
function tips() {
var holder = document.body.querySelector(CONSTANTS.TIPS_HOLDER);
if (holder) {
var div = document.createElement('div');
if (document.defaultView.getComputedStyle(holder, null).getPropertyValue('position') !== 'relative') {
div.style.position = 'relative';
}
div.innerHTML = CONSTANTS.TIPS;
div.querySelector('.tips_close').addEventListener('click',function(e){
if(e.preventDefault){
e.preventDefault();
}
div.parentNode.removeChild(div);
return false;
},false);
holder.appendChild(div);
UTIL.addCss(CONSTANTS.STYLE);
}
}
function share(elem) {
var pairs = CONSTANTS.SHARES;
UTIL.forEach(pairs, function (item) {
elem.value = elem.value.replace(item.find, item.replace);
});
}
function setTHX(opt){
var player = document.querySelector('object#movie_player');
var parent = document.body.querySelector('.playBox');
var wide = document.body.querySelector('.playBox_thx');
if(opt&&player){
try{
player.setTHX(opt);
}catch(e){}
switch(opt){
case 'on':
if (parent && !wide) {
parent.className += ' playBox_thx';
}
break;
case 'off':
if (parent && wide) {
parent.className = 'playBox';
}
break;
}
}
}
var CONTROLLER = [
{
host: '.',
fn: function () {
init();
}
},
{
host: 'youku.com',
fn: function () {
var matches = document.body.querySelectorAll(CONSTANTS.SHARE_DOM);
UTIL.forEach(matches, share);
tips();
if(STORE.getItem('THX')==='on'){
setTHX(STORE.getItem('THX'));
}
var toggle = document.body.querySelector(CONSTANTS.TOGGLE_BTN);
toggle.style.display='inline';
toggle.addEventListener('click',function(){
STORE.setItem('THX',STORE.getItem('THX')==='on'?'off':'on');
setTHX(STORE.getItem('THX'));
},false);
}
},
{
host: 'tudou.com',
fn: function () {
function hack(){
var TUI_copyToClip = Global.TUI&&Global.TUI.copyToClip;
if(TUI_copyToClip&&TUI_copyToClip.toString().indexOf('arguments')===-1){
Global.TUI.copyToClip = function () {
var matches = document.body.querySelectorAll(CONSTANTS.SHARE_DOM);
UTIL.forEach(matches, share);
TUI_copyToClip.apply(Global.TUI, arguments);
};
clearInterval(inter);
}
}
tips();
var tudouPlayer = document.body.querySelector('#playerObject');
var normalDom = document.querySelector('.normal');
if (tudouPlayer && normalDom) {
normalDom.className = normalDom.className.replace('normal','widescreen');
}
var inter = setInterval(hack,100);
try{
Global.playerEx.event.fire('scale',[true]);
}catch(e){}
}
}
];
var host = location.host;
function PROC(item) {
if (host.indexOf(item.host) !== -1) {
item.fn();
return;
}
}
UTIL.forEach(CONTROLLER, PROC);
})(window);