var pages = new Pages();

function Pages() {
}

Pages.loadPagesInfo = function(errorCallback) {
  $("PagesInfo").style.display = "none";
  var select = $("PagesSelect");
  select.innerHTML = "";
  Sharing.loadPages(function(pages, error) {
    Pages.onPagesLoad(pages, error, errorCallback);
  }, $("PagesCategories").value);
}

Pages.onPagesLoad = function(pages, error, errorCallback) {
  var select = $("PagesSelect");
  select.innerHTML = "";
  if (error != null) {
    if (errorCallback) {
      errorCallback(error);
    }
    else {
      alert(error);
    }  
  }
  else {
    if (!pages) {
      pages = new Array();
    }
    for (var i = 0; i < pages.length; i++) {
    	var option = document.createElement("option");
    	option.value = pages[i].path;
    	option.page = pages[i];
    	option.innerHTML = Pages.escape(pages[i].title);
    	select.appendChild(option);
    }
    if (pages.length > 0) {
      select.selectedIndex = 0;
      Pages.pageSelected();
    }
  }  
}

Pages.pageSelected = function() {
  $("PagesDescription").innerHTML = "";
  var index = $("PagesSelect").selectedIndex;
  if (index >= 0) {
    $("PagesInfo").style.display = "block";
    var page = $("PagesSelect").options[index].page;
    $("PagesTitle").innerHTML = Pages.escape(page.title);
    $("PagesDescription").innerHTML = Pages.escape(page.description);
    $("PagesLink").innerHTML = "http://www.widgetop.com/shared.html?page=" + page.path;
  }
}

Pages.openSelected = function() {
  var index = $("PagesSelect").selectedIndex;
  if (index >= 0) {
    var page = $("PagesSelect").options[index].page;
    window.open("shared.html?page=" + page.path, "_blank");
  }
}

Pages.replaceWithSelected = function() {
  var index = $("PagesSelect").selectedIndex;
  if (index >= 0) {
    var page = $("PagesSelect").options[index].page;
    replaceWithPage(page);
  }
}

Pages.backToDefault = function() {
  replaceWithPage(Pages.currentPage, true);
}

Pages.categorySelected = function() {
  if ($("PagesCategories").value != "Search") {
    Pages.loadPagesInfo();
    $("PagesSearch").style.display = "none";
  }
  else {
    $("PagesSearch").style.display = "inline";
  }  
}

Pages.search = function() {
  $("PagesInfo").style.display = "none";
  var select = $("PagesSelect");
  select.innerHTML = "";
  Sharing.searchPages(function(pages, error) {
    Pages.onPagesLoad(pages, error, function(error) {alert(error)});
  }, $("PagesSearchInput").value);  
}

Pages.escape = function(text) {
  text = text.replace(/\&/g, "&amp;");
  text = text.replace(/\</g, "&lt;");
  text = text.replace(/\>/g, "&gt;");
  text = text.replace(/\r/g, "");
  text = text.replace(/\n/g, "<br>");
  text = text.replace(/\n\n/g, "<p>");
  return text;
}        
