/************************************************************************************************************ (C) www.dhtmlgoodies.com, January 2006 This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website. Version: 1.0 : January 16th - 2006 1.1 : January 31th - 2006 - Added cookie support - remember rss sources Terms of use: You are free to use this script as long as the copyright message is kept intact. However, you may not redistribute, sell or repost it without our permission. Thank you! www.dhtmlgoodies.com Alf Magne Kalleland ************************************************************************************************************/ // USER VARIABLES var username; var numberOfColumns = 3; // Number of columns for dragable boxes var columnParentBoxId = 'floatingBoxParentContainer'; // Id of box that is parent of all your dragable boxes var src_rightImage = 'images/arrow_right.gif'; var src_downImage = 'images/arrow_down.gif'; var src_refreshSource = 'images/refresh.gif'; var src_smallRightArrow = 'images/small_arrow.gif'; var transparencyWhenDragging = true; var txt_editLink = 'Edit'; var txt_editLink_stop = 'End edit'; var autoScrollSpeed = 4; // Autoscroll speed - Higher = faster var dragObjectBorderWidth = 1; // Border size of your RSS boxes - used to determine width of dotted rectangle // var useCookiesToRememberRSSSources = false; // script vars var columnParentBox; var dragableBoxesObj; var ajaxObjects = new Array(); var boxIndex = 0; var autoScrollActive = false; var dragableBoxesArray = new Array(); var dragDropCounter = -1; var dragObject = false; var dragObjectNextSibling = false; var dragObjectParent = false; var destinationObj = false; var mouse_x; var mouse_y; var el_x; var el_y; var rectangleDiv; var okToMove = true; var documentHeight = false; var documentScrollHeight = false; var dragableAreaWidth = false; var opera = navigator.userAgent.toLowerCase().indexOf('opera')>=0?true:false; var safari = navigator.userAgent.toLowerCase().indexOf('safari')>=0?true:false; // var cookieCounter=0; // var cookieRSSSources = new Array(); var refreshAllModulesInterval function refreshAllModules(moduleID) { //alert(moduleID); if (moduleID < dragableBoxesArray.length) { reloadRSSData(moduleID); moduleID = moduleID + 1; refreshAllModulesInterval = window.setTimeout('refreshAllModules(' + moduleID + ')', 5000); } else { refreshAllModulesInterval = window.setTimeout('refreshAllModules(' + 1 + ')', 300000); } } //function refreshAllModules() //{ // for(var no=1;no<=dragableBoxesArray.length;no++) // { // reloadRSSData(no); // var refreshAllModulesInterval = window.setTimeout('reloadRSSData(' + no + ')', 5000); // //alert(dragableBoxesArray[no]['rssUrl']); // } //} // cookie functions are from http://www.mach5.com/support/analyzer/manual/html/General/CookiesJavaScript.htm function Get_Cookie(name) { var start = document.cookie.indexOf(name+"="); var len = start+name.length+1; if ((!start) && (name != document.cookie.substring(0,name.length))) return null; if (start == -1) return null; var end = document.cookie.indexOf(";",len); if (end == -1) end = document.cookie.length; return unescape(document.cookie.substring(len,end)); } function Set_Cookie(name,value,expires,path,domain,secure) { expires = expires * 60*60*24*1000; var today = new Date(); var expires_date = new Date( today.getTime() + (expires) ); var cookieString = name + "=" +escape(value) + ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + ( (path) ? ";path=" + path : "") + ( (domain) ? ";domain=" + domain : "") + ( (secure) ? ";secure" : ""); document.cookie = cookieString; } function autoScroll(direction,yPos) { if(document.documentElement.scrollHeight>documentScrollHeight && direction>0)return; if(opera)return; window.scrollBy(0,direction); if(direction<0) { if(document.documentElement.scrollTop>0) { dragObject.style.top = (el_y - mouse_y + yPos + document.documentElement.scrollTop) + 'px'; } else { autoScrollActive = false; } } else { if(yPos>(documentHeight-50)) { dragObject.style.top = (el_y - mouse_y + yPos + document.documentElement.scrollTop) + 'px'; } else { autoScrollActive = false; } } if(autoScrollActive)setTimeout('autoScroll('+direction+',' + yPos + ')',5); } function initDragDropBox(e) { dragDropCounter = 1; if(document.all)e = event; if (e.target) source = e.target; else if (e.srcElement) source = e.srcElement; if (source.nodeType == 3) // defeat Safari bug source = source.parentNode; if(source.tagName.toLowerCase()=='img' || source.tagName.toLowerCase()=='a' || source.tagName.toLowerCase()=='input' || source.tagName.toLowerCase()=='td' || source.tagName.toLowerCase()=='tr' || source.tagName.toLowerCase()=='table') return; mouse_x = e.clientX; mouse_y = e.clientY; var numericId = this.id.replace(/[^0-9]/g,''); el_x = getLeftPos(this.parentNode)/1; el_y = getTopPos(this.parentNode)/1 - document.documentElement.scrollTop; dragObject = this.parentNode; documentScrollHeight = document.documentElement.scrollHeight + 100 + dragObject.offsetHeight; if(dragObject.nextSibling) { dragObjectNextSibling = dragObject.nextSibling; if(dragObjectNextSibling.tagName!='DIV')dragObjectNextSibling = dragObjectNextSibling.nextSibling; } dragObjectParent = dragableBoxesArray[numericId]['parentObj']; dragDropCounter = 0; initDragDropBoxTimer(); return false; } function initDragDropBoxTimer() { if(dragDropCounter>=0 && dragDropCounter<10) { dragDropCounter++; setTimeout('initDragDropBoxTimer()',10); return; } if(dragDropCounter==10) { mouseoutBoxHeader(false,dragObject); } } function moveDragableElement(e) { if(document.all)e = event; if(dragDropCounter<10)return; if(document.body!=dragObject.parentNode) { dragObject.style.width = (dragObject.offsetWidth - (dragObjectBorderWidth*2)) + 'px'; dragObject.style.position = 'absolute'; dragObject.style.textAlign = 'left'; if(transparencyWhenDragging) { dragObject.style.filter = 'alpha(opacity=70)'; dragObject.style.opacity = '0.7'; } dragObject.parentNode.insertBefore(rectangleDiv,dragObject); rectangleDiv.style.display='block'; document.body.appendChild(dragObject); rectangleDiv.style.width = dragObject.style.width; rectangleDiv.style.height = (dragObject.offsetHeight - (dragObjectBorderWidth*2)) + 'px'; } if(e.clientY<50 || e.clientY>(documentHeight-50)) { if(e.clientY<50 && !autoScrollActive) { autoScrollActive = true; autoScroll((autoScrollSpeed*-1),e.clientY); } if(e.clientY>(documentHeight-50) && document.documentElement.scrollHeight<=documentScrollHeight && !autoScrollActive) { autoScrollActive = true; autoScroll(autoScrollSpeed,e.clientY); } } else { autoScrollActive = false; } var leftPos = e.clientX; var topPos = e.clientY + document.documentElement.scrollTop; dragObject.style.left = (e.clientX - mouse_x + el_x) + 'px'; dragObject.style.top = (el_y - mouse_y + e.clientY + document.documentElement.scrollTop) + 'px'; if(!okToMove) return; okToMove = false; destinationObj = false; rectangleDiv.style.display = 'none'; var objFound = false; var tmpParentArray = new Array(); if(!objFound) { for(var no=1;notmpX && leftPos<(tmpX + dragableBoxesArray[no]['obj'].offsetWidth) && topPos>(tmpY-20) && topPos<(tmpY + (dragableBoxesArray[no]['obj'].offsetHeight/2))) { destinationObj = dragableBoxesArray[no]['obj']; destinationObj.parentNode.insertBefore(rectangleDiv,dragableBoxesArray[no]['obj']); rectangleDiv.style.display = 'block'; objFound = true; break; } if(leftPos>tmpX && leftPos<(tmpX + dragableBoxesArray[no]['obj'].offsetWidth) && topPos>=(tmpY + (dragableBoxesArray[no]['obj'].offsetHeight/2)) && topPos<(tmpY + dragableBoxesArray[no]['obj'].offsetHeight)) { objFound = true; if(dragableBoxesArray[no]['obj'].nextSibling) { destinationObj = dragableBoxesArray[no]['obj'].nextSibling; if(!destinationObj.tagName)destinationObj = destinationObj.nextSibling; if(destinationObj!=rectangleDiv)destinationObj.parentNode.insertBefore(rectangleDiv,destinationObj); } else { destinationObj = dragableBoxesArray[no]['obj'].parentNode; dragableBoxesArray[no]['obj'].parentNode.appendChild(rectangleDiv); } rectangleDiv.style.display = 'block'; break; } if(!dragableBoxesArray[no]['obj'].nextSibling && leftPos>tmpX && leftPos<(tmpX + dragableBoxesArray[no]['obj'].offsetWidth) && topPos>topPos>(tmpY + (dragableBoxesArray[no]['obj'].offsetHeight))) { destinationObj = dragableBoxesArray[no]['obj'].parentNode; dragableBoxesArray[no]['obj'].parentNode.appendChild(rectangleDiv); rectangleDiv.style.display = 'block'; objFound = true; } } } } if(!objFound) { for(var no=1;no<=numberOfColumns;no++) { if(!objFound) { var obj = document.getElementById('dragableBoxesColumn' + no); var left = getLeftPos(obj)/1; var width = obj.offsetWidth; if(leftPos>left && leftPos<(left+width)) { destinationObj = obj; obj.appendChild(rectangleDiv); rectangleDiv.style.display='block'; objFound=true; } } } } setTimeout('okToMove=true',5); } function stop_dragDropElement() { if(dragDropCounter<10) { dragDropCounter = -1 return; } dragDropCounter = -1; if(transparencyWhenDragging) { dragObject.style.filter = null; dragObject.style.opacity = null; } dragObject.style.position = 'static'; dragObject.style.width = null; var numericId = dragObject.id.replace(/[^0-9]/g,''); if(destinationObj && destinationObj.id!=dragObject.id) { if(destinationObj.id.indexOf('dragableBoxesColumn')>=0) { destinationObj.appendChild(dragObject); dragableBoxesArray[numericId]['parentObj'] = destinationObj; } else { destinationObj.parentNode.insertBefore(dragObject,destinationObj); dragableBoxesArray[numericId]['parentObj'] = destinationObj.parentNode; } } else { if(dragObjectNextSibling) { dragObjectParent.insertBefore(dragObject,dragObjectNextSibling); } else { dragObjectParent.appendChild(dragObject); } } autoScrollActive = false; rectangleDiv.style.display = 'none'; dragObject = false; dragObjectNextSibling = false; destinationObj = false; // if(useCookiesToRememberRSSSources)setTimeout('saveCookies()',100); saveToDB(); documentHeight = document.documentElement.clientHeight; } // function saveCookies() // { // cookieCounter = 0; // var tmpUrlArray = new Array(); // for(var no=1;no<=numberOfColumns;no++) // { // var parentObj = document.getElementById('dragableBoxesColumn' + no); // var items = parentObj.getElementsByTagName('DIV'); // if(items.length==0)continue; // var item = items[0]; // var tmpItemArray = new Array(); // while(item) // { // var boxIndex = item.id.replace(/[^0-9]/g,''); // if(item.id!='rectangleDiv') // { // tmpItemArray[tmpItemArray.length] = boxIndex; // } // item = item.nextSibling; // } // var columnIndex = no; // for(var no2=tmpItemArray.length-1;no2>=0;no2--) // { // var boxIndex = tmpItemArray[no2]; // var url = dragableBoxesArray[boxIndex]['rssUrl']; // var heightOfBox = dragableBoxesArray[boxIndex]['heightOfBox']; // var maxRssItems = dragableBoxesArray[boxIndex]['maxRssItems']; // var minutesBeforeReload = dragableBoxesArray[boxIndex]['minutesBeforeReload']; // if(!tmpUrlArray[url]) // { // tmpUrlArray[url] = true; // cookieCounter++; // } // } // } // } function saveToDB() { itemCounter = 0; var tmpUrlArray = new Array(); var loopcount; var feedorder; for(var no=1;no<=numberOfColumns;no++) { loopcount = 0; var parentObj = document.getElementById('dragableBoxesColumn' + no); var items = parentObj.getElementsByTagName('DIV'); if(items.length==0)continue; var item = items[0]; var tmpItemArray = new Array(); while(item) { var boxIndex = item.id.replace(/[^0-9]/g,''); if(item.id!='rectangleDiv') { tmpItemArray[tmpItemArray.length] = boxIndex; } item = item.nextSibling; } var columnIndex = no; for(var no2=tmpItemArray.length-1;no2>=0;no2--) { loopcount++; feedorder = tmpItemArray.length - loopcount + 1 var boxIndex = tmpItemArray[no2]; var url = dragableBoxesArray[boxIndex]['rssUrl']; var heightOfBox = dragableBoxesArray[boxIndex]['heightOfBox']; var maxRssItems = dragableBoxesArray[boxIndex]['maxRssItems']; var TabNum = dragableBoxesArray[boxIndex]['TabNum']; var DisplayName = dragableBoxesArray[boxIndex]['DisplayName']; var myRegExp = /[']/g; DisplayName = DisplayName.replace(myRegExp, '`'); var minutesBeforeReload = dragableBoxesArray[boxIndex]['minutesBeforeReload']; if(!tmpUrlArray[url]) { tmpUrlArray[url] = true; var cookie_username = Get_Cookie('cookname'); ajaxObjects[itemCounter] = new sack(); ajaxObjects[itemCounter].requestFile = 'UpdateFeed.php?RSSURL='+ url + '&ColNum=' + columnIndex + '&heightOfBox=' + heightOfBox + '&username=' + cookie_username + '&NumItems=' + maxRssItems + '&RefreshTime=' + minutesBeforeReload + '&FeedOrder=' + feedorder + '&TabNum=' + TabNum + '&DisplayName=' + DisplayName; ajaxObjects[itemCounter].runAJAX(); itemCounter++; } } } } function getTopPos(inputObj) { var returnValue = inputObj.offsetTop; while((inputObj = inputObj.offsetParent) != null) { if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop; } return returnValue; } function getLeftPos(inputObj) { var returnValue = inputObj.offsetLeft; while((inputObj = inputObj.offsetParent) != null) { if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft; } return returnValue; } function createColumns() { if(!columnParentBoxId) { alert('No parent box defined for your columns'); return; } columnParentBox = document.getElementById(columnParentBoxId); var columnWidth = Math.floor(100/numberOfColumns); var sumWidth = 0; for(var no=0;no=0?'none':'block'; this.src = this.src.indexOf(src_rightImage)>=0?src_downImage:src_rightImage setTimeout('dragDropCounter=-5',5); } function mouseover_CloseButton() { this.className = 'closeButton_over'; setTimeout('dragDropCounter=-5',5); } function highlightCloseButton() { this.className = 'closeButton_over'; } function mouseout_CloseButton() { this.className = 'closeButton'; } function closeDragableBox() { if (confirm("Are you sure you wish to remove this feed?")) { var numericId = this.id.replace(/[^0-9]/g,''); document.getElementById('dragableBox' + numericId).style.display='none'; // Set_Cookie('dragable_rss_boxes' + cookieRSSSources[dragableBoxesArray[numericId]['rssUrl']],'none' ,60000); setTimeout('dragDropCounter=-5',5); var cookie_username = Get_Cookie('cookname'); ajaxIndex = ajaxObjects.length; ajaxObjects[ajaxIndex] = new sack(); ajaxObjects[ajaxIndex].requestFile = 'DeleteFeed.php?RSSURL='+ dragableBoxesArray[numericId]['rssUrl'] + '&username=' + cookie_username; ajaxObjects[ajaxIndex].runAJAX(); } } function editRSSContent() { var numericId = this.id.replace(/[^0-9]/g,''); var obj = document.getElementById('dragableBoxEdit' + numericId); if(obj.style.display=='none'){ obj.style.display='block'; this.innerHTML = txt_editLink_stop; document.getElementById('dragableBoxHeader' + numericId).style.height = '135px'; }else{ obj.style.display='none'; this.innerHTML = txt_editLink; document.getElementById('dragableBoxHeader' + numericId).style.height = '20px'; } setTimeout('dragDropCounter=-5',5); } function showStatusBarMessage(numericId,message) { document.getElementById('dragableBoxStatusBar' + numericId).innerHTML = message; } function addBoxHeader(parentObj) { var div = document.createElement('DIV'); div.className = 'dragableBoxHeader'; div.style.cursor = 'move'; div.id = 'dragableBoxHeader' + boxIndex; div.onmouseover = mouseoverBoxHeader; div.onmouseout = mouseoutBoxHeader; div.onmousedown = initDragDropBox; var image = document.createElement('IMG'); image.id = 'dragableBoxExpand' + boxIndex; image.src = src_rightImage; image.style.visibility = 'hidden'; image.style.cursor = 'pointer'; image.onmousedown = showHideBoxContent; div.appendChild(image); var textSpan = document.createElement('SPAN'); textSpan.id = 'dragableBoxHeader_txt' + boxIndex; div.appendChild(textSpan); parentObj.appendChild(div); var closeLink = document.createElement('A'); closeLink.style.cssText = 'float:right'; closeLink.style.styleFloat = 'right'; closeLink.id = 'dragableBoxCloseLink' + boxIndex; closeLink.innerHTML = ' x '; closeLink.className = 'closeButton'; closeLink.onmouseover = mouseover_CloseButton; closeLink.onmouseout = mouseout_CloseButton; closeLink.style.cursor = 'pointer'; closeLink.style.visibility = 'hidden'; closeLink.onmousedown = closeDragableBox; div.appendChild(closeLink); var image = document.createElement('IMG'); image.src = src_refreshSource; image.id = 'dragableBoxRefreshSource' + boxIndex; image.style.cssText = 'float:right'; image.style.styleFloat = 'right'; image.style.visibility = 'hidden'; image.onclick = refreshRSS; image.style.cursor = 'pointer'; div.appendChild(image); } function saveFeed(boxIndex) { var heightOfBox = dragableBoxesArray[boxIndex]['heightOfBox'] = document.getElementById('heightOfBox[' + boxIndex + ']').value; var intervalObj = dragableBoxesArray[boxIndex]['intervalObj']; if(intervalObj)clearInterval(intervalObj); if(heightOfBox && heightOfBox>40) { var contentObj = document.getElementById('dragableBoxContent' + boxIndex); contentObj.style.height = heightOfBox + 'px'; contentObj.setAttribute('heightOfBox',heightOfBox); contentObj.heightOfBox = heightOfBox; if(document.all)contentObj.style.overflowY = 'auto';else contentObj.style.overflow='-moz-scrollbars-vertical'; if(opera)contentObj.style.overflow='auto'; } dragableBoxesArray[boxIndex]['rssUrl'] = document.getElementById('rssUrl[' + boxIndex + ']').value; dragableBoxesArray[boxIndex]['heightOfBox'] = heightOfBox; dragableBoxesArray[boxIndex]['maxRssItems'] = document.getElementById('maxRssItems[' + boxIndex + ']').value; dragableBoxesArray[boxIndex]['heightOfBox'] = document.getElementById('heightOfBox[' + boxIndex + ']').value; dragableBoxesArray[boxIndex]['TabNum'] = document.getElementById('TabNum[' + boxIndex + ']').value; dragableBoxesArray[boxIndex]['DisplayName'] = document.getElementById('DisplayName[' + boxIndex + ']').value; dragableBoxesArray[boxIndex]['minutesBeforeReload'] = document.getElementById('minutesBeforeReload[' + boxIndex + ']').value; if(dragableBoxesArray[boxIndex]['minutesBeforeReload'] && dragableBoxesArray[boxIndex]['minutesBeforeReload']>5) { var tmpInterval = setInterval("reloadRSSData(" + boxIndex + ")",(dragableBoxesArray[boxIndex]['minutesBeforeReload']*1000*60)); dragableBoxesArray[boxIndex]['intervalObj'] = tmpInterval; } reloadRSSData(boxIndex); // if(useCookiesToRememberRSSSources)setTimeout('saveCookies()',100); saveToDB(); } function addRSSEditContent(parentObj) { var editLink = document.createElement('A'); editLink.href = '#'; editLink.onclick = cancelEvent; editLink.style.cssText = 'float:right'; editLink.style.styleFloat = 'right'; editLink.id = 'dragableBoxEditLink' + boxIndex; editLink.innerHTML = txt_editLink; editLink.className = 'dragableBoxEditLink'; editLink.style.cursor = 'pointer'; editLink.style.visibility = 'hidden'; editLink.onmousedown = editRSSContent; parentObj.appendChild(editLink); var editBox = document.createElement('DIV'); editBox.style.clear='both'; editBox.id = 'dragableBoxEdit' + boxIndex; editBox.style.display='none'; var content = '
' + '' + '' + ' ' + ' ' + '' + '' + ' ' + ' ' + ' ' + ' ' + '' + '' + ' ' + ' ' + ' ' + ' ' + '' + '' + ' ' + ' ' + '
' + ' Source:' + ' ' + ' ' + '
' + ' Items:' + ' ' + ' ' + ' ' + ' Refresh every:' + ' ' + '  minutes' + '
' + ' Tab Num:' + ' ' + ' ' + ' ' + ' Fixed height:' + ' ' + ' ' + '
' + ' Display Name:' + ' ' + ' ' + ' ' + ' <\/td><\/tr><\/table><\/form>'; editBox.innerHTML = content; parentObj.appendChild(editBox); } function addBoxContentContainer(parentObj,heightOfBox) { var div = document.createElement('DIV'); div.className = 'dragableBoxContent'; if(opera)div.style.clear='none'; div.id = 'dragableBoxContent' + boxIndex; parentObj.appendChild(div); if(heightOfBox && heightOfBox/1>40) { div.style.height = heightOfBox + 'px'; div.setAttribute('heightOfBox',heightOfBox); div.heightOfBox = heightOfBox; if(document.all) div.style.overflowY = 'auto'; else div.style.overflow='-moz-scrollbars-vertical'; if(opera) div.style.overflow='auto'; if (safari) div.style.overflow='auto'; } } function addBoxStatusBar(parentObj) { var div = document.createElement('DIV'); div.className = 'dragableBoxStatusBar'; div.id = 'dragableBoxStatusBar' + boxIndex; parentObj.appendChild(div); } function createABox(columnIndex,heightOfBox) { boxIndex++; var div = document.createElement('DIV'); div.className = 'dragableBox'; div.id = 'dragableBox' + boxIndex; addBoxHeader(div); addBoxContentContainer(div,heightOfBox); addBoxStatusBar(div); var obj = document.getElementById('dragableBoxesColumn' + columnIndex); var subs = obj.getElementsByTagName('DIV'); if(subs.length>0) { obj.insertBefore(div,subs[0]); } else { obj.appendChild(div); } dragableBoxesArray[boxIndex] = new Array(); dragableBoxesArray[boxIndex]['obj'] = div; dragableBoxesArray[boxIndex]['parentObj'] = div.parentNode; return boxIndex; } function copy(text) { var text_encoded = encodeURIComponent(text); var flashcopier = 'flashcopier'; if(!document.getElementById(flashcopier)) { var divholder = document.createElement('div'); divholder.id = flashcopier; document.body.appendChild(divholder); } document.getElementById(flashcopier).innerHTML = ''; var divinfo = ''; document.getElementById(flashcopier).innerHTML = divinfo; } function addCopyObject(boxId, subBox) { //document.getElementById(boxId).innerHTML = document.getElementById("txtcopy").value + document.getElementById(boxId).innerHTML; //document.getElementById(subBox).innerHTML = ' Copy to Clipboard
' + document.getElementById(subBox).innerHTML; //document.getElementById(subBox).innerHTML = //alert(document.getElementById(subBox).innerHTML); } function showRSSData(ajaxIndex,boxIndex) { var DisplayName = dragableBoxesArray[boxIndex]['DisplayName']; var RSSURL = dragableBoxesArray[boxIndex]['rssUrl']; var rssContent = ajaxObjects[ajaxIndex].response; tokens = rssContent.split(/\n\n/g); var headerTokens = tokens[0].split(/\n/g); if(headerTokens[0]=='0') { headerTokens[1] = ''; headerTokens[0] = 'Invalid source'; } if (headerTokens[1] != '') { document.getElementById('dragableBoxHeader_txt' + boxIndex).innerHTML = '' + headerTokens[0] + ' <\/span>(' + headerTokens[1] + ') <\/span>'; // title } var string = ''; var Title = headerTokens[0].substr(headerTokens[0].indexOf("none'>") + 6, headerTokens[0].indexOf("") - (headerTokens[0].indexOf("none'>") + 6)); Title = Title.replace(/"/gi, "'"); Title = Title.replace(/'/gi, "\\'"); Title = Title.replace(/'/gi, "\\'"); Title = Title.replace(/"/gi, "\\'"); for(var no=1;no -1) //{ // alert(itemTitle); // alert(itemLink); // alert(itemEmailLink); // alert(itemTwitterLink); // alert(itemFacebookLink); // alert(linkOnly); //} //alert(itemFacebookLink); var itemTitleUnformatted = itemTitle; itemTitleUnformatted = itemTitleUnformatted.replace('', ''); itemTitleUnformatted = itemTitleUnformatted.replace('', ''); itemTitleUnformatted = itemTitleUnformatted.replace('', ''); itemTitleUnformatted = itemTitleUnformatted.replace(/"/gi, "'"); itemTitleUnformatted = itemTitleUnformatted.replace(/'/gi, "\\'"); itemTitleUnformatted = itemTitleUnformatted.replace(/'/gi, "\\'"); itemTitleUnformatted = itemTitleUnformatted.replace(/"/gi, "\\'"); // weather if (RSSURL.indexOf("weather.php") > -1) { string = string + '<\/tr>'; } // packagemapping else if (RSSURL.indexOf("packagemapping.com") > -1) { string = string + ''; if (itemDescription.length > 10) string = string + ''; string = string + ''; } var u = string.substr(0, string.indexOf("\n")) + string.substr(string.indexOf("\n") + 1); string = u; // if (itemTitle.indexOf('Kensington') > 0) // alert (">" + "return coolTip(\''" + itemDescription + "'\', CLOSECLICK, ADAPTIVE_WIDTH, ALTCUT, DRAGGABLE, CAPALIGN, \'left\', STICKY, BORDER, 2, CLOSETEXT, \'Close\', CAPTION, \''" + Title + "'
'" + itemTitleUnformatted + "'
(use ALT key to highlight text)
\', SETON, CENTERPOPUP, VAUTO, SETOFF, FOLLOWMOUSE);" + "<"); //alert (">" + itemDescription + "<"); } string = string + '<\/table>'; // if (RSSURL.indexOf("weather.php") > -1) // alert(string); document.getElementById('dragableBoxContent' + boxIndex).innerHTML = string; //var reloadGraphic = ''; //showStatusBarMessage(boxIndex,reloadGraphic); showStatusBarMessage(boxIndex,''); ajaxObjects[ajaxIndex] = false; var reloadDateTime = new Date() var curDateTime = new Date() var curHour = curDateTime.getHours() var curMin = curDateTime.getMinutes() var curSec = curDateTime.getSeconds() var curAMPM = " AM" var curTime = "" if (curHour >= 12) { curHour -= 12 curAMPM = " PM" } if (curHour == 0) curHour = 12 curTime = curHour + ":" + ((curMin < 10) ? "0" : "") + curMin + ":" + ((curSec < 10) ? "0" : "") + curSec + curAMPM var reloadHour = reloadDateTime.getHours() var reloadMin = reloadDateTime.getMinutes() var reloadSec = reloadDateTime.getSeconds() reloadMin += (dragableBoxesArray[boxIndex]['minutesBeforeReload']) reloadDateTime.setMinutes(reloadMin) var reloadHour = reloadDateTime.getHours() var reloadMin = reloadDateTime.getMinutes() var reloadAMPM = " AM" var reloadTime = "" if (reloadHour >= 12) { reloadHour -= 12 reloadAMPM = " PM" } if (reloadHour == 0) reloadHour = 12 reloadTime = reloadHour + ":" + ((reloadMin < 10) ? "0" : "") + reloadMin + ":" + ((reloadSec < 10) ? "0" : "") + reloadSec + reloadAMPM // if (dragableBoxesArray[boxIndex]['dragableBoxContent'].innerHTML == 'Loading, please wait...') // { // var myInterval = window.setInterval(alert('hello'), 7000); //(RefreshHungModules(boxIndex), 7000); // window.setTimeout(clearInterval(myInterval), 8000); // } // if (dragableBoxesArray[boxIndex]['dragableBoxContent'].innerHTML == 'Loading, please wait...') // { // wait(5000) // RefreshHungModules(boxIndex); // //forcedRefresh = setTimeout('RefreshHungModules(boxIndex);', 7000); // } } function reloadRSSData(numericId) { var ajaxIndex = ajaxObjects.length; ajaxObjects[ajaxIndex] = new sack(); //showStatusBarMessage(numericId,' Retrieving Content, please wait...'); var reloadGraphic = ''; showStatusBarMessage(numericId,reloadGraphic); ajaxObjects[ajaxIndex].requestFile = 'readRSS.php?rssURL=' + dragableBoxesArray[numericId]['rssUrl'] + '&maxRssItems=' + dragableBoxesArray[numericId]['maxRssItems'] + '&FilterImages='; // Specifying which file to get ajaxObjects[ajaxIndex].onCompletion = function(){ showRSSData(ajaxIndex,numericId); }; // Specify function that will be executed after file has been found ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function // set to refresh every 5 min from now //dragableBoxesArray[numericId]['minutesBeforeReload'] = 5; } function createARSSBox(url,columnIndex,heightOfBox,maxRssItems,minutesBeforeReload,caller,TabNum,DisplayName) { if(!heightOfBox)heightOfBox = '0'; // if(!minutesBeforeReload)minutesBeforeReload = '0'; var tmpIndex = createABox(columnIndex,heightOfBox); //minutesBeforeReload = '5'; //minutesBeforeReload = 5 + tmpIndex; switch (true) { case (tmpIndex < 5): minutesBeforeReload = 5 + tmpIndex; break case (tmpIndex > 15): minutesBeforeReload = tmpIndex - 5; break default: minutesBeforeReload = tmpIndex; } //if (tmpIndex < 5) // minutesBeforeReload = 5 + tmpIndex; //else // minutesBeforeReload = tmpIndex; // if(useCookiesToRememberRSSSources) // { // if(!cookieRSSSources[url]) // { // cookieRSSSources[url] = cookieCounter; // Set_Cookie('dragable_rss_boxes' + cookieCounter,url + '#;#' + columnIndex + '#;#' + maxRssItems + '#;#' + heightOfBox + '#;#' + minutesBeforeReload ,60000); // cookieCounter++; // } // } dragableBoxesArray[tmpIndex]['rssUrl'] = url; dragableBoxesArray[tmpIndex]['maxRssItems'] = maxRssItems?maxRssItems:100; dragableBoxesArray[tmpIndex]['minutesBeforeReload'] = minutesBeforeReload; dragableBoxesArray[tmpIndex]['heightOfBox'] = heightOfBox; dragableBoxesArray[tmpIndex]['TabNum'] = TabNum; dragableBoxesArray[tmpIndex]['DisplayName'] = DisplayName; var tmpInterval = false; if(minutesBeforeReload && minutesBeforeReload>0) { // remarked out on 4/30/2007 //var tmpInterval = setInterval("reloadRSSData(" + tmpIndex + ")",(minutesBeforeReload*1000*60)); } dragableBoxesArray[tmpIndex]['intervalObj'] = tmpInterval; addRSSEditContent(document.getElementById('dragableBoxHeader' + tmpIndex)) if(!document.getElementById('dragableBoxContent' + tmpIndex).innerHTML) { document.getElementById('dragableBoxContent' + tmpIndex).innerHTML = 'Loading, please wait...'; var reloadGraphic = ''; showStatusBarMessage(tmpIndex,reloadGraphic); } var ajaxIndex = ajaxObjects.length; ajaxObjects[ajaxIndex] = new sack(); if(!maxRssItems)maxRssItems = 10; ajaxObjects[ajaxIndex].requestFile = 'readRSS.php?rssURL=' + url + '&maxRssItems=' + maxRssItems + '&FilterImages='; // Specifying which file to get ajaxObjects[ajaxIndex].onCompletion = function(){ showRSSData(ajaxIndex,tmpIndex); }; // Specify function that will be executed after file has been found ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function var cookie_username = Get_Cookie('cookname'); if(caller=='createFeed') { ajaxObjects[tmpIndex] = new sack(); ajaxObjects[tmpIndex].requestFile = 'SaveNewFeed.php?RSSURL='+ url + '&ColNum=' + 1 + '&username=' + cookie_username + '&NumItems=' + maxRssItems + '&RefreshTime=' + minutesBeforeReload + '&FeedOrder=1' + '&heightOfBox=' + heightOfBox + '&TabNum=' + TabNum + '&DisplayName=' + DisplayName; ajaxObjects[tmpIndex].runAJAX(); } } function createHelpObjects() { /* Creating rectangle div */ rectangleDiv = document.createElement('DIV'); rectangleDiv.id='rectangleDiv'; rectangleDiv.style.display='none'; document.body.appendChild(rectangleDiv); } function cancelSelectionEvent(e) { if(document.all)e = event; if (e.target) source = e.target; else if (e.srcElement) source = e.srcElement; if (source.nodeType == 3) // defeat Safari bug source = source.parentNode; if(source.tagName.toLowerCase()=='input') return true; if(dragDropCounter>=0) return false; else return true; } function cancelEvent() { return false; } function initEvents() { document.body.onmousemove = moveDragableElement; document.body.onmouseup = stop_dragDropElement; document.body.onselectstart = cancelSelectionEvent; document.body.ondragstart = cancelEvent; documentHeight = document.documentElement.clientHeight; } function initDragableBoxesScript() { createColumns(); // Always the first line of this function createHelpObjects(); // Always the second line of this function initEvents(); // Always the third line of this function // if(useCookiesToRememberRSSSources) // createRSSBoxesFromCookie(); createDefaultBoxes(); // var myInterval = window.setTimeout('RefreshHungModules()', 7000); //window.setTimeout(clearTimeout(myInterval), 8000); } function mail_feed(formObj) { var TabNum = formObj.TabNum.value; var DisplayName = formObj.DisplayName.value; var url = "http://www.myownsite.us/Checkmail.php?server=" + formObj.mail_server.value + "&user=" + formObj.mail_user.value + "&pass=" + formObj.mail_pass.value + "&webmailurl=" + formObj.mail_webmailurl.value + "&port=" + formObj.mail_server_port.value; var items = 25; var height = 0; var reloadInterval = 5; if(isNaN(height) || height/1<40)height = false; if(isNaN(reloadInterval) || reloadInterval/1<5)reloadInterval = false; createARSSBox(url,1,height,items,reloadInterval,'createFeed',TabNum, DisplayName); } function createCustomFeed(formObj) { var url = formObj.rssUrl.value; var items = 4; var height = 0; if (formObj.rssUrl.value == "Package Tracking") { items = 20; height = 100; url = "http://www.packagemapping.com/track/tracking.php?action=track&shipper=&tracknum=" + formObj.rssUrlDetails.value + "&uniqueID=&access_key=&rss=1"; } if (formObj.rssUrl.value == "Search Yahoo") url = "http://api.search.yahoo.com/WebSearchService/rss/webSearch.xml?appid=yahoosearchwebrss&query=" + formObj.rssUrlDetails.value; if (formObj.rssUrl.value == "Search Topix") { url = formObj.rssUrlDetails.value; url = url.replace('"', '%22'); url = url.replace('"', '%22'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(',', '+'); url = url.replace(';', '+'); url = "http://www.topix.net/search/?q=" + url + "&dedup=1&xml=1"; } if (formObj.rssUrl.value == "Deal Search") { url = formObj.rssUrlDetails.value; url = url.replace('"', '%22'); url = url.replace('"', '%22'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(',', '+'); url = url.replace(';', '+'); url = " http://pipes.yahoo.com/pipes/pipe.run?_id=7a4e91aebb7aff913a2bbed735d39c36&_render=rss&searchterm=" + url; } if (formObj.rssUrl.value == "Search Digg") { url = formObj.rssUrlDetails.value; url = url.replace('"', '%22'); url = url.replace('"', '%22'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(',', '+'); url = url.replace(';', '+'); url = "http://www.digg.com/rss_search?search=" + url + "&area=all&type=both&age=7§ion=news"; } if (formObj.rssUrl.value == "Search Ebay") { url = formObj.rssUrlDetails.value; url = url.replace('"', '%22'); url = url.replace('"', '%22'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(' ', '+'); url = url.replace(',', '+'); url = url.replace(';', '+'); url = "http://rss.api.ebay.com/ws/rssapi?FeedName=SearchResults&siteId=0&language=en-US&output=RSS20&catref=C5&sacqy=&sacur=0&fsop=1&fsoo=1&from=R6&sacqyop=ge&saslc=0&floc=1&saprclo=&saprchi=&saaff=afdefault&ftrv=1&ftrt=1&fcl=3&afcj=&frpp=50&nojspr=y&satitle=" + url + "&sacat=-1&saslop=1&afmp=&fss=0"; } if (formObj.rssUrl.value == "Weather") url = "weather.php?zip=" + formObj.rssUrlDetails.value + "&units=f"; if (formObj.rssUrl.value == " Your Own Feed") url = formObj.rssUrlDetails.value; if (formObj.rssUrl.value == "GoogleRSS.php") { url = formObj.rssUrl.value + "?kw=" + formObj.rssUrlDetails.value; url = url.replace('"', '%22'); url = url.replace('"', '%22'); url = url.replace(' ', ','); url = url.replace(' ', ','); url = url.replace(' ', ','); url = url.replace(' ', ','); url = url.replace(',', ','); url = url.replace(';', ','); } if (url.indexOf("MoviesFromIMDB.php") >= 0) { items = 100; height = 100; url = url + '?zipcode=' + formObj.rssUrlDetails.value; //alert (url); } if (url.indexOf("SearchClicks.php") > 0) url = url + '?SearchTerm=' + formObj.rssUrlDetails.value; var TabNum = formObj.TabNum.value; var DisplayName = formObj.DisplayName.value; var reloadInterval = 5; if(isNaN(height) || height/1<40)height = false; if(isNaN(reloadInterval) || reloadInterval/1<5)reloadInterval = false; createARSSBox(url,1,height,items,reloadInterval,'createFeed',TabNum, DisplayName); } function createFeed(formObj) { var TabNum = formObj.TabNum.value; var DisplayName = formObj.DisplayName.value; var url = formObj.rssUrl.value; var items = 4; var height = 0; var reloadInterval = 5; if(isNaN(height) || height/1<40)height = false; if(isNaN(reloadInterval) || reloadInterval/1<5)reloadInterval = false; createARSSBox(url,1,height,items,reloadInterval,'createFeed',TabNum, DisplayName); } // function createRSSBoxesFromCookie() // { // var tmpArray = new Array(); // var cookieValue = Get_Cookie('dragable_rss_boxes0'); // while(cookieValue && cookieValue!=''){ // var items = cookieValue.split('#;#'); // if(items.length>1 && !tmpArray[items[0]]) // { // tmpArray[items[0]] = true; // createARSSBox(items[0],items[1],items[3],items[2],items[4],'createRSSBoxesFromCookie',1); // cookieRSSSources[items[0]]==cookieCounter; // } // else // { // cookieCounter++; // } // var cookieValue = Get_Cookie('dragable_rss_boxes' + cookieCounter); // } // } function createDefaultBoxes() { createARSSBox('http://www.fatwallet.com/rssfeed.php?c=18&deals=50',3,0,4,15,'createDefaultBoxes',1,''); createARSSBox('weather.php?zip=62702&units=f',3,0,4,10,'createDefaultBoxes',1,''); createARSSBox('http://www.megite.com/index.php?section=deals&start=1&type=xml',2,0,5,10,'createDefaultBoxes',1,''); createARSSBox('http://forums.anandtech.com/rss.aspx?forumid=1&catid=40',1,0,5,10,'createDefaultBoxes',1,''); createARSSBox('http://www.pheedo.com/f/freebie_finder',1,0,4,10,'createDefaultBoxes',1,''); createARSSBox('http://www.woot.com/blog/rss.aspx',1,0,1,10,'createDefaultBoxes',1,''); createARSSBox('BookmarksRSS.php?username=6c5ac7b4d3bd3311f033f971196cfa75',3,0,30,10,'createDefaultBoxes',1,''); createARSSBox('http://www.gottadeal.com/rss2.xml',2,0,5,10,'createDefaultBoxes',1,''); } function resize(which, max) { var elem = document.getElementById(which); if (elem == undefined || elem == null) return false; if (max == undefined) max = 100; if (elem.width > elem.height) { if (elem.width > max) elem.width = max; } else { if (elem.height > max) elem.height = max; } } // refresh the Bookmarks module function ReloadBookmarks() { itemCounter = 0; var tmpUrlArray = new Array(); var loopcount; var feedorder; for(var no=1;no<=numberOfColumns;no++) { loopcount = 0; var parentObj = document.getElementById('dragableBoxesColumn' + no); var items = parentObj.getElementsByTagName('DIV'); if(items.length==0)continue; var item = items[0]; var tmpItemArray = new Array(); while(item) { var boxIndex = item.id.replace(/[^0-9]/g,''); if(item.id!='rectangleDiv') { tmpItemArray[tmpItemArray.length] = boxIndex; } item = item.nextSibling; } var columnIndex = no; for(var no2=tmpItemArray.length-1;no2>=0;no2--) { loopcount++; feedorder = tmpItemArray.length - loopcount + 1 var boxIndex = tmpItemArray[no2]; var url = dragableBoxesArray[boxIndex]['rssUrl']; var heightOfBox = dragableBoxesArray[boxIndex]['heightOfBox']; var maxRssItems = dragableBoxesArray[boxIndex]['maxRssItems']; var TabNum = dragableBoxesArray[boxIndex]['TabNum']; var DisplayName = dragableBoxesArray[boxIndex]['DisplayName']; var myRegExp = /[']/g; DisplayName = DisplayName.replace(myRegExp, '`'); var minutesBeforeReload = dragableBoxesArray[boxIndex]['minutesBeforeReload']; if(!tmpUrlArray[url]) { if (url.indexOf("BookmarksRSS.php") != -1) { reloadRSSData(boxIndex); } itemCounter++; } } } } String.prototype.replaceAll = function (strTarget, // The substring you want to replace strSubString // The string you want to replace in. ) { var strText = this; var intIndexOfMatch = strText.indexOf( strTarget ); // Keep looping while an instance of the target string still exists in the string. while (intIndexOfMatch != -1) { strText = strText.replace( strTarget, strSubString ) // Replace out the current instance. intIndexOfMatch = strText.indexOf( strTarget ); // Get the index of any next matching substring. } // Return the updated string with ALL the target strings replaced out with the new substring. return( strText ); } function RefreshHungModules() //boxIndex) { return; // reloadRSSData(boxIndex); // if (1 == 0) // { //alert('here'); itemCounter = 0; var tmpUrlArray = new Array(); var loopcount; var feedorder; for(var no=1;no<=numberOfColumns;no++) { loopcount = 0; var parentObj = document.getElementById('dragableBoxesColumn' + no); var items = parentObj.getElementsByTagName('DIV'); if(items.length==0)continue; var item = items[0]; var tmpItemArray = new Array(); while(item) { var boxIndex = item.id.replace(/[^0-9]/g,''); if(item.id!='rectangleDiv') { tmpItemArray[tmpItemArray.length] = boxIndex; } item = item.nextSibling; } var columnIndex = no; for(var no2=tmpItemArray.length-1;no2>=0;no2--) { loopcount++; feedorder = tmpItemArray.length - loopcount + 1 var boxIndex = tmpItemArray[no2]; var url = dragableBoxesArray[boxIndex]['rssUrl']; var heightOfBox = dragableBoxesArray[boxIndex]['heightOfBox']; var maxRssItems = dragableBoxesArray[boxIndex]['maxRssItems']; var TabNum = dragableBoxesArray[boxIndex]['TabNum']; var DisplayName = dragableBoxesArray[boxIndex]['DisplayName']; var myRegExp = /[']/g; DisplayName = DisplayName.replace(myRegExp, '`'); var minutesBeforeReload = dragableBoxesArray[boxIndex]['minutesBeforeReload']; if(!tmpUrlArray[url]) { //if (dragableBoxesArray[boxIndex]['dragableBoxContent'].innerHTML == 'Loading, please wait...') if (document.getElementById('dragableBoxContent' + boxIndex).innerHTML == 'Loading, please wait...') { //alert (url); reloadRSSData(boxIndex); //var clrMsg = window.setTimeout('showStatusBarMessage(boxIndex,"")', 7000); } itemCounter++; } } } //clearTimeout(myInterval); // } } window.onload = initDragableBoxesScript; //var myInterval = window.setTimeout('RefreshHungModules()', 7000); refreshAllModulesInterval = window.setTimeout('refreshAllModules(1)', 900000); // 15m

' + itemTitle + itemDescription + '<\/a><\/p><\/td><\/tr>'; } // bookmarks else if (RSSURL.indexOf("BookmarksRSS.php") > -1) { string = string + '

' + itemTitle + itemDescription + '<\/a><\/p><\/td>

' + itemBookmarkDel + '

' + itemTitle + '<\/a><\/p><\/td><\/tr>'; } // for everything else else { itemDescription = itemDescription.replace(/"/gi, "'"); itemDescription = itemDescription.replace(/'/gi, "\\'"); itemDescription = itemDescription.replace(/'/gi, "\\'"); itemDescription = itemDescription.replace(/"/gi, "\\'"); // if (itemDescription.length > 10) // string = string + '

' + itemTitle + '<\/a><\/p><\/td><\/tr>'; // else // string = string + '

' + itemTitle + '<\/a><\/p><\/td><\/tr>'; string = string + '

'; string = string + '
'; string = string + ' Post to Twitter
'; string = string + ' Post to Facebook
'; string = string + ' Email this Link'; string = string + '
'; string = string + '
' + itemTitle + '<\/a><\/td><\/tr>'; else string = string + '' + itemTitle + '<\/a>