var dToday = null;
var thisYear = 2008;
var thisMonth = 1;
var calTimeout;

var httpFeaturedEvents;
var httpRecentlyAdded;
var httpMostPopular;
var httpSingleEvent;
var httpMonthEvents;
var httpBookMark;
var httpDateEvent;

var featuredEventsPages = 1;
var featuredEventsCurPage = 1;
var recentlyAddedPages = 1;
var recentlyAddedCurPage = 1;
var mostPopularPages = 1;
var mostPopularCurPage = 1;

var firstEvent = 0;

var arrCalDateEvents;
var arrCalEventDetails;

var userBrowser;

function EventsInitPage() {
  userBrowser = BrowserDetect.browser;
  
  dToday = new Date();
  thisYear = dToday.getFullYear();
  thisMonth = dToday.getMonth() + 1; //getMonth start with 0
  
  document.getElementById("divSelYear").innerHTML = thisYear;
  
  drawCalendar();
  
  featuredEventsCurPage = 1;
  recentlyAddedCurPage = 1;
  mostPopularCurPage = 1;
  
  //showFeaturedEventsLoading();
  //showRecentlyAddedLoading();
  //showMostPopularLoading();
  //getFeaturedEvents();
  //getRecentlyAdded();
  //getMostPopular();
  
  if (location.hash != "" && location.hash.substr(0, 7) == "#event_") {
    var eventId = parseInt(location.hash.substr(7),10);
    //getSingleEvent(eventId);
  }
}

//EVENT CALENDAR INTERACTIVES
function selPrevYear() {
  thisYear -= 1;
  document.getElementById("divSelYear").innerHTML = thisYear;
}
function selNextYear() {
  thisYear += 1;
  document.getElementById("divSelYear").innerHTML = thisYear;
}

function showMonthSelector() {
  document.getElementById("divMonthSelector").style.visibility = "visible";
  document.getElementById("monthSel").style.backgroundPosition = "left bottom";
  
}
function hideMonthSelector() {
  document.getElementById("divMonthSelector").style.visibility = "hidden";
  document.getElementById("monthSel").style.backgroundPosition = "left top";
}

function selMonth(m) {
  thisMonth = parseInt(m, 10);
  drawCalendar();
}

function drawCalendar() {
  //get first day of the month
  var dMonth = new Date();
  dMonth.setFullYear(thisYear);
  dMonth.setMonth(thisMonth-1);
  dMonth.setDate(1);
  document.getElementById("monthSel").innerHTML = getMonthLongName(thisMonth) + " " + thisYear;

  var totalDays = getMonthDays(thisYear, thisMonth);
  
  var dMonthLastDay = new Date();
  dMonthLastDay.setFullYear(thisYear);
  dMonthLastDay.setMonth(thisMonth-1);
  dMonthLastDay.setDate(totalDays);
  
  var buff = "";
  buff = "<table cellspacing='0'>" +
         "<thead><tr><td>Sun</td><td>Mon</td><td>Tue</td><td>Wed</td><td>Thu</td><td>Fri</td><td>Sat</td></tr></thead>";
         
  var ds = dMonth.getDay();
  var de = dMonthLastDay.getDay();
  
  var first_colspan = ds;
  var lasts_colpan = 6 - de;
  
  buff += "<tr>";
  
  if (first_colspan > 0)  {
		buff += "<td colspan='" + first_colspan + "' class='blank'>&nbsp;</td>";
  }
  
  var weekday = ds;
  var d = 1;
  for (d=1; d<=totalDays; d++)    {
    
    buff += "<td id='cal_" + d + "'><div>" + d + "</div></td>";
    
    weekday++;
    if (weekday == 7)  {
		  weekday = 0;
		  buff += "</tr>\n<tr>";
		}
  }
  
  if (lasts_colpan > 0)
    buff += "<td colspan='" + lasts_colpan + "' class='blank'>&nbsp;</td></tr>\n";
	
  buff += "</table>";
  
  document.getElementById("divCalendar").innerHTML = buff;
  
  getMonthEvents();
}

function getMonthEvents() {
  sYear = thisYear + '';
  sMonth = thisMonth + '';
  if (sMonth.length == 1) {
    sMonth = '0' + sMonth;
  }
  sYear = sYear.substring(2);
  var param = sYear + sMonth;
  
  httpMonthEvents = GetXmlHttpObject();
  
  if (httpMonthEvents != null)  {
    if (httpMonthEvents.readyState == 4 || httpMonthEvents.readyState == 0) {
      var url="process.aspx?type=GET_EVENT_BYMONTH&date=" + param;
      httpMonthEvents.onreadystatechange=populateMonthEvents;
      httpMonthEvents.open("GET",url,true);
      httpMonthEvents.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      httpMonthEvents.send(null);
    }
  }
  else  {
    alert ("Your browser does not support AJAX!");
  }
}

function populateMonthEvents() {
  //alert("ReadyState=" + httpMonthEvents.readyState + ", Status=" + httpMonthEvents.status + " (" + thisMonth + ")");
  if (httpMonthEvents != null)  {
    if (httpMonthEvents.readyState==4 && httpMonthEvents.status == 200)  {
      var xmlDoc = httpMonthEvents.responseXML.documentElement; 
      arrCalDateEvents = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                               0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
      arrCalEventDetails = new Array('','','','','','','','','','',
                                     '','','','','','','','','','',
                                     '','','','','','','','','','',
                                     '','');
      
      //arrCalDateEvents[0] and arrCalEventDetails[] are useless 
      
      for (n=0; n<xmlDoc.childNodes.length; n++) {
        if (xmlDoc.childNodes[n].nodeName == "event") {
          var eventNode = xmlDoc.childNodes[n];
          var strEvent = "";
          
          structEvent = nodeFieldsToArray(eventNode);
          
          var dSDate = dbToJsDate(structEvent["start_date"]);
          var dEDate = dbToJsDate(structEvent["end_date"]);
          
          //for each day in the event period
          var dCDate = dSDate;
          ///var buff = structEvent["title"] + "\n" + dSDate + ", " + dEDate + "\n";
          
          while (dCDate <= dEDate) {
            var tdy = dCDate.getDate();
            
            ///buff += dCDate + " (" + tdy + ")\n";
            
            if ((dCDate.getMonth()+1) == thisMonth) {
              if (arrCalDateEvents[tdy] < 5) {
                arrCalDateEvents[tdy]++;
                arrCalEventDetails[tdy] += "<p><a href='eventdetails.aspx?id=" + structEvent["id"] + "'>" + structEvent["title"] + "</a></p><p class='sepHor'></p>";
              }
              else  {
                arrCalDateEvents[tdy] = 5;
                arrCalEventDetails[tdy] += "<p><a href='eventdetails.aspx?id=" + structEvent["id"] + "'>" + structEvent["title"] + "</a></p><p class='sepHor'></p>";
              }
            }
            
            dCDate.setDate(dCDate.getDate() + 1);
          }
          ///alert(buff);
        }
      }
      
      ///alert(arrCalDateEvents[6]);
      for (d=1; d<=31; d++) {
        if (arrCalDateEvents[d] > 0 && document.getElementById("cal_" + d) != undefined) {
          var txt = document.getElementById("cal_" + d).innerHTML;
          
          /****/
          var sYear = thisYear + '';
          var sMonth = thisMonth + '';
          var sDate = d + '';
          if (sMonth.length == 1) {
            sMonth = '0' + sMonth;
          }
          if(sDate.length==1){
            sDate = '0' + sDate;
          }
          sYear = sYear.substring(2);
          var param = sYear + sMonth + sDate;
          /****  onMouseOUt='hideDayEvents()' **/
          
          txt += "<img src='images/bullet_" + arrCalDateEvents[d] + ".gif' alt='' onMouseOver='showDayEvents(" + d + ")' onMouseOut='hideDayEvents()' onclick='getEventsByDate(\""+param+"\")' />";
          document.getElementById("cal_" + d).innerHTML = txt;
        }
      }
    }
  }
  else  {
    alert ("Your browser does not support AJAX (2)!");
  }
}

function showDayEvents(d) {
  clearTimeout(calTimeout);
  var cellH = 33;
  if (userBrowser == "Firefox" || userBrowser == "Opera") {
    cellH = 30;
  }
  
  var buff = "";
  var obj = document.getElementById("divCalDayInfo");
  obj.innerHTML = "<div>" + arrCalEventDetails[d] + "</div>";
  
  var dCur = new Date();
  dCur.setFullYear(thisYear);
  dCur.setMonth(thisMonth-1);
  dCur.setDate(d);
  var wDay = dCur.getDay();
  var curWeek = 1 + Math.ceil((d - wDay < 0? 0 : d - wDay) / 7);
  
  var sec = "A";
  var l = 0; t = 0;
  if (curWeek <= 3 && wDay <= 3) {
    sec = "A";
    l = 40 + (wDay * 50);
    t = 25 + (curWeek * cellH);
  }
  else if (curWeek <= 3 && wDay > 3) {
    sec = "B";
    l = 40 + ((wDay * 50) - 172)
    t = 25 + (curWeek * cellH);
  }
  else if (curWeek > 3 && wDay <= 3) {
    sec = "C";
    l = 40 + (wDay * 50);
    t = 10 + ((curWeek * cellH) - obj.offsetHeight);
  }
  else if (curWeek > 3 && wDay > 3) {
    sec = "D";
    l = 40 + ((wDay * 50) - 172)
    t = 10 + ((curWeek * cellH) - obj.offsetHeight);
  }
  
  obj.className = "divCalPoint" + sec;
  obj.style.marginLeft = l + "px";
  obj.style.marginTop = t + "px";
  obj.style.visibility = "visible";
  
}

function hideDayEvents() {
    calTimeout = setTimeout("hideDayEvents1();",2000);
  //document.getElementById("divCalDayInfo").style.visibility = "hidden";
}

function hideDayEvents1() { 
   document.getElementById("divCalDayInfo").style.visibility = "hidden";
}

//EVENT TABS INETERACTIVES 
function showFeaturedEvents() {
  
  document.getElementById("divFeaturedEvents").style.display = "";
  document.getElementById("divRecentlyAdded").style.display = "none";
  document.getElementById("divMostPopular").style.display = "none";
  document.getElementById("aFeaturedEvents").className = "secTabSel";
  document.getElementById("aRecentlyAdded").className = "secTab";
  document.getElementById("aMostPopular").className = "secTab";
}

function showRecentlyAdded() {
  document.getElementById("divFeaturedEvents").style.display = "none";
  document.getElementById("divRecentlyAdded").style.display = "";
  document.getElementById("divMostPopular").style.display = "none";
  document.getElementById("aFeaturedEvents").className = "secTab";
  document.getElementById("aRecentlyAdded").className = "secTabSel";
  document.getElementById("aMostPopular").className = "secTab";
}

function showMostPopular() {
  document.getElementById("divFeaturedEvents").style.display = "none";
  document.getElementById("divRecentlyAdded").style.display = "none";
  document.getElementById("divMostPopular").style.display = "";
  document.getElementById("aFeaturedEvents").className = "secTab";
  document.getElementById("aRecentlyAdded").className = "secTab";
  document.getElementById("aMostPopular").className = "secTabSel";
}


function showFeaturedEventsLoading() {
  document.getElementById("divFeaturedEvents").innerHTML = getLoadingBar();
}

function showRecentlyAddedLoading() {
  document.getElementById("divRecentlyAdded").innerHTML = getLoadingBar();
}

function showMostPopularLoading() {
  document.getElementById("divMostPopular").innerHTML = getLoadingBar();
}

//AJAX FOR EVENT TABS
function getFeaturedEvents() {
  httpFeaturedEvents = GetXmlHttpObject();
  
  if (httpFeaturedEvents != null)  {
    if (httpFeaturedEvents.readyState == 4 || httpFeaturedEvents.readyState == 0) {
      var url="process.aspx?type=FEATURED_EVENT&page=" + featuredEventsCurPage;
      httpFeaturedEvents.onreadystatechange=drawFeaturedEvents;
      httpFeaturedEvents.open("GET",url,true);
      httpFeaturedEvents.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      httpFeaturedEvents.send(null);
    }
  }
  else  {
    alert ("Your browser does not support AJAX!");
  }
}

function drawFeaturedEvents() {
  if (httpFeaturedEvents != null)  {
    if (httpFeaturedEvents.readyState==4 && httpFeaturedEvents.status == 200)  {
      var xmlDoc = httpFeaturedEvents.responseXML.documentElement; 
      var buff = "";
      var arrBookmark = new Array();
      for (n=0; n<xmlDoc.childNodes.length; n++) {
        if (xmlDoc.childNodes[n].nodeName == "event") {
          var eventNode = xmlDoc.childNodes[n];
          var strEvent = "";
          
          structEvent = nodeFieldsToArray(eventNode);
          
          if(structEvent["icon"]!=""){
            buff += "<div class='divEIcon'><a class='listLink' href='#event_" + structEvent["id"] + "' onClick='javascript:getSingleEvent(" + structEvent["id"] + ")'><img src='" + structEvent["icon"] + "' alt=''  style='vertical-align:bottom;border:0px'/></a></div>" ;
          }else{
            buff += "<div class='divEIcon' style='background-image:none' ></div>" ;
          }
          
          buff += "<div class='divEventListWrapper'>" ;
          buff += "  <div class='divEDetail'>" ;
          buff += "    <div><a class='listLink' style='text-decoration:none' href='#event_" + structEvent["id"] + "' onClick='javascript:getSingleEvent(" + structEvent["id"] + ")'>" + structEvent["title"] + "</a></div>" ;
          //buff += "    <div class='smaller' >" + structEvent["description"] + "</div>" ;
          buff += "  </div>" ;
          buff += "  <div class='divEDate smaller'>" + structEvent["start_date"] + "</div>" ;
          buff += "  <div style='clear:both'></div>";
          buff += "  <div class='divEDescL smaller'>" + structEvent["description"] + "</div>" ;
          buff += "  <div style='clear:both'></div>";
          buff += "</div>" ;
          if(arrBookmark[structEvent["id"]]!=undefined&&arrBookmark[structEvent["id"]]!="")
            buff += drawbookmarkBtn(structEvent["id"],true,"featured");
          else
            buff += drawbookmarkBtn(structEvent["id"],false,"featured");
          buff += "<div class='sepHor' style='clear:both'></div>";
            
          //show event detail for first featured event
          if (firstEvent == 0 && location.hash == "") {
            firstEvent = 1;
            getSingleEvent(structEvent["id"]);
          }
        }
        else if (xmlDoc.childNodes[n].nodeName == "totalpage") {
          featuredEventsPages = parseInt(xmlDoc.childNodes[n].childNodes[0].nodeValue,10);
        }else if(xmlDoc.childNodes[n].nodeName == "noresult"){
           buff += "<span class='noresult'>There are no events under this category.</span>";
           break;
        }else if(xmlDoc.childNodes[n].nodeName == "bookmark"){
            var node = xmlDoc.childNodes[n]; 
            for (j=0; j<node.childNodes.length; j++) {
                if (node.childNodes[j].childNodes[0] != undefined) {
                  arrBookmark[(node.childNodes[j].childNodes[0].nodeValue)] = node.childNodes[j].childNodes[0].nodeValue;
                }
            }
        }
        
      }
      
      if (buff != "") {
        buff += "<div>" + drawPaging("featuredEvents") + "</div>";
      }else{
        buff += "<div>&nbsp;</div>"; 
      }
      
      document.getElementById("divFeaturedEvents").innerHTML = buff;
    }
  }
}


function getRecentlyAdded() {
  httpRecentlyAdded = GetXmlHttpObject();
  
  if (httpRecentlyAdded != null)  {
    if (httpRecentlyAdded.readyState == 4 || httpRecentlyAdded.readyState == 0) {
      var url="process.aspx?type=RECENT_EVENT&page=" + recentlyAddedCurPage;
      httpRecentlyAdded.onreadystatechange=drawRecentlyAdded;
      httpRecentlyAdded.open("GET",url,true);
      httpRecentlyAdded.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      httpRecentlyAdded.send(null);
    }
  }
  else  {
    alert ("Your browser does not support AJAX!");
  }
}

function drawRecentlyAdded() {
  if (httpRecentlyAdded != null)  {
    if (httpRecentlyAdded.readyState==4 && httpRecentlyAdded.status == 200)  {
      var xmlDoc = httpRecentlyAdded.responseXML.documentElement; 
      var buff = "";
      var arrBookmark = new Array();
      for (n=0; n<xmlDoc.childNodes.length; n++) {
        if (xmlDoc.childNodes[n].nodeName == "event") {
          
          var eventNode = xmlDoc.childNodes[n];
          var strEvent = "";
          
          structEvent = nodeFieldsToArray(eventNode);
          
          if(structEvent["icon"]!=""){
            buff += "<div class='divEIcon'><a class='listLink' href='#event_" + structEvent["id"] + "' onClick='javascript:getSingleEvent(" + structEvent["id"] + ")'><img src='" + structEvent["icon"] + "' alt=''  style='vertical-align:bottom;border:0px'/></a></div>" ;
          }else{
            buff += "<div class='divEIcon' style='background-image:none'></div>" ;
          }
          buff += "<div  class='divEventListWrapper' >" ;
          buff += "  <div class='divEDetail'>" ;
          buff += "    <div><a class='listLink' style='text-decoration:none' href='#event_" + structEvent["id"] + "' onClick='javascript:getSingleEvent(" + structEvent["id"] + ")'>" + structEvent["title"] + "</a></div>" ;
          //buff += "    <div class='smaller' >" + structEvent["description"] + "</div>" ;
          buff += "  </div>" ;
          buff += "  <div class='divEDate smaller'>" + structEvent["start_date"] + "</div>" ;
          buff += "  <div style='clear:both'></div>";
          buff += "  <div class='divEDescL smaller'>" + structEvent["description"] + "</div>" ;
          buff += "  <div style='clear:both'></div>";
          buff += "</div>" ;
          if(arrBookmark[structEvent["id"]]!=undefined&&arrBookmark[structEvent["id"]]!="")
            buff += drawbookmarkBtn(structEvent["id"],true,"recently");
          else
            buff += drawbookmarkBtn(structEvent["id"],false,"recently");
          buff += "<div class='sepHor' style='clear:both'></div>";
        }
        else if (xmlDoc.childNodes[n].nodeName == "totalpage") {
          recentlyAddedPages = parseInt(xmlDoc.childNodes[n].childNodes[0].nodeValue,10);
        }else if(xmlDoc.childNodes[n].nodeName == "noresult"){
           buff += "<span class='noresult'>There are no events under this category.</span>";
           break;
        }else if(xmlDoc.childNodes[n].nodeName == "bookmark"){
            var node = xmlDoc.childNodes[n]; 
            for (j=0; j<node.childNodes.length; j++) {
                if (node.childNodes[j].childNodes[0] != undefined) {
                  arrBookmark[(node.childNodes[j].childNodes[0].nodeValue)] = node.childNodes[j].childNodes[0].nodeValue;
                }
            }
        }
      }
      
      if (buff != "") {
        buff += "<div>" + drawPaging("recentlyAdded") + "</div>";
      }
      
      document.getElementById("divRecentlyAdded").innerHTML = buff;
    }
  }
}


function getMostPopular() {
  httpMostPopular = GetXmlHttpObject();
  
  if (httpMostPopular != null)  {
    if (httpMostPopular.readyState == 4 || httpMostPopular.readyState == 0) {
      var url="process.aspx?type=POPULAR_EVENT&page=" + mostPopularCurPage;
      httpMostPopular.onreadystatechange=drawMostPopular;
      httpMostPopular.open("GET",url,true);
      httpMostPopular.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      httpMostPopular.send(null);
    }
  }
  else  {
    alert ("Your browser does not support AJAX!");
  }
}

function drawMostPopular() {
  if (httpMostPopular != null)  {
    if (httpMostPopular.readyState==4 && httpMostPopular.status == 200)  {
      var xmlDoc = httpMostPopular.responseXML.documentElement; 
      var buff = "";
      var arrBookmark = new Array();
      for (n=0; n<xmlDoc.childNodes.length; n++) {
        if (xmlDoc.childNodes[n].nodeName == "event") {
          var eventNode = xmlDoc.childNodes[n];
          var strEvent = "";
          
          structEvent = nodeFieldsToArray(eventNode);
          
          if(structEvent["icon"]!=""){
            buff += "<div class='divEIcon'><a class='listLink' href='#event_" + structEvent["id"] + "' onClick='javascript:getSingleEvent(" + structEvent["id"] + ")'><img src='" + structEvent["icon"] + "' alt='' style='vertical-align:bottom;border:0px' /></a></div>" ;
          }else{
            buff += "<div class='divEIcon' style='background-image:none'></div>" ;
          }
          buff += "<div  class='divEventListWrapper' >" ;
          buff += "  <div class='divEDetail'>" ;
          buff += "    <div><a class='listLink'style='text-decoration:none' href='#event_" + structEvent["id"] + "' onClick='javascript:getSingleEvent(" + structEvent["id"] + ")'>" + structEvent["title"] + "</a></div>" ;
          //buff += "    <div class='smaller' >" + structEvent["description"] + "</div>" ;
          buff += "  </div>" ;
          buff += "  <div class='divEDate smaller'>" + structEvent["start_date"] + "</div>" ;
          buff += "  <div style='clear:both'></div>";
          buff += "  <div class='divEDescL smaller'>" + structEvent["description"] + "</div>" ;
          buff += "  <div style='clear:both'></div>";
          buff += "</div>" ;
          if(arrBookmark[structEvent["id"]]!=undefined&&arrBookmark[structEvent["id"]]!="")
            buff += drawbookmarkBtn(structEvent["id"],true,"popular");
          else
            buff += drawbookmarkBtn(structEvent["id"],false,"popular");
          buff += "<div class='sepHor' style='clear:both'></div>";
        }
        else if (xmlDoc.childNodes[n].nodeName == "totalpage") {
          mostPopularPages = parseInt(xmlDoc.childNodes[n].childNodes[0].nodeValue,10);
        }else if(xmlDoc.childNodes[n].nodeName == "noresult"){
           buff += "<span class='noresult'>There are no events under this category.</span>";
           break;
        }else if(xmlDoc.childNodes[n].nodeName == "bookmark"){
            var node = xmlDoc.childNodes[n]; 
            for (j=0; j<node.childNodes.length; j++) {
                if (node.childNodes[j].childNodes[0] != undefined) {
                  arrBookmark[(node.childNodes[j].childNodes[0].nodeValue)] = node.childNodes[j].childNodes[0].nodeValue;
                }
            }
        }
      }
      
      if (buff != "") {
        buff += "<div>" + drawPaging("mostPopular") + "</div>";
      }
      
      document.getElementById("divMostPopular").innerHTML = buff;
    }
  }
}


function getSingleEvent(eid) {
  httpSingleEvent = GetXmlHttpObject();
  
  if (httpSingleEvent != null)  {
    if (httpSingleEvent.readyState == 4 || httpSingleEvent.readyState == 0) {
      var url="process.aspx?type=GET_EVENT&Event_id=" + eid;
      httpSingleEvent.onreadystatechange=drawSingleEvent;
      httpSingleEvent.open("GET",url,true);
      httpSingleEvent.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      httpSingleEvent.send(null);
    }
  }
  else  {
    alert ("Your browser does not support AJAX!");
  }
}

function drawSingleEvent() {
  if (httpSingleEvent != null)  {
    if (httpSingleEvent.readyState==4 && httpSingleEvent.status == 200)  {
      var xmlDoc = httpSingleEvent.responseXML.documentElement; 
      var buff = "";
      for (n=0; n<xmlDoc.childNodes.length; n++) {
        if (xmlDoc.childNodes[n].nodeName == "event") {
          var eventNode = xmlDoc.childNodes[n];
          var strEvent = "";
          
          structEvent = nodeFieldsToArray(eventNode);
          
          
          buff += "<div class='divETitle' style='font-size:20px;'>" + structEvent["title"] + "</div>";
          if (structEvent["start_date"] == structEvent["end_date"]) {
            buff += "<div class='divEventDate'>" + structEvent["start_date"] + "</div>";
          }
          else  {
            buff += "<div class='divEventDate'>" + structEvent["start_date"] + " - " + structEvent["end_date"] + "</div>";
          }
          buff += "<div class='divESubtitle'>" + structEvent["venue"] + "</div>";
          buff += "<div>&nbsp;</div>";
          if (structEvent["filename"] != "") {
            //buff += "<div class='divLargePic'><div><img src='" + structEvent["filename"] + "' alt='' /></div></div>";
            buff += "<div>";
            buff += "<table cellpadding='0' cellspacing='0'>";
            buff += "<tr>";
            buff += "<td><div><img src='" + structEvent["filename"] + "' alt='' style='vertical-align:bottom' /></div></td><td class='ImgTopRight'>&nbsp;</td>";
            buff += "</tr>";
            buff += "<tr>";
            buff += "<td class='ImgBottomLeft'>&nbsp;</td><td class='ImgBottomRight'>&nbsp;</td>";
            buff += "</tr>";
            buff += "</table>";
            buff += "</div>";
          }
          if (structEvent["organizer"] != "") {
            buff += "<div class='divOrganizer' style='font-size:10px;'>Organised by : " + structEvent["organizer"] + "</div>";
          }
          
          buff += "<div class='divEDesc'>" + structEvent["description"] + "</div>";
            
        }
      }
      
      document.getElementById("divEventDetail").innerHTML = buff;
    }
  }
}

function drawPaging(eventType){
  //eventType = featuredEvents, recentlyAdded, mostPopular
  var curPage = eval(eventType + "CurPage");
  var totPage = eval(eventType + "Pages");
  
  var buff = "";
  
  var page_range = 3;
  var curWin = Math.ceil((curPage) / page_range); //this is the current "Window"
  var totalWin = Math.ceil(totPage / page_range);
  var pStart = ((curWin -1) * page_range) + 1;
  
  goPage
  
  if (curWin < totalWin) {
    buff += "<a href='javascript:goPage(\""+ eventType + "\"," + ((curWin * page_range) + 1) +")' class='gonext'></a>"; 
  }
  
  buff += "<div  class='paging'>";
  for (p=pStart; p<(pStart+page_range)&&p<=totPage; p++) {
    if (p == curPage) {
      buff += "&nbsp;<b>" + p + "</b>&nbsp;";
    }
    else {
      buff += "&nbsp;<a href='javascript:goPage(\""+ eventType + "\"," + p +")'>" + p + "</a>&nbsp;"; 
    }
  }
  buff += "</div>";
  
  if (curPage > page_range) {
    buff += "<a href='javascript:goPage(\""+ eventType + "\"," + (((curWin-2) * page_range) + 1) +")' class='goprev'></a>"; 
  }
  
  
  /*
  if (curPage == 1 && totPage > 1)  {
    buff += "<a href='javascript:goNextPage(\"" + eventType + "\")' class='gonext'></a>";
  }
  else if (curPage < totPage) {
    buff += "<a href='javascript:goNextPage(\"" + eventType + "\")' class='gonext'></a>";
    buff += "<a href='javascript:goPrevPage(\"" + eventType + "\")' class='goprev'></a>";
  }
  else if (curPage == totPage && totPage > 1) {
    buff += "<a href='javascript:goPrevPage(\"" + eventType + "\")' class='goprev'></a>";
  }
  
  if(buff!=""){
    buff +="<div style='clear:both'></div>";
  }else{
    buff += "<div>&nbsp;</div>";
  }
  */
   
  return buff;
}

function drawSubmitEvent(){
  var buff = "<a id='eventSubmit1' href='event_submit.aspx?height=400&width=400' title='Submit an Event' class='thickbox'></a>";
  return buff;
}

function goPage(eventType, page) {
  switch (eventType) {
    case "featuredEvents":
      featuredEventsCurPage = page;
      getFeaturedEvents();
    break;
    
    case "recentlyAdded":
      recentlyAddedCurPage = page;
      getRecentlyAdded();
    break;
    
    case "mostPopular":
      mostPopularCurPage = page;
      getMostPopular();
    break;
  }
}

function goNextPage(eventType) {
  switch (eventType) {
    case "featuredEvents":
      featuredEventsCurPage++;
      getFeaturedEvents();
    break;
    
    case "recentlyAdded":
      recentlyAddedCurPage++;
      getRecentlyAdded();
    break;
    
    case "mostPopular":
      mostPopularCurPage++;
      getMostPopular();
    break;
  }
}

function goPrevPage(eventType) {
  switch (eventType) {
    case "featuredEvents":
      featuredEventsCurPage--;
      getFeaturedEvents();
    break;
    
    case "recentlyAdded":
      recentlyAddedCurPage--;
      getRecentlyAdded();
    break;
    
    case "mostPopular":
      mostPopularCurPage--;
      getMostPopular();
    break;
  }
}

function drawbookmarkBtn(id,isAdded,prefix){
    
    if(isAdded){
        //return "<div style='bookmark'><a id='"+prefix+"bookmark_"+id+"' href='javascript:addBookmark("+id+")' class='bookmarkAddedlink'  title='Add Bookmark'></a></div>";
        return "<div style='bookmark'><a id='"+prefix+"bookmark_"+id+"' href='javascript:;' class='bookmarkAddedlink'  title='Bookmarked'></a></div>";
    }else{
        return "<div style='bookmark'><a id='"+prefix+"bookmark_"+id+"' href='javascript:addBookmark("+id+")' class='bookmarklink'  title='Add Bookmark'></a></div>";
    }
}


function addEventBookmark(new_id) {
    
  if (httpBookMark == null) {
    httpBookMark = GetXmlHttpObject();
  }
  
  if (httpBookMark != null)  {
    if (httpBookMark.readyState == 4 || httpBookMark.readyState == 0) {
      var url="process.aspx?type=ADD_BOOKMARK_EVENT&id=" + new_id;
      httpBookMark.onreadystatechange=bookmarkEventstatus;
      httpBookMark.open("GET",url,true);
      httpBookMark.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      httpBookMark.send(null);

    }
  }
  else  {
    alert ("Your browser does not support AJAX!");
  }
}

function bookmarkEventstatus() {

  if (httpBookMark != null)  {

    if (httpBookMark.readyState==4 && httpBookMark.status == 200)  {
        
      var xmlDoc = httpBookMark.responseXML.documentElement; 
      var buff = "";
      for (n=0; n<xmlDoc.childNodes.length; n++) {
        if (xmlDoc.childNodes[n].nodeName == "error") {
          var newNode = xmlDoc.childNodes[n];
          structNew = nodeFieldsToArray(newNode);
          if(structNew["responseUrl"]!=""){
            location.href = structNew["responseUrl"];
            break;
          }
          break;
          
        }else if(xmlDoc.childNodes[n].nodeName == "Update") {
          
          var newNode = xmlDoc.childNodes[n];
          structNew = nodeFieldsToArray(newNode);
          
          
          if(structNew["description"]=="BOOKMARKADDED"&&structNew["bookmark_id"]!=""){
            
            if(document.getElementById("bookmark_"+structNew["bookmark_id"])!=undefined)
                document.getElementById("bookmark_"+structNew["bookmark_id"]).className = "bookmarkAddedlink";
                
          }
          break;
        }
      }
      httpBookMark = null;
    }
    
  }
}

function getEventsByDate(date) {
    
  httpDateEvent = GetXmlHttpObject();
  if (httpDateEvent != null)  {
    if (httpDateEvent.readyState == 4 || httpDateEvent.readyState == 0) {
      var url="process.aspx?type=GET_EVENT_BYDATE&date=" + date;
      httpDateEvent.onreadystatechange=drawEventsByDate;
      httpDateEvent.open("GET",url,true);
      httpDateEvent.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      httpDateEvent.send(null);
    }
  }
  else  {
    alert ("Your browser does not support AJAX!");
  }
}

function drawEventsByDate() {
  if (httpDateEvent != null)  {
    if (httpDateEvent.readyState==4 && httpDateEvent.status == 200)  {
      var xmlDoc = httpDateEvent.responseXML.documentElement; 
      var buff = "";
      var arrBookmark = new Array();
      var ddmmyyyy="";
      for (n=0; n<xmlDoc.childNodes.length; n++) {
        if (xmlDoc.childNodes[n].nodeName == "event") {
          var eventNode = xmlDoc.childNodes[n];
          var strEvent = "";
          
          structEvent = nodeFieldsToArray(eventNode);
          
          if(structEvent["icon"]!=""){
            buff += "<div class='divEIcon'><a class='listLink' href='#event_" + structEvent["id"] + "' onClick='javascript:getSingleEvent(" + structEvent["id"] + ")'><img src='" + structEvent["icon"] + "' alt='' style='vertical-align:bottom;border:0px' /></a></div>" ;
          }else{
            buff += "<div class='divEIcon' style='background-image:none'></div>" ;
          }
          buff += "<div  class='divEventListWrapper' >" ;
          buff += "  <div class='divEDetail'>" ;
          buff += "    <div><a class='listLink'style='text-decoration:none' href='#event_" + structEvent["id"] + "' onClick='javascript:getSingleEvent(" + structEvent["id"] + ")'>" + structEvent["title"] + "</a></div>" ;
          //buff += "    <div class='smaller' >" + structEvent["description"] + "</div>" ;
          buff += "  </div>" ;
          buff += "  <div class='divEDate smaller'>" + structEvent["start_date"] + "</div>" ;
          buff += "  <div style='clear:both'></div>";
          buff += "  <div class='divEDescL smaller'>" + structEvent["description"] + "</div>" ;
          buff += "  <div style='clear:both'></div>";
          buff += "</div>" ;
          if(arrBookmark[structEvent["id"]]!=undefined&&arrBookmark[structEvent["id"]]!="")
            buff += drawbookmarkBtn(structEvent["id"],true,"edate");
          else
            buff += drawbookmarkBtn(structEvent["id"],false,"edate");
          buff += "<div class='sepHor' style='clear:both'></div>";
        }else if(xmlDoc.childNodes[n].nodeName == "bookmark"){
            var node = xmlDoc.childNodes[n]; 
            for (j=0; j<node.childNodes.length; j++) {
                if (node.childNodes[j].childNodes[0] != undefined) {
                  arrBookmark[(node.childNodes[j].childNodes[0].nodeValue)] = node.childNodes[j].childNodes[0].nodeValue;
                }
            }
        }
      
      if(buff!=""){
        document.getElementById("divEventwDate").innerHTML = "<div style='padding-bottom:5px;'>Event(s) for "+ddmmyyyy+"</div>"+buff;
        document.getElementById("divEventwDate").style.display = "";
        }
      }
    }
  }
}
