var getElementsByClassName = function (className, tag, elm){
    if (document.getElementsByClassName) {
        getElementsByClassName = function (className, tag, elm) {
            elm = elm || document;
            var elements = elm.getElementsByClassName(className),
                nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
                returnElements = [],
                current;
            for(var i=0, il=elements.length; i<il; i+=1){
                current = elements[i];
                if(!nodeName || nodeName.test(current.nodeName)) {
                    returnElements.push(current);
                }
            }
            return returnElements;
        };
    }
    else if (document.evaluate) {
        getElementsByClassName = function (className, tag, elm) {
            tag = tag || "*";
            elm = elm || document;
            var classes = className.split(" "),
                classesToCheck = "",
                xhtmlNamespace = "http://www.w3.org/1999/xhtml",
                namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
                returnElements = [],
                elements,
                node;
            for(var j=0, jl=classes.length; j<jl; j+=1){
                classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
            }
            try {
                elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
            }
            catch (e) {
                elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
            }
            while ((node = elements.iterateNext())) {
                returnElements.push(node);
            }
            return returnElements;
        };
    }
    else {
        getElementsByClassName = function (className, tag, elm) {
            tag = tag || "*";
            elm = elm || document;
            var classes = className.split(" "),
                classesToCheck = [],
                elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
                current,
                returnElements = [],
                match;
            for(var k=0, kl=classes.length; k<kl; k+=1){
                classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
            }
            for(var l=0, ll=elements.length; l<ll; l+=1){
                current = elements[l];
                match = false;
                for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
                    match = classesToCheck[m].test(current.className);
                    if (!match) {
                        break;
                    }
                }
                if (match) {
                    returnElements.push(current);
                }
            }
            return returnElements;
        };
    }
    return getElementsByClassName(className, tag, elm);
};

function MM_preloadImages()
{ 
	var d=document;
	if(d.images) 
	{
		if(!d.MM_p) 
		  d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
		for(i=0; i<a.length; i++)
		  if (a[i].indexOf("#")!=0)
		  { 
			d.MM_p[j]=new Image; 
			d.MM_p[j++].src=a[i];
		  }
	}
}

function changeClass(obj, pref)
{
	obj.className = "page_" + pref;
}

function changeButton(obj, pref)
{
	obj.className = "button_" + pref;
}

var obj;
var current_class_name = "img_1";
var count = 7;
var time = 4000;

function showImage(class_name)
{
	current_class_name = class_name;
	obj = document.getElementById("img")
	obj.xOpacity = .99;
	
	setTimeout(so_xfade, 50);
}

function so_xfade() 
{
	cOpacity = 0;
	cOpacity = obj.xOpacity;	
	cOpacity-=.05; 
	obj.xOpacity = cOpacity;
	setOpacity(obj);

	if(cOpacity<=0) {
		obj.className = current_class_name;
		obj.xOpacity = .99;
		setOpacity(obj);
		return;
	} else {
		setTimeout(so_xfade, 20);
	}
}

function setOpacity(obj) {
	if(obj.xOpacity>.99) {
		obj.xOpacity = .99;
		return;
	}
	obj.style.opacity = obj.xOpacity;
	obj.style.MozOpacity = obj.xOpacity;
	obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
}

var classes = new Array("", "img_1", "img_2", "img_3", "img_4", "img_5", "img_6", "img_7");
var next_id = 2;
var prev_id = 7;
var status = false;

function prevImage()
{
	obj = document.getElementById("img")
	obj.xOpacity = .99;
	status = false;
	setTimeout(so_xfade_arrow, 50);
}

function nextImage()
{
	obj = document.getElementById("img")
	obj.xOpacity = .99;
	status = true;
	setTimeout(so_xfade_arrow, 50);
}

function so_xfade_arrow() 
{
	cOpacity = 0;
	cOpacity = obj.xOpacity;	
	cOpacity-=.05; 
	obj.xOpacity = cOpacity;
	setOpacity(obj);

	if(cOpacity<=0) {
		for(i=1; i<classes.length; i++)
		{
			if(obj.className == classes[i])
			{
				if(status) i++;
				else i--;
				
				if(i < 1) i = count;
				else if(i > count) i = 1;
				
				obj.className = classes[i];
				obj.xOpacity = .99;
				setOpacity(obj);
			}
		}
		return;
	} else {
		setTimeout(so_xfade_arrow, 20);
	}
}

window.addEventListener?window.addEventListener("load",so_init,false):window.attachEvent("onload",so_init);

function so_init() {
	obj = document.getElementById("img")
	obj.xOpacity = .99;

	setTimeout(so_xfade_auto, time);
}

function so_xfade_auto() 
{
	cOpacity = 0;
	cOpacity = obj.xOpacity;	
	cOpacity-=.05; 
	obj.xOpacity = cOpacity;
	setOpacity(obj);

	if(cOpacity<=0) {
		for(i=1; i<classes.length; i++)
		{
			if(obj.className == classes[i])
			{
				i++;
				if(i > count) i = 1;
				
				obj.className = classes[i];
				obj.xOpacity = .99;
				setOpacity(obj);
			}
		}
		setTimeout(so_xfade_auto, time);
	} else {
		setTimeout(so_xfade_auto, 20);
	}
}
