var xmlHttp = new Array();
var set = new Array();
var galleryStyle = new Array();
var imageStyle = new Array();
var textStyle = new Array();
var catStyle = new Array();
function GetXmlHttpObject(){
    var xmlHttp = null;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } 
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

function getItems(id, pagStart, _set){
    xmlHttp[id] = GetXmlHttpObject();
    if (xmlHttp == null) {
        alert("Your browser does not support AJAX!");
        return;
    }
    var url = _set[id].url + "?" + _set[id].params + "&pagstart=" + pagStart;
    xmlHttp[id].onreadystatechange = function(){
        if (xmlHttp[id].readyState == 4) {
			var xmltext = xmlHttp[id].responseText;
			var showPagination = 0;
			try //Internet Explorer
			{
				xmlobject = new ActiveXObject("Microsoft.XMLDOM");
				xmlobject.async = "false";
				xmlobject.loadXML(xmltext);
			} 
			catch (e) {
				try //Firefox, Mozilla, Opera, etc.
				{
					xmlobject = (new DOMParser()).parseFromString(xmltext, "text/xml");
				} 
				catch (e) {
					alert(e.message)
				}
			}
			//var xmlobject = (new DOMParser()).parseFromString(xmltext, "text/xml");
			
			var contents = xmlobject.getElementsByTagName("contents")[0];
			var content = contents.getElementsByTagName("content");
			var th = contents.getElementsByTagName("thumb");
			if (contents.getElementsByTagName("pagination").length) {
				showPagination = 1;
				var pagination = contents.getElementsByTagName("pagination")[0].firstChild.nodeValue;
			}
			
			var showCategoryTitle = 0;
			
			if (content.length > 0) {
				for (var i = 0; i < content.length; i++) {
					_set[id].text[i] = content[i].getElementsByTagName("text")[0].firstChild.nodeValue;
					_set[id].image[i] = content[i].getElementsByTagName("image")[0].firstChild.nodeValue;
					_set[id].src[i] = content[i].getElementsByTagName("src")[0].firstChild.nodeValue;
					
					if (content[i].getElementsByTagName("category").length) {
						showCategoryTitle = 1;
						_set[id].category[i] = content[i].getElementsByTagName("category")[0].firstChild.nodeValue;
					}
					var newdiv = document.createElement("div");
					newdiv.setAttribute("style", "display:none");
					newdiv.innerHTML = _set[id].image[i];
					document.getElementById("djfphid_" + id).appendChild(newdiv);
					
				}
				
				galleryStyle[id].start({
				'opacity': 0
				});
				imageStyle[id].start({
					'opacity': 0
				});
				textStyle[id].start({
					'opacity': 0
				});
				if (showCategoryTitle == 1) {
					catStyle[id].start({
						'opacity': 0
					});
				}
				/*for (var i = 0; i < _set[id].gallery.length; i++) {
					var divTdName = 'djfptd_' + id + '_' + i;
					var divTd = document.getElementById(divTdName);
					divTd.innerHTML = '';
				}*/
				setTimeout(function() {
					for (var i = 0; i < th.length; i++) {
						_set[id].gallery[i] = th[i].firstChild.nodeValue;
						var divTdName = 'djfptd_' + id + '_' + i;
						var divTd = document.getElementById(divTdName);
						divTd.innerHTML = _set[id].gallery[i];
					}
					for (var i = th.length; i < _set[id].gallery.length; i++) {
						var divTdName = 'djfptd_' + id + '_' + i;
						var divTd = document.getElementById(divTdName);
						divTd.innerHTML = '';
					}
					var divImgName = 'djfimg_' + id;
					var divImg = document.getElementById(divImgName);
					divImg.innerHTML = _set[id].image[0];
					divImg.setAttribute("href", _set[id].src[0]);
					divImg.setAttribute("alt", "Image");
					
					var divTextName = 'djftext_' + id;
					var divText = document.getElementById(divTextName);
					divText.innerHTML = _set[id].text[0];
					
					if (showPagination == 1) {
						var divPagName = 'djfpag_' + id;
						var divPag = document.getElementById(divPagName);
						divPag.innerHTML = pagination;
					}
					
					if (showCategoryTitle == 1) {
						var divCatName = 'djfcat_' + id;
						var divCat = document.getElementById(divCatName);
						divCat.innerHTML = _set[id].category[0];
					}
					/* Uncomment following line in order to use True Font Family script */
					//truefontfamily();
				}, 500);
				
				setTimeout(function(){
					galleryStyle[id].start({
						'opacity': 1
					});
					imageStyle[id].start({
						'opacity': 1
					});
					textStyle[id].start({
						'opacity': 1
					});
					if (showCategoryTitle == 1) {
						catStyle[id].start({
							'opacity': 1
						});
					}
				}, 500);
			}
        }
    }
    xmlHttp[id].open("GET", url, true);
    xmlHttp[id].send(null);
    
}

function getItem(id, no, _set){
    imageStyle[id].start({
        'opacity': 0
    });
	textStyle[id].start({
        'opacity': 0
    });
	
	var catname = 'djfcat_' + id;
	if (document.getElementById(catname)) {
		catStyle[id].start({
			'opacity': 0
		});
	}
	setTimeout(function() {
	    var divTextName = 'djftext_' + id;
	    var divText = document.getElementById(divTextName);
	    divText.innerHTML = _set[id].text[no];
		
		var divCatName = 'djfcat_' + id;
		if (document.getElementById(divCatName)) {
			var divCat = document.getElementById(divCatName);
			divCat.innerHTML = _set[id].category[no];
		}
		/* Uncomment following line in order to use True Font Family script */
		//truefontfamily();
    }, 500);
	
	
    var divImgName = 'djfimg_' + id;
    var divImg = document.getElementById(divImgName);

    setTimeout(function() {
		divImg.innerHTML = _set[id].image[no];
    	divImg.setAttribute("href", _set[id].src[no]);
		}, 500);
    
    setTimeout(function(){
        imageStyle[id].start({
            'opacity': 1
        });
		textStyle[id].start({
            'opacity': 1
        });
		catStyle[id].start({
            'opacity': 1
        });
    }, 500);
}

window.addEvent('domready', function(){
    generateRequests(set);
});

function generateRequests(_set){
    for (var i = 1; i < _set.length; i++) {
        addEffects(i);
        getItems(i, 0, _set);
        
    }
}

function loadModule(id, pagination){
    getItems(id, pagination, set);
}

function loadItem(id, no){
    getItem(id, no, set);
}

function delayImage(el, img){
    el.innerHTML = img;
}

function addEffects(id){
	var galname = 'djfgal_' + id;
	var imgname = 'djfimg_' + id;
	var txtname = 'djftext_' + id;
	var catname = 'djfcat_' + id;
	if (document.getElementById(galname)) {
		galleryStyle[id] = new Fx.Styles(galname, {
			duration: 500,
			wait: false
		});
	}
	if (document.getElementById(imgname)) {
		imageStyle[id] = new Fx.Styles(imgname, {
			duration: 500,
			wait: false
		});
	}
	if (document.getElementById(txtname)) {
		textStyle[id] = new Fx.Styles(txtname, {
			duration: 500,
			wait: false
		});
	}
	if (document.getElementById(catname)) {
		catStyle[id] = new Fx.Styles(catname, {
			duration: 500,
			wait: false
		});
	}
}
