var timer = null; var allEvents=new Array(); var newEvents=new Array(); var oldEvents=new Array(); var api_div_numbers=21; $(window).load(function() { initilise(); if(timer) { clearTimeout(timer); } timer =setTimeout(main , 100 ); }); function fetchEvents(){ return oldEvents; } function main() { var url=localStorage["ip_address"]+'/include/api.php?op=get&op2=events&return_type=csv&apipass='+localStorage["api_pass"]+'&user='+localStorage["user_name"]+'&pass='+localStorage["pass"]; var feedUrl = url; localStorage["data_check"]="true"; req = new XMLHttpRequest(); req.onload = handleResponse; req.onerror = handleError; req.open("GET", feedUrl, true); req.send(null); } function handleError() { localStorage["data_check"]="false"; if(timer) { clearTimeout(timer); } timer =setTimeout(main , 1000); } function handleResponse() { var doc = req.responseText; if (doc=="auth error") { localStorage["data_check"]="false"; if(timer) { clearTimeout(timer); } timer =setTimeout(main , 1000); } else{ var n=doc.search("404 Not Found"); if(n>0){ localStorage["data_check"]="false"; if(timer) { clearTimeout(timer); } timer =setTimeout(main , 1000); } else{ localStorage["data_check"]="true" getEvents(doc); } } } function getEvents(reply){ if(check()){ all_event_array=reply.split("\n"); allEvents=divideArray(all_event_array); if(oldEvents.length==0){ oldEvents=allEvents; } newEvents=fetchNewEvents(allEvents,oldEvents); if(newEvents.length!=0){ for(var k=0;k<newEvents.length;k++){ localStorage["new_events"]++; showNotification(k); } } oldEvents=allEvents; if(localStorage["new_events"]!=0){ showBadge(localStorage["new_events"]); } else{ hideBadge(); } if(timer) { clearTimeout(timer); } timer =setTimeout(main , localStorage["refresh"]*1000 ); } } function showBadge(txt) { chrome.browserAction.setBadgeBackgroundColor({color:[0,200,0,255]}); chrome.browserAction.setBadgeText({ text: txt }); } function hideBadge() { chrome.browserAction.setBadgeText({ text: "" }); } function divideArray(e_array){ var Events=new Array(); for(var i=0;i<e_array.length;i++){ var event=e_array[i].split(";"); Events.push(event); } return Events; } function hideNotification(){ } function fetchNewEvents(A,B){ var arrDiff = new Array(); for(var i = 0; i < A.length; i++) { var id = false; for(var j = 0; j < B.length; j++) { if(A[i][0] == B[j][0]) { id = true; break; } } if(!id) { arrDiff.push(A[i]); } } return arrDiff; } function showNotification(eventId){ var Severity; if(localStorage["sound_alert"]=="on"){ if(newEvents[eventId][19]=="Critical"){ playSound(localStorage["critical"]); } if(newEvents[eventId][19]=="Informational"){ playSound(localStorage["informational"]); } if(newEvents[eventId][19]=="Maintenance"){ playSound(localStorage["maintenance"]); } if(newEvents[eventId][19]=="Normal"){ playSound(localStorage["normal"]); } if(newEvents[eventId][19]=="Warning"){ playSound(localStorage["warning"]); } } var notification = webkitNotifications.createHTMLNotification( "notification.html?event="+eventId ); notification.show(); } function getNotification(eventId){ var title=newEvents[eventId][6]; var id; if(newEvents[eventId][9]==0){ id="."; } else { id= " in the module with Id "+ newEvents[eventId][9] + "."; } var event = newEvents[eventId][14]+" : "+newEvents[eventId][17]+". Event occured at "+ newEvents[eventId][5]+id; return '<a>' + title + '</a> <br/> <span style="font-size:80%">' + event + '</span>'; } function check(){ if (localStorage["data_check"]=="true" && localStorage["ip_address"] != null && localStorage["api_pass"] != null &&localStorage["user_name"]!=null &&localStorage["pass"]!=null && localStorage["ip_address"] != "" && localStorage["api_pass"] != "" &&localStorage["user_name"]!="" &&localStorage["pass"]!=""){ return true; } else return false; } function initilise(){ if(localStorage["ip_address"]==undefined){ localStorage["ip_address"]="http://firefly.artica.es/pandora_demo"; } if(localStorage["api_pass"]==undefined){ localStorage["api_pass"]="doreik0"; } if(localStorage["user_name"]==undefined){ localStorage["user_name"]="demo"; } if(localStorage["pass"]==undefined){ localStorage["pass"]="demo"; } if(localStorage["critical"]==null){ localStorage["critical"]="11"; } if(localStorage["informational"]==null){ localStorage["informational"]="1"; } if(localStorage["maintenance"]==null){ localStorage["maintenance"]="10"; } if(localStorage["normal"]==null){ localStorage["normal"]="6"; } if(localStorage["warning"]==null){ localStorage["warning"]="2"; } if(localStorage["events"]==null){ localStorage["events"]=20; } if(localStorage["refresh"]==null){ localStorage["refresh"]="10"; } if(localStorage["ip_address"]==null){ localStorage["ip_address"]="http://firefly.artica.es/pandora_demo"; } if(localStorage["api_pass"]==null){ localStorage["api_pass"]="doreik0"; } if(localStorage["user_name"]==null){ localStorage["user_name"]="demo"; } if(localStorage["pass"]==null){ localStorage["pass"]="demo"; } if(localStorage["sound_alert"]==null){ localStorage["sound_alert"]="on"; } if(localStorage["changed"]==null){ localStorage["changed"]="false"; } if(localStorage["new_events"]==null){ localStorage["new_events"]=parseInt(localStorage["events"]); } }