var req;
var current_host = "http://www.katelycett.co.uk";
var php_location = current_host + "/wp-content/themes/natural-essence/gallery";

if (window.XMLHttpRequest) {
  req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
  req = new ActiveXObject("Microsoft.XMLHTTP");
}

var galleryXml;
var galleryXmlIndex = 0;
var numberOfImages;
var currentId;

function loadGallery(){
  req.open("GET", php_location + "/item_list.php", true);
  req.onreadystatechange = galleryXmlCallback;
  req.send(null);
}

function galleryXmlCallback(){
  if (req.readyState == 4){
    if (req.status == 200){
      galleryXml = req.responseXML;
      numberOfImages = galleryXml.getElementsByTagName("id").length;
      galleryXmlIndex = getGalleryXmlId(-1);
      id = galleryXml.getElementsByTagName("id")[0].childNodes[0].nodeValue;
      getGalleryItem(id);
      pageLoad();
    }
  }
}

function getGalleryItem(id){
  document.getElementById("image").src= php_location + "/loading.gif";
  if (window.XMLHttpRequest) {
          req = new XMLHttpRequest();
      } else if (window.ActiveXObject) {
          req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  req.open("GET", php_location + "/gallery_item.php?id=" + id, true);
  req.onreadystatechange = galleryItemCallback;
  req.send(null);
}

function galleryItemCallback(){
  if(req.readyState == 4){
    if(req.status == 200){
      var gallery_item = req.responseXML;
      updateItemDetails(gallery_item);
    }
  }
}

function updateItemDetails(gallery_item){
  var itemTitle = document.getElementById("title");
  var itemMedia = document.getElementById("media");
  var itemSize = document.getElementById("size");
  var itemPrints = document.getElementById("prints");
  var itemInfo = document.getElementById("info");
  var itemOriginal = document.getElementById("original");
  var itemImage = document.getElementById("image");
  var itemOriginal_Price = document.getElementById("original_price");
  var itemPrint_Price = document.getElementById("print_price");
  var itemMake_Enquiry = document.getElementById("make_enquiry");
  var itemShowImage = document.getElementById("show_image");
  var id = gallery_item.getElementsByTagName("id")[0].childNodes[0].nodeValue;

  itemTitle.innerHTML = gallery_item.getElementsByTagName("title")[0].childNodes[0].nodeValue;

  if(gallery_item.getElementsByTagName("info")[0].childNodes.length != 0){
    itemInfo.innerHTML = "<span style=\"font-weight:bold;\">" + gallery_item.getElementsByTagName("title")[0].childNodes[0].nodeValue +
      "</span><p>" + gallery_item.getElementsByTagName("info")[0].childNodes[0].nodeValue.replace(/\n/g, "<br/>") + "</p>";
  } else {
    itemInfo.innerHTML = "";
  }

  if(gallery_item.getElementsByTagName("media")[0].childNodes.length != 0){
    itemMedia.innerHTML = "<p><span style=\"font-weight:bold;\">Media:</span> " + gallery_item.getElementsByTagName("media")[0].childNodes[0].nodeValue.replace(/\n/g, "<br/>") + "</p>";
  } else {
    itemMedia.innerHTML = "";
  }

  if(gallery_item.getElementsByTagName("size")[0].childNodes.length != 0){
    itemSize.innerHTML = "<span style=\"font-weight:bold;\">Size:</span> "+gallery_item.getElementsByTagName("size")[0].childNodes[0].nodeValue;
  } else {
    itemSize.innerHTML = "";
  }
  
  itemOriginal_Price.innerHTML = "";
  itemOriginal_Price.innerHTML = "<div><span style=\"font-weight:bold;\">Prices:</span></div>";
  if(gallery_item.getElementsByTagName("original_price")[0].childNodes.length != 0
    && gallery_item.getElementsByTagName("original")[0].childNodes[0].nodeValue == 'true'){
    itemOriginal_Price.innerHTML += "<div>Original : " +
    gallery_item.getElementsByTagName("original_price")[0].childNodes[0].nodeValue + "</div>";
  }
  
  if(gallery_item.getElementsByTagName("original_price")[0].childNodes.length == 0
    && gallery_item.getElementsByTagName("original")[0].childNodes[0].nodeValue == 'true'){
    itemOriginal_Price.innerHTML += "<div>Original : Please enquire</div>";
  }
  
  if(gallery_item.getElementsByTagName("original")[0].childNodes[0].nodeValue == 'false'){
    itemOriginal_Price.innerHTML += "<div>Original : <span style=\"color:#aa3333; font-weight:bold;\">SOLD</span></div>";
  }
  
  itemPrint_Price.innerHTML = "";
  if(gallery_item.getElementsByTagName("print_price")[0].childNodes.length != 0
    && gallery_item.getElementsByTagName("prints")[0].childNodes[0].nodeValue == 'true'){
    itemPrint_Price.innerHTML += "<div>Prints : " +
    gallery_item.getElementsByTagName("print_price")[0].childNodes[0].nodeValue + "</div>";
  }
  
  if(gallery_item.getElementsByTagName("print_price")[0].childNodes.length == 0
    && gallery_item.getElementsByTagName("prints")[0].childNodes[0].nodeValue == 'true'){
    itemPrint_Price.innerHTML += "<div>Prints : Please enquire</div>";
  }
  
  if(gallery_item.getElementsByTagName("prints")[0].childNodes[0].nodeValue == 'false'){
    itemPrint_Price.innerHTML += "<div>&nbsp;</div>";
  }
  
  if(gallery_item.getElementsByTagName("original")[0].childNodes[0].nodeValue == 'true'
    || gallery_item.getElementsByTagName("prints")[0].childNodes[0].nodeValue == 'true'){
    itemMake_Enquiry.innerHTML = "<a style=\"color:#aa3333;\" href=\"javascript:location='mailto:\\u0067\\u0061\\u006c\\u006c\\u0065\\u0072\\u0079\\u0040\\u006b\\u0061\\u0074\\u0065\\u006c\\u0079\\u0063\\u0065\\u0074\\u0074\\u002e\\u0063\\u006f\\u002e\\u0075\\u006b?subject="+gallery_item.getElementsByTagName("title")[0].childNodes[0].nodeValue+"';void 0\">Make enquiry</a>";
  } else {
    itemMake_Enquiry.innerHTML = "&nbsp;";
  }
  
  itemShowImage.innerHTML = "<p><a href=\"javascript:showImage();\">View larger image</a></p>";


  itemImage.src = php_location + "/image.php?preview&id=" + id;
  currentId = id;
}

function selectImage(evt){
  var elt = getElementFromEvent(evt);
  deselectOtherThumbnails(currentId);
  elt.className = "selected";
  getGalleryItem(elt.getAttribute("id"));
}

function deselectOtherThumbnails(_currentId){
  var elt = document.getElementById(_currentId);
  elt.className= "trans";
  //Fudge for IE css
  elt.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=40)";
}

function getGalleryXmlId(dif){
  if((galleryXmlIndex + dif) > numberOfImages - 1){
    return (galleryXmlIndex - numberOfImages + dif);
  } else {
    if((galleryXmlIndex + dif) < 0){
      return (galleryXmlIndex + numberOfImages + dif);
    } else {
      return (galleryXmlIndex + dif);
    }
  }
}

function getElementFromEvent(evt){
  evt = (evt) ? evt : (window.event) ? window.event : "";
  var elt;
  if (evt.srcElement) {
    elt = evt.srcElement;
  } else if (evt.target) {
    elt = evt.target;
  }
  return elt;
}

function showImage(){
  window.open(php_location + "/fullsize.php?id=" + currentId + "&title=" + document.getElementById("title").innerHTML, "image", "width=800px, height=610px, status=no, menubar=no, toolbar=no");
}

function doMouseOver(evt){
//Fudge for IE css
  var elt = getElementFromEvent(evt);
  if(elt.className != 'selected'){
    elt.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
  }
}

function doMouseOut(evt){
//Fudge for IE css
  var elt = getElementFromEvent(evt);
  if(elt.className != 'selected'){
    elt.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=40)";
  }
}


//Carousel Code

  var fmtItem = function(imgUrl, this_id, this_class) {

    var innerHTML = 
    '<a><img src="' + 
    imgUrl +
    '" onClick="selectImage(event);" id="' +
    this_id +
    '" onmouseover="doMouseOver(event)"' +
    ' onmouseout="doMouseOut(event)"' +
    ' class="' +
    this_class +
    '"/></a>';

    return innerHTML;

  }

  var loadInitialItems = function(type, args) {

    var start = args[0];
    var last = args[1]; 

    load(this, start, last);
    //load(this, start, numberOfImages);
  }

  var loadNextItems = function(type, args) {  

    var start = args[0];
    var last = args[1]; 
    var alreadyCached = args[2];

    if(!alreadyCached) {
      load(this, start, last);
    }
  }

  var loadPrevItems = function(type, args) {
    var start = args[0];
    var last = args[1]; 
    var alreadyCached = args[2];

    if(!alreadyCached) {
      load(this, start, last);
    }
  } 

  var load = function(carousel, start, last) {
    var this_id = galleryXml.getElementsByTagName("id")[0].childNodes[0].nodeValue;
    carousel.addItem(1, fmtItem( php_location + "/image.php?thumb&id="+this_id, this_id, "selected"));
    
    for(var i=start+1; i<=last; i++) {
    var this_id = galleryXml.getElementsByTagName("id")[i-1].childNodes[0].nodeValue;
      carousel.addItem(i, fmtItem( php_location + "/image.php?thumb&id="+this_id, this_id, ""));
    }
  }
  var carousel;
  function pageLoad() {
  var carousel = new YAHOO.extension.Carousel("mycarousel", 
  {   
         "prevElement":     "prev-arrow",
         "nextElement":     "next-arrow",
    "numVisible":        4,
    "animationSpeed":    0.4,
    "scrollInc":         3,
    "navMargin":         40,
    "prevElement":     "prev-arrow",
    "nextElement":     "next-arrow",
    "loadInitHandler":   loadInitialItems,
    "loadNextHandler":   loadNextItems,
    "loadPrevHandler":   loadPrevItems,
    "size": galleryXml.getElementsByTagName("id").length
  }
  );
  document.getElementById("mycarousel").style.visibility = "visible";
};

