// these functions belong to the homepage

marnixkerk.homepage = new Object();

marnixkerk.homepage.Worshiptimes = [];
marnixkerk.homepage.headlines = [];
marnixkerk.homepage.WorshipSlideAmountOfPx = 52;
marnixkerk.homepage.disableRetrievingWorshipItems = false;

marnixkerk.homepage.headlineShower = false;

marnixkerk.homepage.popup = false;

// set buttons
marnixkerk.homepage.ArrowUp = false;
marnixkerk.homepage.ArrowDown = false;
marnixkerk.homepage.pointerDown = false; // used by the popup

/**
 * Load homepage
 */
function loadHomePage() {

 // set vars
 marnixkerk.homepage.WorshiptableBody = false;
 marnixkerk.homepage.WorshipitemsIndex = 0; 		// the current position for the table of worshipitems.
 marnixkerk.homepage.WorshipitemsLimit = 1000;		// the limit to avoid mutiple requests (due to scrolling) for more worshipitems (which are not available)
 marnixkerk.homepage.WorshipitemsSlider = false;
 marnixkerk.homepage.WorshipitemsSliderIndex = 0; 	// the current position of the slider
 
 marnixkerk.homepage.NavDiv = false; 			// de div with containing the two blue buttons
 marnixkerk.homepage.headlineShower = new HeadlineShower('marnixkerk.homepage.headlineShower');
 
 // load pointerimage
 marnixkerk.homepage.pointerDown = new Image(20,15);
 marnixkerk.homepage.pointerDown.src = marnixkerk.URL + "/Images/getPicture.php?id=57";
 
 // set buttons
 marnixkerk.homepage.ArrowUp = new Image(25,25);
 marnixkerk.homepage.ArrowUp.src = marnixkerk.URL + "/Images/getPicture.php?id=40";
 marnixkerk.homepage.ArrowUp.id = 'arrowUp';
 marnixkerk.homepage.ArrowUp.className = 'homepage_worshiptimes_arrowUp';
 marnixkerk.homepage.ArrowUp.onclick = animateWorshipItems;
 marnixkerk.homepage.ArrowUp.onmousedown = marnixkerk.homepage.pushButton;
 marnixkerk.homepage.ArrowUp.onmouseup = marnixkerk.homepage.liftButton;

 marnixkerk.homepage.ArrowDown = new Image(25,25);
 marnixkerk.homepage.ArrowDown.src = marnixkerk.URL + "/Images/getPicture.php?id=39";
 marnixkerk.homepage.ArrowDown.id = 'arrowDown';
 marnixkerk.homepage.ArrowDown.className = 'homepage_worshiptimes_arrowDown';
 marnixkerk.homepage.ArrowDown.onclick = animateWorshipItems;
 marnixkerk.homepage.ArrowDown.onmousedown = marnixkerk.homepage.pushButton;
 marnixkerk.homepage.ArrowDown.onmouseup = marnixkerk.homepage.liftButton;

 // container
 var container = document.createElement('div');
 container.className = 'homepage_container';

 // set layout
 //var a = [makeLeftContentHomepage(),marnixkerk.homepage.headlineShower.getView()];
 //container.appendChild(alignContentByTable(false,a));
 
 // set layout
 var table = document.createElement('table');
 var tbod = document.createElement('tbody');
 table.appendChild(tbod);
 var tr = document.createElement('tr');
 tbod.appendChild(tr);
 var tdleft = document.createElement('td');
 tdleft.className = 'homepage_agenda_leftcontent';
 tr.appendChild(tdleft);
 var tdright = document.createElement('td');
 tr.appendChild(tdright);
 
 container.appendChild(table);
 
 // add content
 tdleft.appendChild(makeLeftContentHomepage());
 tdright.appendChild(marnixkerk.homepage.headlineShower.getView());
 
 loadContent(container);
}


/**
 * load an article
 */
marnixkerk.homepage.loadArticle = function() {
 if (this.articleID) {
   var request = new Request('getArticles');
   request.addParam('articleIDs',this.articleID);
   request.setCallBack(marnixkerk.homepage.loadArticleCallback);
   marnixkerk.POSTMAN.postData(request);
  }
}

/**
 * load an article callback
 * @param articleID the id of the article
 */
marnixkerk.homepage.loadArticleCallback = function(response) {
 var article = response.getBodyItems()['article0'];
 
 var backBar = document.createElement('div');
 var backButton = new an_Button(false,'Terug',80);
 backButton.setEnabled(true);
 backButton.setOnclick(activateHomepage);
 
 var hr = document.createElement('hr');
 
 backBar.appendChild(backButton.getView());
 backBar.appendChild(hr);
 

 var articleContainer = document.createElement('div');
 articleContainer.className = 'homepage_articleContainer';
 
 var articleTitle = document.createElement('div');
 articleTitle.className = 'homepage_articleTitle';
 articleTitle.innerHTML = (article.title == 'emptySet') ? '' : article.title;
 
 var br = document.createElement('br');
 
 var articleContent = document.createElement('div');
 articleContent.innerHTML = article.content;
 
 articleContainer.appendChild(backBar);
 articleContainer.appendChild(articleTitle);
 articleContainer.appendChild(br);
 articleContainer.appendChild(articleContent);
 
 var table = marnixkerk.homepage.alignContentToMiddle(articleContainer);
 
 loadContent(table);
 
 // enable homepage button
 restoreButtons();
}

/**
 * align content to middle
 * @param content some domenode
 * @return table - domnode
 */
marnixkerk.homepage.alignContentToMiddle = function(content) {
 
 // align content by table
 var table = document.createElement('table');
 var tbod = document.createElement('tbody');
 table.appendChild(tbod);
 table.className = 'homepage_article_maintable';
 
 var tr = document.createElement('tr');
 tbod.appendChild(tr);
 
 // set left cell
 var ltd = document.createElement('td');
 ltd.className = 'homepage_article_sidecells';
 tr.appendChild(ltd);
 
 // set content cell
 var ctd = document.createElement('td');
 ctd.className = 'homepage_article_contentcell';
 ctd.appendChild(content);
 tr.appendChild(ctd);
 
 // set right cell
 var rtd = document.createElement('td');
 rtd.className = 'contact_mail_sidecells';
 tr.appendChild(rtd);

 return table;
}

/**
 * set retrieved worhiptimes
 */
function setWorshipTimes(response) {

 // no items available at all
 if (response.getBodyItems().emptySet == 'true' && marnixkerk.homepage.Worshiptimes.length == 0) {
  var tr = document.createElement('tr');
  var td = document.createElement('td');
  td.className = 'homepage_worshiptimes_noItems';
  var txt = document.createTextNode('   Geen diensten gevonden.');
  td.appendChild(txt);
  tr.appendChild(td);
  marnixkerk.homepage.WorshiptableBody.appendChild(tr);
  
 // no futher items available
 } else if (response.getBodyItems().emptySet == 'true' && marnixkerk.homepage.Worshiptimes.length > 0) {
  
  // do noting
  
 // items successfully retrieved
 } else {
 
  // set all worshipitems in collection
  var worship = response.getBodyItemsNum();

  // set counter
  var max = (marnixkerk.homepage.Worshiptimes.length > 0) ? 1 : 0;
  
  // set requests limit
  if (max == worship.length) {
   marnixkerk.homepage.WorshipitemsLimit = marnixkerk.homepage.Worshiptimes.length;
  }
  
  // add worship items
  for (var i=max;i<worship.length;i++) {
   var worshiptime = new Worshiptime(worship[i].date,worship[i].improvedDate,worship[i].dayIndicator,worship[i].description,worship[i].collection1,worship[i].collection2,worship[i].collection3,worship[i].extra,worship[i].imageID,worship[i].largeImageID,worship[i].specialDate);

   // add item to collection
   an_append(worshiptime,marnixkerk.homepage.Worshiptimes);
   
   // add item to the scene
   addWorshiptime(marnixkerk.homepage.Worshiptimes.length -1);
  }
  
  // set navbuttons
  setButtons();
 }
}

/**
 * Add worshipitem to the scene
 */
function addWorshipItems() {
 for (i=0;i<marnixkerk.homepage.Worshiptimes.length;i++) {
  addWorshiptime(i);
 }
}

/**
 * Make left content
 * @return domnode
 */
function makeLeftContentHomepage() {
 
 // make agendaspace, with announcements for church-happenings
 var agendaDiv = document.createElement('div');
 agendaDiv.id = 'agendaDiv';
 agendaDiv.className = 'homepage_worshiptimes_agenda'; 
 
 // set picture of marnixkerk
 var marnixkerkImage = new Image(462,179);
 marnixkerkImage.src = marnixkerk.URL + "/Images/getPicture.php?id=1";
 marnixkerkImage.className = 'homepage_worshiptimes_mainPicture';
 agendaDiv.appendChild(marnixkerkImage);
 
 // set worshiptimes-container & space
 var worshiptimesContainer = document.createElement('div');
 worshiptimesContainer.className = 'homepage_worshiptimes_worshiptimesContainer';
 agendaDiv.appendChild(worshiptimesContainer);
 
 var worshiptimesSpace = document.createElement('div');
 worshiptimesSpace.id = 'worshiptimesSpace';
 
 // adjust layout by table
 marnixkerk.homepage.WorshipitemsSlider = document.createElement('div');
 marnixkerk.homepage.WorshipitemsSlider.className = 'homepage_worshiptimes_slider';
 var table = document.createElement('table');
 
 an_addScrollEventToNonscrolledElement(table,marnixkerk.homepage.srollWorshipItems);

 
 /** end of scrolling dinges **/
 marnixkerk.homepage.WorshiptableBody = document.createElement('tbody');
 table.appendChild(marnixkerk.homepage.WorshiptableBody);
 table.className = 'homepage_worshiptimes_sliderTable';
 
 marnixkerk.homepage.WorshipitemsSlider.appendChild(table);
 worshiptimesSpace.appendChild(marnixkerk.homepage.WorshipitemsSlider);
 worshiptimesContainer.appendChild(worshiptimesSpace);
 
 // set navigation
 marnixkerk.homepage.NavDiv = document.createElement('div');
 marnixkerk.homepage.NavDiv.id = 'navDiv';
 marnixkerk.homepage.NavDiv.className = 'homepage_worshiptimes_navigationDiv'; 
 agendaDiv.appendChild(marnixkerk.homepage.NavDiv);

 
 // round the edges
 
 // left corner above
 var leftEdgeAboveImage = new Image(50,50);
 leftEdgeAboveImage.src = marnixkerk.URL + "/Images/getPicture.php?id=7";
 leftEdgeAboveImage.className = 'homepage_worshiptimes_leftAboveEdge';
 agendaDiv.appendChild(leftEdgeAboveImage);
 
 // left corner below
 var leftEdgeBelowImage = new Image(50,50);
 leftEdgeBelowImage.src = marnixkerk.URL + "/Images/getPicture.php?id=8";
 leftEdgeBelowImage.className = 'homepage_worshiptimes_leftBelowEdge';
 agendaDiv.appendChild(leftEdgeBelowImage);
 
 // right corner below
 var rightEdgeBelowImage = new Image(50,50);
 rightEdgeBelowImage.src = marnixkerk.URL + "/Images/getPicture.php?id=9";
 rightEdgeBelowImage.className = 'homepage_worshiptimes_rightBelowEdge';
 agendaDiv.appendChild(rightEdgeBelowImage);
 
 // right corner above
 var rightEdgeAboveImage = new Image(50,50);
 rightEdgeAboveImage.src = marnixkerk.URL + "/Images/getPicture.php?id=10";
 rightEdgeAboveImage.className = 'homepage_worshiptimes_rightAboveEdge';
 agendaDiv.appendChild(rightEdgeAboveImage);
 
 // retrieve worship-times
 if (marnixkerk.homepage.Worshiptimes.length == 0) {
  var request = new Request("getWorshiptimes");
  request.addParam("number",4);
  request.setCallBack(setWorshipTimes);
  marnixkerk.POSTMAN.postData(request);
 } else {
 
  // items already retrieved
  addWorshipItems();
  setButtons();
 }
 
 return agendaDiv;
}

/**
 * helperfunction - make worshiptime-div
 * @param index of worshiptime in the array - marnixkerk.homepage.Worshiptimes
 * @return dom node (div)
 */
function addWorshiptime(index) {

 // make new row
 var tr = document.createElement('tr');
 tr.id = 'worshipitem_' + index;
 tr.className = 'homepage_worshiptimes_itemsList';
 
 // set dynamics
 tr.onclick = marnixkerk.homepage.showDetails;
 
 // set imagecell
 var tdImage = document.createElement('td');
 tdImage.className = 'homepage_worshiptimes_item_image';
 
 // set image(s)
 var size = 40;
 if (marnixkerk.homepage.Worshiptimes[index].imageID) {
  var wIDs = marnixkerk.homepage.Worshiptimes[index].imageID.split(';');
  var t = wIDs.length;
  for (var i=0;i<t;i++) {
   var image = new Image(size/t,size/t);
   image.src = marnixkerk.URL + "/Images/getPicture.php?id=" + wIDs[i];
   tdImage.appendChild(image);
  }
 }
 tr.appendChild(tdImage);
 
 // set worshiptime
 var tdWorship = document.createElement('td');
 
 // first line
 var firstLine = document.createElement('div');
 firstLine.className = 'homepage_worshiptimes_item_firstline';
 
 // add content to first line
 var dayIndicator = document.createTextNode(marnixkerk.homepage.Worshiptimes[index].dayIndicator);
 var smallPhrase = document.createElement('span');
 smallPhrase.className = 'homepage_worshiptimes_item_smallphrase';
 smallPhrase.appendChild(dayIndicator);
 firstLine.appendChild(smallPhrase);
 var txt = document.createTextNode(" " + marnixkerk.homepage.Worshiptimes[index].improvedDate);
 var redPhrase = document.createElement('span');
 redPhrase.className = 'homepage_worshiptimes_item_redphrase';
 redPhrase.appendChild(txt);
 firstLine.appendChild(redPhrase);
 tdWorship.appendChild(firstLine);
 
 // second line
 var secondLine = document.createElement('div');
 secondLine.className = 'homepage_worshiptimes_item_secondline';
 
 // add content to second line
 var tmp = marnixkerk.homepage.Worshiptimes[index].description;
 var txt = document.createTextNode(an_stringLength(tmp,'px',305,1));
 
 secondLine.appendChild(txt);
 tdWorship.appendChild(secondLine);
 
 tr.appendChild(tdWorship);
 marnixkerk.homepage.WorshiptableBody.appendChild(tr);
}

/**
 * Animate worshipitems
 * [@param direction up or down]
 */
function animateWorshipItems(direction) {
 if (this.id == 'arrowUp' || direction == 'up') {
  
  // do not load previous (history) items
  if (marnixkerk.homepage.WorshipitemsIndex > 0) {
  
   // do not retrieve past-worshipitems
   slideWorshipItemsDown();
  }
  
 } else /*if (this.id == 'arrowDown')*/ {

  // do not load or slide if a request is on its way || limit is reached
  if(! marnixkerk.homepage.disableRetrievingWorshipItems && marnixkerk.homepage.WorshipitemsIndex + 2 < marnixkerk.homepage.WorshipitemsLimit) {

   // load more items first
   if (marnixkerk.homepage.Worshiptimes.length < marnixkerk.homepage.WorshipitemsIndex + 4) {
   
    // block futher request for the same worshipitems
    marnixkerk.homepage.disableRetrievingWorshipItems = true;
   
    // set request
    var request = new Request('getWorshiptimes');
    var date = marnixkerk.homepage.Worshiptimes[marnixkerk.homepage.Worshiptimes.length-1].date;
    request.addParam('startDate',date);
    request.addParam('number',5);
    request.setCallBack(slideWorshipItemsUp);
    marnixkerk.POSTMAN.postData(request);
   } else {
    slideWorshipItemsUp(false);
   }
  }
 }
}

/**
 * Side worshipitems up
 */
function slideWorshipItemsUp(response) {
 
 // remove popup first
 marnixkerk.homepage.removePopup();
 
 if (response) {
  setWorshipTimes(response);
 }
 
 // slide only when items are available
 if (marnixkerk.homepage.WorshipitemsIndex + 2 < marnixkerk.homepage.Worshiptimes.length) {
  marnixkerk.homepage.WorshipitemsSliderIndex -= marnixkerk.homepage.WorshipSlideAmountOfPx;
  marnixkerk.homepage.WorshipitemsIndex++;
  marnixkerk.ANIMATION.line(marnixkerk.homepage.WorshipitemsSlider,0,marnixkerk.homepage.WorshipitemsSliderIndex,500,1,0,foo);
 }
  setButtons();
  
 // enable sliding
 marnixkerk.homepage.disableRetrievingWorshipItems = false;
}

/**
 * Side worshipitems down
 */
function slideWorshipItemsDown() {

 // remove popup first
 marnixkerk.homepage.removePopup();

 // slide only when items are available
 if (marnixkerk.homepage.WorshipitemsIndex < marnixkerk.homepage.Worshiptimes.length) {
  marnixkerk.homepage.WorshipitemsSliderIndex += marnixkerk.homepage.WorshipSlideAmountOfPx;
  marnixkerk.homepage.WorshipitemsIndex--;
  marnixkerk.ANIMATION.line(marnixkerk.homepage.WorshipitemsSlider,0,marnixkerk.homepage.WorshipitemsSliderIndex,500,1,0,foo);
 }
  setButtons();
}

/**
 * Set up button
 */
function setButtons() {

 // set up button
 if (marnixkerk.homepage.WorshipitemsIndex > 0) { // we don't show items of the past - yet
  marnixkerk.homepage.NavDiv.appendChild(marnixkerk.homepage.ArrowUp);
 } else if (xGetElementById('arrowUp')) {
  marnixkerk.homepage.NavDiv.removeChild(marnixkerk.homepage.ArrowUp);
 }

 // set Down button
 if (marnixkerk.homepage.WorshipitemsIndex + 2 < marnixkerk.homepage.Worshiptimes.length) {
  marnixkerk.homepage.NavDiv.appendChild(marnixkerk.homepage.ArrowDown);
 } else if (xGetElementById('arrowDown')) {
  marnixkerk.homepage.NavDiv.removeChild(marnixkerk.homepage.ArrowDown);
 }
}






// event functions ----------------------------------------------------------------------

/**
 * This function lets the button looks like it is pushed down
 */
marnixkerk.homepage.pushButton = function(event) {
 var xe = new xEvent(event);
 if (xe.button == 0) {
  var s = this.style;
  s.marginTop = 1 + 'px';
  s.marginLeft = 1 + 'px';
 }
}

/**
 * This function lets the button looks like it is lifted up
 */
marnixkerk.homepage.liftButton = function(event) {
 var xe = new xEvent(event);
 if (xe.button == 0) {
  var s = this.style;
  s.marginTop = 0 + 'px';
  s.marginLeft = 0 + 'px';
 }
}

/**
 * This function handles an scroll-event @ worshipitems table
 */
marnixkerk.homepage.srollWorshipItems = function(evt) {
 var e = evt || window.event;

 var delta = 0;
 if (e.wheelDelta) {
  delta = e.wheelDelta;
 } else if (typeof(e.detail) != 'undefined') {
  delta = e.detail * -1;
 }
 var direction = (delta > 0) ? 'up' : 'down';
 animateWorshipItems(direction);
}

/**
 * Show details of worshipitem just clicked
 */
marnixkerk.homepage.showDetails = function(event) {
 marnixkerk.homepage.removePopup();

 var xe = new xEvent(event);
 var popUp = marnixkerk.homepage.makeDetailContent(this.id.substring(12,this.id.length));
 popUp.className = 'homepage_worshiptimes_popUp';

 // set coördinates
 xTop(popUp,xe.pageY - 200);
 xLeft(popUp,xe.pageX - 60);

 marnixkerk.homepage.popup = popUp;
 xOpacity(popUp,0);
 document.body.appendChild(popUp);
 
 // (re)set position
 xTop(popUp,xe.pageY - xHeight(popUp));
 marnixkerk.ANIMATION.opacity(popUp,1,450);
}

/**
 * Make content for worshipitems-details popup
 * @param worshiptItemID the id of the worshipitem
 * @return domnode
 */
marnixkerk.homepage.makeDetailContent = function(worshiptItemID) {

 // make header
 var header = document.createElement('div');
 header.className = 'homepage_worshiptimes_popUpHeader';
 var closeButton = document.createElement('span');
 closeButton.appendChild(document.createTextNode('X'));
 closeButton.className = 'homepage_worshiptimes_popUpButton';
 setHyperlink(closeButton,marnixkerk.homepage.removePopup,false);
 header.appendChild(closeButton);
 
 // set body
 var body = document.createElement('div');
 body.className = 'homepage_worshiptimes_popUpBody';
 var wTime = marnixkerk.homepage.Worshiptimes[worshiptItemID];
 
 // set special date
 if (wTime.specialDate) {
  var p = document.createElement('div');
  p.className = 'homepage_worshiptimes_popUpBodySpecialdate';
  var specialDates = wTime.specialDate.split(';');
  for (var i=0;i<specialDates.length;i++) {
   p.appendChild(document.createTextNode(specialDates[i]));
  }
  body.appendChild(p);
 }
 
 // set miscellaneous values
 var table = document.createElement('table');
 var tbod = document.createElement('tbody');
 
 var f_tn = function(txt) {return document.createTextNode(txt);} // make alias
 var tr = document.createElement('tr');
 var td_l = document.createElement('td');
 td_l.className = 'homepage_worshiptimes_popUpBodyLeftValues';
 td_l.appendChild(f_tn('Omschrijving'));
 var td_r = document.createElement('td');
 td_r.appendChild(f_tn(wTime.description));
 tr.appendChild(td_l);tr.appendChild(td_r);
 tbod.appendChild(tr);
 
 var coll = [wTime.collection1,wTime.collection2,wTime.collection3];
 if (coll[0] || coll[1] || coll[2]) {
  var tr = document.createElement('tr');
  var td_l = document.createElement('td');
  td_l.className = 'homepage_worshiptimes_popUpBodyLeftValues';
  td_l.appendChild(f_tn('Collectes'));
  var div = document.createElement('div');
  for (var i=0;i<coll.length;i++) {
   if (coll[i]) {
    div.appendChild(f_tn((i + 1) + '. ' + coll[i]));
    div.appendChild(document.createElement('br'));
   }
  }
  var td_r = document.createElement('td');
  td_r.appendChild(div);
  tr.appendChild(td_l);tr.appendChild(td_r);
  tbod.appendChild(tr);
 }
 
 if (wTime.extra) {
  var tr = document.createElement('tr');
  var td_l = document.createElement('td');
  td_l.className = 'homepage_worshiptimes_popUpBodyLeftValues';
  td_l.appendChild(f_tn('Bijzonderheden'));
  var td_r = document.createElement('td');
  td_r.appendChild(f_tn(wTime.extra));
  tr.appendChild(td_l);tr.appendChild(td_r);
  tbod.appendChild(tr);
 }
 
 table.appendChild(tbod);
 body.appendChild(table);
 
 // set footer
 var footer = document.createElement('div');
 footer.className = 'homepage_worshiptimes_popUpFooter';
 footer.appendChild(marnixkerk.homepage.pointerDown);
 
 // set wrapper
 var wrapper = document.createElement('div');
 wrapper.appendChild(header);wrapper.appendChild(body);wrapper.appendChild(footer);
 
 return wrapper;
}

/**
 * Remove worshipitems-details popup
 */
marnixkerk.homepage.removePopup = function() {
 if (marnixkerk.homepage.popup) {
  document.body.removeChild(marnixkerk.homepage.popup);
  marnixkerk.homepage.popup = false;
 }
}




// Objects ------------------------------------------------------------------------------

/**
 * The object Worshiptimes
 */
function Worshiptime(date,improvedDate,dayIndicator,description,coll1,coll2,coll3,extra,imageID,largeImageID,specialDate) {
 this.date = date;
 this.improvedDate = improvedDate;
 this.dayIndicator = dayIndicator;
 this.description = description;
 this.collection1 = (coll1 != 'emptySet') ? coll1 : false;
 this.collection2 = (coll2 != 'emptySet') ? coll2 : false;
 this.collection3 = (coll3 != 'emptySet') ? coll3 : false;
 this.extra = (extra != 'emptySet') ? extra : false;;
 this.imageID = (imageID != 'emptySet') ? imageID : false;
 this.largeImageID = (largeImageID != 'emptySet') ? largeImageID : false;
 this.specialDate = (specialDate != 'emptySet') ? specialDate : false;
}

/**
 * The headline shower object
 */
var HeadlineShower = function(obj_ref) {
 this.obj_ref = obj_ref;
 this.view = document.createElement('div');
 
 this.init();
};
HeadlineShower.prototype = {
 /**
  * initiate this
  */
 init : function() {
  this.view.className = 'homepage_headlineShower';
    
  // add advertisement for or beloved parson
  /*
  var adv = new Image();
  adv.src = marnixkerk.URL + "/Images/getPicture.php?id=76";
  adv.articleID = 125; // hack
  setHyperlink(adv,marnixkerk.homepage.loadArticle,false);
  this.view.appendChild(adv);
  */
  // set offers div
  var offerDiv = document.createElement('div');
  offerDiv.className = 'offerDiv';
  this.view.appendChild(offerDiv);
  
  var images = [134, 135, 136, 137, 138];
  var articleIDs = [149, 125, 148, 147, 146];
  
  for (var i = 0; i < images.length; i++) {
   var img = new Image();
   img.className = 'offerImage';
   img.src = marnixkerk.URL + "/Images/getPicture.php?id=" + images[i];
   img.articleID = articleIDs[i]; 
   setHyperlink(img,marnixkerk.homepage.loadArticle,false);
   offerDiv.appendChild(img);
  }
  
  
  // add headlines or retrieve them first
  if (marnixkerk.homepage.headlines.length == 0) {
   this.getHeadlines();
  } else {
   this.addAllHeadlines();
  }
 },
 /**
  * retrieve the headlines
  */
 getHeadlines : function() {
  var request = new Request('getHeadlines',this.obj_ref);
  request.setCallBack(this.getHeadlinesCallback);
  request.addParam('headlineIDs','*');
  marnixkerk.POSTMAN.postData(request);
 },
 /**
  * callback function
  */
 getHeadlinesCallback : function(response) {
  var obj = eval(response.getHeaderItems()['obj_ref']);
  
  if (response.getBodyItems()['emptySet'] == 'true') {
   marnixkerk.homepage.headlines = [];
  } else {
   var headlines = response.getBodyItemsNum();
   marnixkerk.homepage.headlines = headlines;
   var mh = marnixkerk.homepage.headlines
  
   // set the articles to false
   for (var i=0;i<mh.length;i++) {
    mh[i].articles = false;
   }
  }
  obj.loadHeadlines();
 },
 /**
  * retrieve articles for each headline
  */
 loadHeadlines : function() {
  var mh = marnixkerk.homepage.headlines;
  for (var i=0;i<mh.length;i++) {
   this.getArticleByHeadline(mh[i].id);
  }
 },
 /**
  * retrieve the articles of given headlineID
  * @param headlineID
  */
 getArticleByHeadline : function(headlineID) {
  var request = new Request('getArticlesByHeadline',this.obj_ref);
  request.setCallBack(this.getArticleByHeadlineCallback);
  request.addParam('headlineID',headlineID);
  marnixkerk.POSTMAN.postData(request);
 },
 /**
  * retrieve the articles of given headlineID - callback 
  * Add all the articles to the model (marnixkerk.homepage.headlines.articles)
  */
 getArticleByHeadlineCallback : function(response) {
  var obj = eval(response.getHeaderItems()['obj_ref']);
  if (response.getBodyItems().emptySet == 'true') {
   // do noting
  } else {
   var mh = marnixkerk.homepage.headlines;
   var headlineID = response.getBodyItems()['headlineID'];
   
   // extract the articles from the response
   var articles = [];
   var bodyItems = response.getBodyItemsNum();
   for (var i=0;i<bodyItems.length;i++) {
    if (typeof(bodyItems[i].id) != 'undefined') {
     articles[articles.length] = bodyItems[i];
    }
   }
   
   // add the articles to the proper (headline) space
   var hID = false;
   for (var i=0;i<mh.length;i++) {
    if (mh[i].id == headlineID) {
     mh[i].articles = articles;
     hID = i;
    }
   }
   obj.addHeadlines(hID);
  }
 },
 /**
  * add all headines to the homepage
  */
 addAllHeadlines : function() {
  var mh = marnixkerk.homepage.headlines;
  for (var i=0;i<mh.length;i++) {
   if (typeof(mh[i].articles) != 'boolean') {
    this.addHeadlines(i);
   }
  }
 },
 /**
  * add headines to the homepage
  * @param index of the headline to be added
  */
 addHeadlines : function(index) {
  var ma = marnixkerk.homepage.headlines[index].articles;
  if (ma && index > -1) {
  
   // add headline
   var headlineDiv = document.createElement('div');
   headlineDiv.className = 'homepage_headline';
   headlineDiv.appendChild(document.createTextNode(marnixkerk.homepage.headlines[index].name));
   
   this.view.appendChild(headlineDiv);
   for (var i=0;i<ma.length;i++) {
    var tDiv = document.createElement('div');
    tDiv.appendChild(document.createTextNode(an_stringLength(ma[i].title,'px',290,1)));
    tDiv.className = 'homepage_headline_article';
    tDiv.articleID = ma[i].id;
    setHyperlink(tDiv,marnixkerk.homepage.loadArticle,false);
    
    // set indicator -arrow
    var tSpan = document.createElement('span');
    tSpan.innerHTML = '&nbsp;&#x00bb;';
    tSpan.className = 'homepage_headline_article_arrow';
    tDiv.appendChild(tSpan);
    
    this.view.appendChild(tDiv);
   }
  }
 },
 /**
  * return the view
  */
 getView : function() {
  return this.view;
 }
}
