

function getFlickrImages() {
  var url       = "request.lp";
  var container = $(arguments[0]);
  var form      = arguments[1]
  
  console.info("getFlickrImages() called with: ", container, form);

  var myAjax = new Ajax.Request(
    url, {
    method: 'post',
    parameters: $(form).serialize(true),
    onComplete: function(request) {
      try {
        var rsp = request.responseXML.getElementsByTagName("rsp")[0];
        var responseStatus = rsp.getAttribute("stat");
        if(responseStatus == "ok") {
          
          if(form == "setForm") {
            appendSets(container,rsp);
          }else {
            appendImages(container,rsp);
          }
          
        }else {
          alert("Nee");
        }
        
      } catch (e) {
      }
    }
  });
}

function appendSets(container,rsp) {
  container.innerHTML = "";
  var sets = $A(rsp.getElementsByTagName("photosets")[0].getElementsByTagName("photoset"));
  
  /* blader functie */
  var numSets = sets.size();
  var setsPerPages = 6;
  var pages = (numSets%setsPerPages) ? parseInt((numSets/setsPerPages) + 1)  : (numSets/setsPerPages) ;
  
  var thisPage = 0;
  sets.each(function(set,index) {
    
    var setValues = new Hash({ 
      api_key:      "6ae479b79df64ef4619141d36e5005ce",
      user_id:      "29452973@N04",
      sign_call:    "none",
      method:       "flickr.photosets.getPhotos",  
      photoset_id:  set.getAttribute("id"),
      numPhotos:    set.getAttribute("photos"),
      primary:      set.getAttribute("primary"),
      secret:       set.getAttribute("secret"),
      server:       set.getAttribute("server"),
      farm:         set.getAttribute("farm")
    });
    
    var formID  = "form"+set.getAttribute("id");
    var form    = new Element("form", {id:formID,action: "request.lp"});
    container.appendChild(form);
    
    var hiddenFields = $w("api_key user_id sign_call method photoset_id");
    hiddenFields.each(function(name) {
      var hiddenField = new Element("input", {type:"hidden",name:name,value: setValues.get(name)});
      form.appendChild(hiddenField);
    });
    
    var title       = (set.getElementsByTagName("title")[0])                 ? set.getElementsByTagName("title")[0].firstChild.nodeValue        : "";
    var description = (set.getElementsByTagName("description")[0].firstChild)? set.getElementsByTagName("description")[0].firstChild.nodeValue  : "";
    
    //if(description) description = escape(description);
    
    if(index%setsPerPages == 0) {
      ++thisPage;
    }
    
    var html;
    var visibility = 'style="display:none"';
    html = (thisPage > 1) ? '<div class="divSetPreview page'+thisPage+'" '+visibility+'>' : '<div class="divSetPreview page'+thisPage+'">';
    html += '<a onclick="return openHighslide(this, \''+setValues.get('photoset_id')+'\', this.title, \''+description+'\')" title="'+title+'" alt="'+title+'" href="javascript:;"><img width="200" src="http://farm'+setValues.get("farm")+'.static.flickr.com/'+setValues.get("server")+'/'+setValues.get("primary")+'_'+setValues.get("secret")+'_m.jpg"></a>';
    html += '<p style="width:100%;margin-bottom:5px;"><a onclick="return openHighslide(this, \''+setValues.get('photoset_id')+'\', \''+description+'\')" title="'+title+'" alt="'+title+'" href="javascript:;">'+title+' ('+setValues.get("numPhotos")+')</a></p>';
    html += '</div>';
    
    new Insertion.Bottom(container, html);
    
  });
  if(pages > 1) {
    var pager = '<div id="divPager">';
    (pages).times(function(page) {   
      page += 1;
      cName = (page == 1) ? 'class="currentPage"' : ''; 
      pager += '<span id="pagerLink'+page+'" '+cName+'><a href="javascript:;"; onclick="goToPage('+page+')">'+page+'</a></span>';
    }); 
    pager += '</div>';
    new Insertion.Bottom(container, pager);
  }
}

function goToPage() {
  var page  = arguments[0] || 1;
  var sets  = $$("div.divSetPreview");
  
  $("divPager").select("span").each(function(el) {
    if(el.hasClassName("currentPage")) el.removeClassName("currentPage");
  });
  
  sets.each(function(el) {
    if(el.hasClassName("page"+page)) {
      el.show();
      $("pagerLink"+page).addClassName("currentPage");
    }else {
      el.hide();
    }
  });
}

function openHighslide(element, setId, title, description) {
  closeHighslideWindows();
  this.element = element;
  this.setId = setId;
  this.title = title;
  this.description = description;
  setTimeout("doOpenHighslide(this.element, this.setId, this.title, this.description)", 500);  // delay highslide
  return false;
}

function doOpenHighslide(element, setId, title, description) {
  $("photoSet").photoset_id.value = setId;
  hs.htmlExpand(element, { contentId: 'hsContainer', preserveContent: false } );
  $("pFlickrTitle").update(title);
  $("pFlickrSetDescription").update(description);
  getFlickrImages('divFlickrScrollerElement1','photoSet');
}

function closeHighslideWindows() {
  $$(".highslide-html-content").each(function(element) {
    hs.close(element);
  }); 
}

function appendImages(container,rsp) {
  var html = "";
  var photoSet = rsp.getElementsByTagName("photoset")[0];
  
  var photos = $A(photoSet.getElementsByTagName("photo"));
  photos.each(function(photo,index) {
    var setValues = new Hash({ 
      api_key:      "6ae479b79df64ef4619141d36e5005ce",
      user_id:      "29452973@N04",
      sign_call:    "none",
      ownerName:    photoSet.getAttribute("ownername"),
      numImages:    photoSet.getAttribute("total"),
      id:           photo.getAttribute("id"),
      isprimary:    photo.getAttribute("isprimary"),
      secret:       photo.getAttribute("secret"),
      server:       photo.getAttribute("server"),
      farm:         photo.getAttribute("farm"),
      title:        photo.getAttribute("title")
    });
    
    html += '<div class="divFlickrPhoto">';
    html += '<a href="http://www.flickr.com/photos/campinggroede/'+setValues.get("id")+'/" title="'+setValues.get("title")+' ('+(index+1)+') | '+setValues.get("title")+'"><img src="http://farm'+setValues.get("farm")+'.static.flickr.com/'+setValues.get("server")+'/'+setValues.get("id")+'_'+setValues.get("secret")+'_s.jpg" width="75" height="75" alt="'+setValues.get("title")+'"></a>';
    html += '<a href="http://farm'+setValues.get("farm")+'.static.flickr.com/'+setValues.get("server")+'/'+setValues.get("id")+'_'+setValues.get("secret")+'.jpg"  rel="flickr-media-content"></a>';
    html += '</div>';
    
  });
  container.update(html);
  initScroller();
}