var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false

//var xml = new ActiveXObject("Microsoft.XMLDOM");

var SearchxmlData = new Array()
var SpclInfo = ""
var Sites = 0


/*
 ======================================================================
 RSS JavaScript Ticker object
 Author: George at JavaScriptKit.com/ DynamicDrive.com
 Created: Feb 5th, 2006. Updated: Feb 5th, 2006
 ======================================================================
*/

var Testing = false;

function createAjaxObj(){
var httprequest=false
if (window.XMLHttpRequest){ // if Mozilla, Safari etc
httprequest=new XMLHttpRequest()
if (httprequest.overrideMimeType)
httprequest.overrideMimeType('text/xml')
}
else if (window.ActiveXObject){ // if IE
try {
   httprequest=new ActiveXObject("Msxml2.XMLHTTP");
} 
catch (e){
try{
   httprequest=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
}
}
return httprequest
}

// -------------------------------------------------------------------
// Main RSS Ticker Object function
// rss_ticker(RSS_id, cachetime, divId, divClass, delay, optionalswitch)
// -------------------------------------------------------------------

function rss_ticker(RSS_id, RSS_Source, cachetime, divId, divClass, delay, optionalswitch){
this.RSS_id=RSS_id       //Array key indicating which RSS feed to display
this.RSS_Source=RSS_Source       //Array key indicating which RSS feed to display
this.cachetime=cachetime //Time to cache feed, in minutes. 0=no cache.
this.tickerid=divId      //ID of ticker div to display information
this.delay=delay         //Delay between msg change, in miliseconds.
this.logicswitch=(typeof optionalswitch!="undefined")? optionalswitch : -1
this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over ticker (and pause it if it is)
this.pointer=0
this.ajaxobj=createAjaxObj()
Sites = Sites + 1
this.getAjaxcontent(Sites)
}

// -------------------------------------------------------------------
// getAjaxcontent()- Makes asynchronous GET request to "rssfetch.php" with the supplied parameters
// -------------------------------------------------------------------

rss_ticker.prototype.getAjaxcontent=function(Sites){
if (this.ajaxobj){
var instanceOfTicker=this
var parameters="id="+encodeURIComponent(this.RSS_id)+"&cachetime="+this.cachetime
document.getElementById(this.tickerid).innerHTML="<b>Getting Content, Please wait....</b>";
this.ajaxobj.onreadystatechange=function(){instanceOfTicker.initialize(Sites)}
//this.ajaxobj.open('GET', "http://www.ournewz.com/rssfetch4.php?"+parameters, true)
this.ajaxobj.open('GET', "rssfetch4.php?"+parameters, true)
this.ajaxobj.send(null)
}
}

// -------------------------------------------------------------------
// Get Backup file 
// -------------------------------------------------------------------
function getBackupFile(fileName) {
//var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
var xmlhttp = createAjaxObj();
xmlhttp.open("GET", "http://www.ournewz.com/rssfetch_backup.php?"+fileName, false);
xmlhttp.send(null);
var xmldata=xmlhttp.responseText;
//alert(xmldata)
var xmldata=xmlhttp.responseXML;
//alert(xmldata)
return (xmldata);
}


// -------------------------------------------------------------------
// initialize()- Initialize ticker method.
// -Gets contents of RSS content and parse it using JavaScript DOM methods 
// -------------------------------------------------------------------

rss_ticker.prototype.initialize=function(Sites){ 
if (this.ajaxobj.readyState == 4){ //if request of file completed
if (this.ajaxobj.status==200){ //if request was successful
var xmldata=this.ajaxobj.responseXML

if(xmldata.getElementsByTagName("item").length==0){ //if no <item> elements found in returned content
  // document.getElementById(this.tickerid).innerHTML="<b>Error</b> fetching remote RSS feed!<br />"+this.ajaxobj.responseXML
  txt = "<b>Error</b> fetching " + "<a href='" +this.RSS_id + "' target='_blank'>" + this.RSS_Source + "</a>";
  document.getElementById(this.tickerid).innerHTML="<b>Error</b> fetching remote RSS feed!<br />";
  document.getElementById(this.tickerid).innerHTML=txt;
  
  var parameters="id="+encodeURIComponent(this.RSS_id)+"backup";
  xmldata = getBackupFile(parameters);
//  var xmlText=this.ajaxobj.responseText;
//  alert(xmlText);
//  SearchxmlData[Sites] = xmldata;
}
//else {

SearchxmlData[Sites] = xmldata;

titleitem = xmldata.getElementsByTagName("channel");

if (titleitem[0] == null) return(true);

NewsSource = titleitem[0].getElementsByTagName("title")[0].firstChild.nodeValue
NewsLink = titleitem[0].getElementsByTagName("link")[0].firstChild.nodeValue
if (titleitem[0].getElementsByTagName("lastBuildDate").length == 0) 
    NewsBuild = new Date();
else if (titleitem[0].getElementsByTagName("lastBuildDate")[0].childNodes.length == 0)
    NewsBuild = new Date();
else
    NewsBuild = titleitem[0].getElementsByTagName("lastBuildDate")[0].firstChild.nodeValue;
	    
//document.getElementById("NewsTitle").innerHTML = "<div class='rsstitle'>"+NewsSource+"</div>"

//NewsItem = '<table border="0" cellspacing="1" cellpadding="1" cols=3 style="font-size=12px float:none; "><tr>'
var NewsItem = new StringBuffer();
//NewsItem = ""

//TitleHTML = '<div class="NewzHeader">&nbsp; &nbsp;'
TitleHTML = '<div class="showHide heading">&nbsp; &nbsp;'
TitleHTML = TitleHTML + '<a href="'+NewsLink+'" target="_blank">' + NewsSource + "</a></div>"
TitleHTML = TitleHTML + '<div style="color:gray; font-size:9px">' + NewsBuild + "</div>"
//NewsItem = NewsItem + TitleHTML
NewsItem.append(TitleHTML);

//NewsItem = NewsItem + '<div class="NewzList">'
//NewsItem = NewsItem + '<div class="linklist16">'
NewsItem.append('<div class="linklist16">');

var instanceOfTicker=this
this.feeditems=xmldata.getElementsByTagName("item")

var title = new Array()
var link = new Array()
var description = new Array()
var pubdate = new Array()
var curdate = new Date()

//Cycle through RSS XML object and store each peice of an item inside a corresponding array
for (var i=0; i<this.feeditems.length; i++){
    if (this.feeditems[i].childNodes.length > 0) {
    if (this.feeditems[i].getElementsByTagName("title")[0].childNodes.length > 0) {
	title[i]=this.feeditems[i].getElementsByTagName("title")[0].firstChild.nodeValue
	link[i]=this.feeditems[i].getElementsByTagName("link")[0].firstChild.nodeValue
	
	if (this.feeditems[i].getElementsByTagName("description").length == 0) 
	    description[i] = "Click here to get full details";
	else if (this.feeditems[i].getElementsByTagName("description")[0].childNodes.length == 0)
	    description[i] = "Click here to get full details";
	else
	    description[i]= this.feeditems[i].getElementsByTagName("description")[0].firstChild.nodeValue;
	      
	if (this.feeditems[i].getElementsByTagName("pubDate").length == 0) 
	    pubdate[i] = "";
	else if (this.feeditems[i].getElementsByTagName("pubDate")[0].childNodes.length == 0)
	    pubdate[i] = "";
	else    
	    pubdate[i]=this.feeditems[i].getElementsByTagName("pubDate")[0].firstChild.nodeValue
	
	var pubdates = new Date(pubdate[i])

	recentItem = ((curdate - pubdates)/(60*60*1000) < 2 ? true : false)
	
	//if (Testing) alert(description[i]+" abc")
	itemDescription= (description[i] == null ? "Click here to get full details" : description[i])
	//itemDescription = itemDescription.replace("<I>","")
	//itemDescription = itemDescription.replace("</i>","")
	//title[i] = title[i].replace("<I>","")
	//title[i] = title[i].replace("</i>","")

	itemDescription = RemoveSplChar(itemDescription)
	//if (Testing) alert("Desc = " + itemDescription)
	NewsItem.append("&nbsp;&nbsp;");
	NewsItem.append(recentItem ? "<span>&bull;" : "&bull;")
	NewsItem.append("&nbsp;&nbsp;")
	NewsItem.append('<a href="' + link[i]+ '" target="_blank" onMouseover='+ "'"+ 'ddrivetip("');
	NewsItem.append(itemDescription + '","lightcyan",350)'+ "'" + ' onMouseout="hideddrivetip();">');
	NewsItem.append(title[i] +'</a><br />');
	NewsItem.append (recentItem ? "</span>" : "");
	
    }
    }
}

NewsItem.append('</div>');

var tickerDiv=document.getElementById(this.tickerid)
tickerDiv.innerHTML=NewsItem.toString();
Testing = false;
//}
}
}
}

// ------------------------------------------------
function RemoveSplChar(str) {
	var result = str;

	//if (result == "null") {
	result = result.replace(/"/g, "`")
	result = result.replace(/'/g, "`")
	result = result.replace(/\n/g, "")
	result = result.replace(/\r/g, "")
	//}
	return(result);
}


/***********************************************
* Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

//---------------------------------------------------
function ddrivetip(thetext, thecolor, thewidth){

if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML= thetext;
enabletip=true
//positiontip(5)
return false
}
}

//---------------------------------------------------
function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20

var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
   tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
   tipobj.style.left="5px"
else
//position the horizontal position of the menu where the mouse is positioned
   tipobj.style.left=curX+offsetxpoint+"px"

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight)
    tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
else
    tipobj.style.top=curY+offsetypoint+"px"

tipobj.style.visibility="visible"
}
}

//---------------------------------------------------
function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}


//----------------------------------------------------
function StringBuffer() { 
   this.buffer = []; 
 } 

 StringBuffer.prototype.append = function append(string) { 
   this.buffer.push(string); 
   return this; 
 }; 

 StringBuffer.prototype.toString = function toString() { 
   return this.buffer.join(""); 
 }; 


//---------------------------------------------------
function WriteSpecialFeed(divName) {

document.getElementById(divName).innerHTML=SpclInfo;
SpclInfo = ""
}

//---------------------------------------------------
function setSearchValue () {
//frmData = document.form1

document.getElementById('Text1').value = (GetCookie('srchtext1') == null ? "" : GetCookie('srchtext1'))
document.getElementById('Text2').value = (GetCookie('srchtext2') == null ? "" : GetCookie('srchtext2'))
document.getElementById('Text3').value = (GetCookie('srchtext3') == null ? "" : GetCookie('srchtext3'))
document.getElementById('Text4').value = (GetCookie('srchtext4') == null ? "" : GetCookie('srchtext4'))
}

//---------------------------------------------------
function SearchFeed() {


frmData = document.form1

  SetCookie('srchtext1',document.getElementById('Text1').value);
  SetCookie('srchtext2',document.getElementById('Text2').value);
  SetCookie('srchtext3',document.getElementById('Text3').value);
  SetCookie('srchtext4',document.getElementById('Text4').value);
  
  srchText1 = (document.getElementById('Text1').value == "" ? "" : document.getElementById('Text1').value.toLowerCase())
  srchText2 = (document.getElementById('Text2').value == "" ? "" : document.getElementById('Text2').value.toLowerCase())
  srchText3 = (document.getElementById('Text3').value == "" ? "" : document.getElementById('Text3').value.toLowerCase())
  srchText4 = (document.getElementById('Text4').value == "" ? "" : document.getElementById('Text4').value.toLowerCase())
      
NumOfFeed = Sites

for (var i=1; i <= NumOfFeed; i++) {
  //if (SearchxmlData[i].xml.indexOf("rdf") > 0) {
     srchItem = SearchText(SearchxmlData[i], srchText1, srchText2, srchText3, srchText4)
     SpclInfo = SpclInfo + srchItem
}

  WriteSpecialFeed('SpecialNews')
}


//--------------------------------------------------------------------------
function SearchText(searchXML, srchText1, srchText2, srchText3, srchText4) {


titleitem = searchXML.getElementsByTagName("channel")
if (titleitem.length == 0) return "";

NewsSource = titleitem[0].getElementsByTagName("title")[0].firstChild.nodeValue

this.feeditems=searchXML.getElementsByTagName("item")

var title = ""
var link = ""
var description = ""
var pubdate = ""
var curdate = new Date()

//NewsItem = ""
var NewsItem = new StringBuffer();

FirstTime = 0

//Cycle through RSS XML object and store each peice of an item inside a corresponding array
for (var i=0; i<this.feeditems.length; i++){
    if (this.feeditems[i].childNodes.length > 0) {
    if (this.feeditems[i].getElementsByTagName("title")[0].childNodes.length > 0) {
    
	title=this.feeditems[i].getElementsByTagName("title")[0].firstChild.nodeValue
	link=this.feeditems[i].getElementsByTagName("link")[0].firstChild.nodeValue
	
	if (this.feeditems[i].getElementsByTagName("description").length == 0) 
	    description = "Click here to get full details";
	else if (this.feeditems[i].getElementsByTagName("description")[0].childNodes.length == 0)
	    description = "Click here to get full details";
	else
	    description= this.feeditems[i].getElementsByTagName("description")[0].firstChild.nodeValue;
	      
	if (this.feeditems[i].getElementsByTagName("pubDate").length == 0) 
	    pubdate = "";
	else if (this.feeditems[i].getElementsByTagName("pubDate")[0].childNodes.length == 0)
	    pubdate = "";
	else    
	    pubdate =this.feeditems[i].getElementsByTagName("pubDate")[0].firstChild.nodeValue
	
	var pubdates = new Date(pubdate[i])

	recentItem = ((curdate - pubdates)/(60*60*1000) < 2 ? true : false)

	itemDescription= description

	itemDescription = RemoveSplChar(itemDescription)
	//if (Testing) alert("Desc = " + itemDescription)
		
	if ( (((itemDescription.toLowerCase().indexOf(srchText1) >= 0) || (title.toLowerCase().indexOf(srchText1) >= 0) )
	            && (srchText1.length > 0))
	  || (((itemDescription.toLowerCase().indexOf(srchText2) >= 0) || (title.toLowerCase().indexOf(srchText2) >= 0) )
	            && (srchText2.length > 0))
	  || (((itemDescription.toLowerCase().indexOf(srchText3) >= 0) || (title.toLowerCase().indexOf(srchText3) >= 0) )
	            && (srchText3.length > 0))
	  || (((itemDescription.toLowerCase().indexOf(srchText4) >= 0) || (title.toLowerCase().indexOf(srchText4) >= 0) )
	            && (srchText4.length > 0))
	  
	) {
	
 
 	   if (FirstTime == 0) {
	      NewsItem.append('<b><div class="NewzHeader">' +NewsSource + "</b></div>");
	      NewsItem.append( '<div class="NewzList2">');
	   }

	   
	   FirstTime = 1

	   NewsItem.append("&nbsp;&nbsp;");
	   NewsItem.append(recentItem ? "<span>&bull;" : "&bull;")
	   NewsItem.append("&nbsp;&nbsp;");
	   NewsItem.append('<a href="' + link+ '" target="_blank" onMouseover='+ "'"+ 'ddrivetip("');
	   NewsItem.append(itemDescription + '","lightcyan",350)'+ "'" + ' onMouseout="hideddrivetip();">');
	   NewsItem.append(title + '</a><br />');
	   NewsItem.append(recentItem ? "</span>" : "")
	}
	
    }
    }
}

    NewsItem.append('</div>');
//NewsItem = NewsItem +"</table>"

return (NewsItem.toString())

}


//--------------------------------------------------------------------------
function ListNewzChannel() {
CheckBoxNum = 0
document.getElementById('1box').innerHTML = GetNewsList(GeneralNews)
document.getElementById('2box').innerHTML = GetNewsList(Technology)
document.getElementById('3box').innerHTML = GetNewsList(Medical)
document.getElementById('4box').innerHTML = GetNewsList(Financial)
document.getElementById('5box').innerHTML = GetNewsList(IndiaNews)
document.getElementById('6box').innerHTML = GetNewsList(Sports)
document.getElementById('7box').innerHTML = GetNewsList(Fitness)
document.getElementById('8box').innerHTML = GetNewsList(Vacation)
document.getElementById('9box').innerHTML = GetNewsList(Deals)
document.getElementById('10box').innerHTML = GetNewsList(Misc)

document.getElementById('11box').innerHTML = ('<Center><INPUT text=5 TYPE="button" value="Update MyNewz" onclick="SetMyNewz()">')
   CfgURL ="<center>Click the button to Update My Newz   &nbsp &nbsp";
   CfgURL += "<input id='btnConfigure' type=button value='Update MyNewz' onclick='SetMyNewz()'></b></center>";
   document.getElementById('SpecialNews').innerHTML = CfgURL;
}


//--------------------------------------------------------------------------
function GetNewsList(FeedList) {

NumOfNewz = GetCookie("NumOfNewz")

NewsList = "<b>" + FeedList[0] + "</b><BR>"
for (var i=1; i < FeedList.length; i+= 2) {
	//CheckBoxNum++;
	BoxName = "Check" + (CheckBoxNum++);

	AlreadySelected = ""
	for (var j=0; j < NumOfNewz; j++) {
	    if (FeedList[i+1] == MyNewz[j*2+2]) {
	       AlreadySelected = " checked = true "
	       break
	    }
	}

	NewsList += '<INPUT  TYPE="checkbox" name="'+ BoxName+ '" value = "' 
	NewsList += FeedList[i+1] + '" ' + AlreadySelected + '> &nbsp;'
	NewsList += FeedList[i] + "<br>"

}

return (NewsList)
}



//--------------------------------------------------------------------------
function CheckMyNewz() {
NumOfNewz = GetCookie("NumOfNewz")

   CfgURL ="<center>Click the button to configure My Newz   &nbsp &nbsp";
   CfgURL += "<input id='btnConfigure' type=button value='Configure MyNewz' onclick='ListNewzChannel()'></b></center>";
   document.getElementById('SpecialNews').innerHTML = CfgURL;

if (NumOfNewz > 0) 
   GetMyNewz_From_Cookie();
else
   ListNewzChannel();
}


//--------------------------------------------------------------------------
function SetMyNewz() {
SelectedNewz = 0;
for (var i=0; i < CheckBoxNum; i++) {
	BoxName = "Check" + i;
	if (document.getElementById(BoxName).checked) {
	    NewzNum = "NEWZ"+ (SelectedNewz++) 
	    DeleteCookie(NewzNum);
	    SetCookie(NewzNum, document.getElementById(BoxName).value);
	}
}

SetCookie("NumOfNewz", SelectedNewz);
alert ("Total selected news = " + SelectedNewz)
//document.getElementById('btnConfigure').onClick = "ListNewzChannel"
//document.getElementById('btnConfigure').value = "Configure MyNewz"
//GetMyNewz_From_Cookie();
CheckMyNewz();

}

var MyNewz = new Array()

//--------------------------------------------------------------------------
function GetMyNewz_From_Cookie() {
NumOfNewz = GetCookie("NumOfNewz")

MyNewz = new Array()
MyNewz[0] = "My Newz"
for (var i=0; i < NumOfNewz; i++) {
    //NewzURL = 
    MyNewz[i*2 + 1] = "My Newz " + i
    MyNewz[i*2 + 2] = GetCookie("NEWZ"+i)
}

GetNews(MyNewz);
}
