﻿var request = null;
var _rptPrefix = null;
var _direction = null;
var _currentNumber = null;

function getXMLHTTP(){
  var A = null;
  
  try{
    A = new ActiveXObject("Msxml2.XMLHTTP");
  }catch(e){
    try{
      A = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(oc){
      A = null;
    }
  }
  
  if(!A && typeof XMLHttpRequest != "undefined") {
    A = new XMLHttpRequest();
  }
  
  return A;
}

function changeFeaturedItem(pictureId, galleryId, rptPrefix){
    request = getXMLHTTP();
    _rptPrefix = rptPrefix;

    var d = new Date();
        
    var url = "/includes/ajax.aspx";
    url += "?PictureId=" + pictureId + "&GalleryId=" + galleryId + "&time=" + d.getTime() + "&Source=gallery_feature";
        
    request.open("GET", url, true);
    request.onreadystatechange = changeFeaturedItemCallback;
    request.send(null);
} //changeFeaturedItem

function changeFeaturedItemOnClick(lblOrder, galleryId, rptPrefix) {
    request = getXMLHTTP();
    _rptPrefix = rptPrefix;

    var order = document.getElementById(lblOrder).innerHTML;

    var d = new Date();

    var url = "/includes/ajax.aspx";
    url += "?SortOrder=" + order + "&GalleryId=" + galleryId + "&time=" + d.getTime() + "&Source=gallery_feature_click";

    request.open("GET", url, true);
    request.onreadystatechange = changeFeaturedItemCallback;
    request.send(null);
}

function changeFeaturedItemCallback(){
    if(request.readyState == 4){
        if(request.status == 200){
            var text = request.responseText;
        
            //code for IE
            if (window.ActiveXObject){
                var doc = new ActiveXObject("Microsoft.XMLDOM");
                doc.async = "false";
                doc.loadXML(text);
            }
            //code for Mozilla, Firefox, Opera, etc.
            else{
                var parser = new DOMParser();
                var doc = parser.parseFromString(text, "text/xml");
            }
            
            //documentElement always represents the root node
            var root = doc.documentElement;
            
            var dir = root.getElementsByTagName("PictureDirectory")[0].childNodes[0].nodeValue;
            var img = root.getElementsByTagName("Image")[0].childNodes[0].nodeValue;
            var order = root.getElementsByTagName("SortOrder")[0].childNodes[0].nodeValue;
            var maxOrder = root.getElementsByTagName("MaxOrder")[0].childNodes[0].nodeValue;
            var caption = root.getElementsByTagName("PictureCaption")[0].childNodes[0].nodeValue;
            var credit = root.getElementsByTagName("PictureCredit")[0].childNodes[0].nodeValue;
                        
            var imgFeature = document.getElementById(_rptPrefix + "_imgFeature");
            var lblCounter = document.getElementById(_rptPrefix + "_lblCounter");
            var lblCaption = document.getElementById(_rptPrefix + "_lblCaption");
            var lblCredit = document.getElementById(_rptPrefix + "_lblCredit");

            document.getElementById(_rptPrefix + "_lblOrder").innerHTML = root.getElementsByTagName("SortOrder")[0].childNodes[0].nodeValue; ;
            
            imgFeature.src = dir + img;
            lblCounter.innerHTML = order + " of " + maxOrder;
            lblCaption.innerHTML = caption;
            
            if(credit != " "){
                lblCredit.innerHTML = "Credit: " + credit;
            }else{
                lblCredit.innerHTML = " ";
            }            
            
            _currentNumber = order;
        }//200
    }//4
}//changeFeaturedItemCallback

function scrollItems(galleryId, direction, rptPrefix){
    request = getXMLHTTP();
    _direction = direction;
    _rptPrefix = rptPrefix;
    
    if(_currentNumber == null){
        _currentNumber = 1;
    }
    
    var d = new Date();
        
    var url = "/includes/ajax.aspx";
    url += "?GalleryId=" + galleryId + "&CurrentNumber=" + _currentNumber + "&Direction=" + direction + "&time=" + d.getTime() + "&Source=gallery_scroll";
        
    request.open("GET", url, true);
    request.onreadystatechange = scrollItemsCallback;
    request.send(null);
}//scrollItems

function scrollItemsCallback(){
    if(request.readyState == 4){
        if(request.status == 200){
            var text = request.responseText;
        
            //code for IE
            if (window.ActiveXObject){
                var doc = new ActiveXObject("Microsoft.XMLDOM");
                doc.async = "false";
                doc.loadXML(text);
            }
            //code for Mozilla, Firefox, Opera, etc.
            else{
                var parser = new DOMParser();
                var doc = parser.parseFromString(text, "text/xml");
            }
            
            //documentElement always represents the root node
            var root = doc.documentElement;
            
            var count = root.getElementsByTagName("row").length;
            var maxOrder = root.getElementsByTagName("MaxOrder")[0].childNodes[0].nodeValue;
            
            if(_direction == "next"){
                _currentNumber = root.getElementsByTagName("SortOrder")[count -1].childNodes[0].nodeValue;
            }else{
                _currentNumber = root.getElementsByTagName("SortOrder")[0].childNodes[0].nodeValue;
            }
            
            if(_currentNumber == 1){
                document.getElementById(_rptPrefix + "_ibPrev").style.display = "none";
                document.getElementById(_rptPrefix + "_imgPrev").style.display = "inline";                 
            }else{
                document.getElementById(_rptPrefix + "_ibPrev").style.display = "inline";
                document.getElementById(_rptPrefix + "_imgPrev").style.display = "none";             
            }      
            
            if(_currentNumber == maxOrder){
                document.getElementById(_rptPrefix + "_ibNext").style.display = "none";
                document.getElementById(_rptPrefix + "_imgNext").style.display = "inline";            
            }else{
                document.getElementById(_rptPrefix + "_ibNext").style.display = "inline";
                document.getElementById(_rptPrefix + "_imgNext").style.display = "none";             
            }
            
            for(var i=1; i<=count; i++){
                var listItem = _rptPrefix + "_rptGallery_ctl0" + i + "_rptItem";
                var dir = root.getElementsByTagName("PictureDirectory")[i-1].childNodes[0].nodeValue;
                var img = root.getElementsByTagName("Image")[i-1].childNodes[0].nodeValue;
                var pictureId = root.getElementsByTagName("PictureId")[i-1].childNodes[0].nodeValue;
                var galleryId = root.getElementsByTagName("PhotoGalleryId")[i-1].childNodes[0].nodeValue;
                               
                document.getElementById(listItem).style.backgroundImage = "url(" + dir + "thumb/" + img + ")";
                                                               
                if(!window.attachEvent){ //firefox
                    document.getElementById(listItem).setAttribute("onclick", "changeFeaturedItem(" + pictureId + ", " + galleryId + ", '" + _rptPrefix + "'); return false;");
                }else{ //ie
                    document.getElementById(listItem).onclick = new Function("changeFeaturedItem(" + pictureId + ", " + galleryId + ", '" + _rptPrefix + "'); return false;");
                }//else
            }//for 
        }//200
    }//4
}//scrollItemsCallback
