Files
ntut-com-tw/chipet/chia.js
2018-02-01 19:48:42 +08:00

1 line
17 KiB
JavaScript

// JavaScript Document - Coded soly by Gabe S. of Novis Design, Thanks to Mike for the cool graphics,
// you rock man. Also thanks to Meechy, Mendoza, Nunez, & Patino for your feedback and friendship.
// Everybody go visit NovisDesign.net, its a great site. If you want to use any of this code
// please contact me at that site. Enjoy your Chi Pet!
// Our lone global. hehe
var checkwater = true;
if (window.widget) {
widget.onshow = onshow;
widget.onhide = onhide;
}
function onshow() {
changeChia()
watered()
talk()
NDupdate();
}
function onhide() {
if (ft != undefined) {
clearTimeout(ft)
document.getElementById('alerts').style.opacity = '0';
document.getElementById('asmall').innerHTML = '';
document.getElementById('abig').innerHTML = '';
}
if (c != 1) {
c == 1;
}
}
// Easy global Funct for miliseconds since time...
function getHoursNow() {
var startup = new Date();
var f = startup.getTime();
var i = parseInt(f)
return i
}
// On Start...
function setup() {
NDupdate();
changeChia()
doWater()
var time = widget.preferenceForKey('time')
if (time == undefined) {
widget.setPreferenceForKey(getHoursNow(), 'time')
}
var cw = widget.preferenceForKey('cw')
if (cw != undefined) {
if (cw) {
stillUp();
}
else {
stillHib();
}
}
var i;
var lg = widget.preferenceForKey('lg');
if (lg && lg != 0) {
for (i = 1; i <= lg; i++) {
if (widget.preferenceForKey('speak'+i) != undefined) {
var item = widget.preferenceForKey('speak'+i);
var n = document.createElement("option")
n.text = item;
n.value = item;
document.getElementById('pList').add(n,null);
}
}
}
var showAlerts = widget.preferenceForKey('showAlerts');
if (showAlerts != undefined) {
document.getElementById('alertPref').checked = showAlerts
}
var showSave = widget.preferenceForKey('showSave');
if (showAlerts != undefined) {
document.getElementById('savePref').checked = showSave
}
var showLength = widget.preferenceForKey('showLength');
if (showLength != undefined) {
document.getElementById('lengthPref').value = showLength;
changeLength(showLength)
}
}
// This returnes the amount of time you've had the pet
function checkNewH() {
var time = widget.preferenceForKey('time')
var a = new Date();
var b = a.getTime();
var x = b - time;
var y = parseInt(x);
return y;
}
// Main function, change the body
function changeChia() {
if (checkwater) {
var diff = checkNewH();
var elm = document.getElementById("default");
if (diff <= 3600000) {
elm.src = 'Images/chistart.png';
}
if (diff > 3600000 && diff <= 172800000) {
elm.src = 'Images/day1.png';
}
if (diff > 172800000 && diff <= 518400000) {
elm.src = 'Images/day2.png';
}
if (diff > 518400000 && diff <= 691200000) {
elm.src = 'Images/day3.png';
}
if (diff > 691200000 && diff <= 864000000) {
elm.src = 'Images/day4.png';
}
if (diff > 864000000 && diff <= 1036800000) {
elm.src = 'Images/day5.png';
document.getElementById('haircut').style.display = 'block';
}
if (diff > 1036800000) {
elm.src = 'Images/day6.png';
document.getElementById('haircut').style.display = 'block';
tryRand();
}
}
}
// Water Functions
function overWater() {
document.getElementById('water').src = "Images/waterover.png";
}
function outWater() {
document.getElementById('water').src = "Images/water.png";
}
function clickWater() {
document.getElementById('water').src = "Images/waterclick.png";
rainIt();
}
function doWater() {
var clicked = widget.preferenceForKey('clicked')
if (clicked == undefined) {
widget.setPreferenceForKey(getHoursNow(), 'clicked')
}
watered();
}
// See How long since last water...
function checkNewHWater() {
var clicked = widget.preferenceForKey('clicked')
var a = new Date();
var b = a.getTime();
var x = b - clicked;
var y = parseInt(x);
return y;
}
// Change acording,
function watered() {
var diff = checkNewHWater();
if (checkwater) {
if (diff >= 259200000) {
document.getElementById('alive').style.display = 'none';
document.getElementById('dead').style.display = 'block';
}
}
}
function updateWater() {
widget.setPreferenceForKey(getHoursNow(), 'clicked')
watered()
}
// Once Dead
function redoChia() {
widget.setPreferenceForKey(getHoursNow(), 'clicked')
widget.setPreferenceForKey(getHoursNow(), 'time')
document.getElementById('haircut').style.display = 'none';
document.getElementById('alive').style.display = 'block';
document.getElementById('dead').style.display = 'none';
watered();
changeChia()
}
// New Hibernation
function checkNewHib() {
var sH = widget.preferenceForKey('startHibernation');
var sT = widget.preferenceForKey('time');
var sub = sH - sT;
elm = document.getElementById('default');
if (diff <= 3600000) {
elm.src = 'Images/chistart.png';
}
if (diff > 3600000 && diff <= 172800000) {
elm.src = 'Images/day1.png';
}
if (diff > 172800000 && diff <= 518400000) {
elm.src = 'Images/day2.png';
}
if (diff > 518400000 && diff <= 691200000) {
elm.src = 'Images/day3.png';
}
if (diff > 691200000 && diff <= 864000000) {
elm.src = 'Images/day4.png';
}
if (diff > 864000000 && diff <= 1036800000) {
elm.src = 'Images/day5.png';
}
if (diff > 1036800000) {
elm.src = 'Images/day6.png';
}
}
function compTime() {
var sH = widget.preferenceForKey('startHibernation');
var sT = getHoursNow();
var sub = sT - sH;
var add = widget.preferenceForKey('time') + sub;
widget.setPreferenceForKey(add, 'time');
var add = widget.preferenceForKey('clicked') + sub;
widget.setPreferenceForKey(add, 'clicked');
}
function startHibernation() {
checkwater = false;
document.getElementById('bottomText').innerHTML = 'click to turn hibernation off';
document.getElementById('startH').onclick = wakeUp;
document.getElementById('startH').src = 'Images/hibernation_on.png'
document.getElementById('haircut').style.display = 'none';
document.getElementById('water').style.display = 'none';
document.getElementById('hat').style.display = 'block';
document.getElementById('zzzs').style.display = 'block';
document.getElementById('eye').style.display = 'block';
widget.setPreferenceForKey(false, 'cw')
widget.setPreferenceForKey(getHoursNow(), 'startHibernation')
checkNewHib()
}
function wakeUp() {
var diff = checkNewH();
checkwater = true;
document.getElementById('bottomText').innerHTML = 'click to turn hibernation on';
document.getElementById('startH').onclick = startHibernation;
document.getElementById('startH').src = 'Images/hibernation_off.png';
document.getElementById('water').style.display = 'block';
document.getElementById('hat').style.display = 'none';
document.getElementById('zzzs').style.display = 'none';
document.getElementById('eye').style.display = 'none';
widget.setPreferenceForKey(true, 'cw')
compTime();
changeChia();
}
function stillUp() {
var diff = checkNewH();
checkwater = true;
document.getElementById('bottomText').innerHTML = 'click to turn hibernation on';
document.getElementById('startH').src = 'Images/hibernation_off.png';
document.getElementById('startH').onclick = startHibernation;
if (diff > 864000000) {
document.getElementById('haircut').style.display = 'block';
}
document.getElementById('water').style.display = 'block';
document.getElementById('hat').style.display = 'none';
document.getElementById('zzzs').style.display = 'none';
document.getElementById('eye').style.display = 'none';
}
function stillHib() {
checkwater = false;
document.getElementById('bottomText').innerHTML = 'click to turn hibernation off';
document.getElementById('startH').src = 'Images/hibernation_on.png'
document.getElementById('startH').onclick = wakeUp;
document.getElementById('haircut').style.display = 'none';
document.getElementById('water').style.display = 'none';
document.getElementById('hat').style.display = 'block';
document.getElementById('zzzs').style.display = 'block';
document.getElementById('eye').style.display = 'block';
ft = setTimeout('fadeTalk();',1500);
checkNewHib()
}
// New Talk
var ft;
var timeOf = 1500;
var rsayings = new Array("","","","","","Novis Design","i love apple","sup?","wat up dog?","cha chia","cha cha cha Chia!","how are you?","hello!","novisdesign.net","have a nice day","take it easy","salutations","check the due","peace and love","surprise!!!","rock on!!!","");
function talk() {
if (checkwater && document.getElementById('alertPref').checked) {
document.getElementById('alerts').style.opacity = '1';
var t = new Date();
var h = t.getHours();
var diff = checkNewHWater();
var rand = Math.round(random() * (rsayings.length-1));
var time = Math.floor(checkNewH()/86400000);
if (diff > 172800000) {
document.getElementById('abig').innerHTML = 'feed me!';
document.getElementById('asmall').innerHTML = 'feed me!';
}
else {
if (rand == 0) {
if (h > 0 && h < 12) {
document.getElementById('abig').innerHTML = 'good morning!';
document.getElementById('asmall').innerHTML = 'good morning!';
}
if (h==12) {
document.getElementById('abig').innerHTML = 'hello!';
document.getElementById('asmall').innerHTML = 'hello!';
}
if (h > 12 && h < 19) {
document.getElementById('abig').innerHTML = 'good afternoon!';
document.getElementById('asmall').innerHTML = 'good afternoon!';
}
if (h > 19) {
document.getElementById('abig').innerHTML = 'good night!';
document.getElementById('asmall').innerHTML = 'good night!';
}
}
if (rand == 1) {
if (time == 1) {
document.getElementById('abig').innerHTML = time + " day old";
document.getElementById('asmall').innerHTML = time + " day old";
}
if (time > 1) {
document.getElementById('abig').innerHTML = time + " days old";
document.getElementById('asmall').innerHTML = time + " days old";
}
}
if (rand == 2 || rand == 3 || rand == 4) {
var elm = document.getElementById('pList');
if (elm.length != 0) {
var rtwo = Math.round(Math.random() * (elm.length));
var put = elm.options[rtwo].text;
document.getElementById('abig').innerHTML = put;
document.getElementById('asmall').innerHTML = put;
}
else {
document.getElementById('abig').innerHTML = rsayings[rand];
document.getElementById('asmall').innerHTML = rsayings[rand];
}
}
if (rand > 3) {
document.getElementById('abig').innerHTML = rsayings[rand];
document.getElementById('asmall').innerHTML = rsayings[rand];
}
}
setTextSize(document.getElementById('abig').innerHTML.length);
ft = setTimeout('fadeTalk();',timeOf);
}
}
function fadeTalk() {
var elm = document.getElementById('alerts').style;
var op = parseFloat(elm.opacity);
var newop = op - .2;
elm.opacity = newop;
if (newop > 0) {
ft = setTimeout('fadeTalk();',100)
}
}
function setTextSize(val) {
if (val <= 22 && val > 19) {
document.getElementById('abig').style.fontSize = '14px';
}
if (val <= 19 && val > 17) {
document.getElementById('abig').style.fontSize = '16px';
}
if (val <= 17 && val > 15) {
document.getElementById('abig').style.fontSize = '20px';
}
if (val <= 15 && val > 14) {
document.getElementById('abig').style.fontSize = '22px';
}
if (val < 13) {
document.getElementById('abig').style.fontSize = '24px';
}
}
// A widgets way to do random... (thanks a lot apple)
function random() {
d = new Date();
time = d.getTime();
function getR() {
time = (time*9301+49297) % 233280;
return time/(233280.0);
};
return getR();
}
// Random Chi!!! Cool
function tryRand() {
if (checkwater) {
var rand = random()
rand = Math.round(rand * 100);
if (rand <= 1) {
showRandomChi();
}
}
}
function showRandomChi() {
req = new XMLHttpRequest();
req.onreadystatechange = setChi;
req.open("GET", "http://novisdesign.net/WidgetResorces/ChiPet/number.txt", true);
req.send(null);
}
function setChi() {
if (req.readyState == 4) {
if (req.status == 200) {
var number = parseInt(req.responseText);
elm = document.getElementById('default');
var cin = Math.round(Math.random() * number);
var cImage = document.createElement('img');
cImage.src = "http://novisdesign.net/WidgetResorces/ChiPet/chipet"+cin+".png";
cImage.onload = function() {
elm.src = "http://novisdesign.net/WidgetResorces/ChiPet/chipet"+cin+".png";
}
cImage.onerror = function() {
changeChia();
}
}
}
}
// Rain drop effect
var tm;
var i = 0;
function rainIt() {
var elm = document.getElementById('rainIt');
i++
if (i == 1) {
elm.style.backgroundImage = "url('Images/rain/rain1.png')";
tm = setTimeout('rainIt()',60);
}
if (i == 2) {
elm.style.backgroundImage = "url('Images/rain/rain2.png')";
tm = setTimeout('rainIt()',60);
}
if (i == 3) {
elm.style.backgroundImage = "url('Images/rain/rain3.png')";
tm = setTimeout('rainIt()',60);
}
if (i == 4) {
elm.style.backgroundImage = "url('Images/rain/rain4.png')";
tm = setTimeout('rainIt()',60);
}
if (i == 5) {
elm.style.backgroundImage = "url('Images/rain/rain5.png')";
tm = setTimeout('rainIt()',60);
}
if (i == 6) {
elm.style.backgroundImage = "url('Images/rain/rain6.png')";
tm = setTimeout('rainIt()',60);
}
if (i == 7) {
elm.style.backgroundImage ="url('Images/rain/rain7.png')";
tm = setTimeout('rainIt()',60);
}
if (i == 8) {
elm.style.backgroundImage = "url('Images/rain/rain8.png')";
tm = setTimeout('rainIt()',60);
}
if (i == 9) {
elm.style.backgroundImage = "none";
tm = clearTimeout(tm);
i = 0;
}
}
// Barbershop Code
var c = 1;
var ch;
function startCut() {
document.getElementById('cut').style.display = 'block';
document.getElementById('haircut').style.display = 'none';
ch = setInterval('cutHair();',100);
}
function cutHair() {
var elm = document.getElementById('default');
var cut = document.getElementById('cut');
if (c == 4) {
cut.style.display = 'none';
var a = new Date();
var b = a.getTime();
var b = b - 518400000;
widget.setPreferenceForKey(b, 'time')
clearInterval(ch)
}
if (c == 3) {
c++;
elm.src = "Images/day3.png";
cut.src = "Images/cut3.png";
}
if (c == 2) {
c++;
elm.src = "Images/day4.png";
cut.src = "Images/cut2.png";
}
if (c == 1) {
c++;
elm.src = "Images/day5.png";
cut.src = "Images/cut1.png";
}
}
// Switching pages on back
var sc;
function goTo(go,old,scroll) {
document.getElementById(old).style.display = 'none';
document.getElementById(go).style.display = 'block';
if (scroll == null) {
document.getElementById('arrows').style.opacity = '0.5';
sc = scroll;
}
else {
document.getElementById('arrows').style.opacity = '1.0';
sc = scroll;
}
}
function goMain(elm) {
document.getElementById('main').style.display = 'block';
document.getElementById(elm).style.display = 'none';
sc = null;
document.getElementById('arrows').style.opacity = '0.5';
document.getElementById('cHow').style.top = '0px';
}
function goMainAll() {
if (!document.getElementById('savePref').checked) {
document.getElementById('main').style.display = 'block';
document.getElementById('howto').style.display = 'none';
document.getElementById('phrases').style.display = 'none';
document.getElementById('myphrases').style.display = 'none';
document.getElementById('hibernation').style.display = 'none';
document.getElementById('prefs').style.display = 'none';
document.getElementById('cHow').style.top = '0px';
sc = null;
document.getElementById('arrows').style.opacity = '0.5';
}
}
function addItem() {
if (document.getElementById('pEnter').value != "") {
var n = document.createElement("option")
n.text = document.getElementById('pEnter').value;
n.value = document.getElementById('pList').length + 1;
document.getElementById('pList').add(n,null);
widget.setPreferenceForKey(document.getElementById('pList').length, 'lg');
widget.setPreferenceForKey(document.getElementById('pEnter').value, 'speak'+document.getElementById('pList').length)
document.getElementById('pEnter').value = "";
}
}
function removeItem() {
var i;
rem = document.getElementById('pList').selectedIndex;
document.getElementById('pList').remove(rem);
widget.setPreferenceForKey(null, 'speak'+(rem+1))
widget.setPreferenceForKey(document.getElementById('pList').length, 'lg');
for (i = (rem + 2); widget.preferenceForKey('speak'+i) != undefined; i++) {
widget.setPreferenceForKey(widget.preferenceForKey('speak'+i),'speak'+(i-1));
widget.setPreferenceForKey(null,'speak'+i);
}
}
function changeAlert() {
value = document.getElementById('alertPref').checked;
widget.setPreferenceForKey(value, 'showAlerts');
}
function changeSave() {
value = document.getElementById('savePref').checked;
widget.setPreferenceForKey(value, 'showSave');
}
function changeLength(val) {
var value = (parseInt(val) + 100) * 10;
timeOf = value;
widget.setPreferenceForKey(val, 'showLength');
}
// Arrow Scrolling
function scrollUp(a) {
var top = parseInt(document.getElementById(sc).style.top);
if (top > a) {
document.getElementById(sc).style.top = top - 10 + "px";
}
}
function scrollDown() {
var top = parseInt(document.getElementById(sc).style.top);
if (top < 0) {
document.getElementById(sc).style.top = top + 10 + "px";
}
}