// 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"; } }