window.onload = requestdata;

function loadXMLDoc(url, onComplete) {
	var req = null;
	if (window.XMLHttpRequest) {
		try { req = new XMLHttpRequest(); }
		catch (e) { }
	}
	else
		if (window.ActiveXObject) {
		try { req = new ActiveXObject('Msxml2.XMLHTTP'); }
		catch (e) {
			//for IE 7
			try { req = new ActiveXObject('Microsoft.XMLHTTP'); }
			catch (e) { }
		}
	}

	if (req) {
		req.onreadystatechange = function() {
			try {
				if (req.readyState == 4) // for state "complete"
				{
					if (req.status == 200) // for status "OK"
					{
						onComplete(req.responseXML, req);
					}
					else {
						alert("Не удалось получить данные/Unable to obtain data:\n" + req.statusText);
					}
				}
			}
			catch (e) {
				//Bugzilla Bug 238559 XMLHttpRequest needs a way to report networking errors
				// https://bugzilla.mozilla.org/show_bug.cgi?id=238559
				//alert('Caught Exception: ' + e.description);
			}
		}
		req.open("GET", url, true);
		req.send(null);
	}
	else {
		alert("Браузер не поддерживает AJAX/The browser does not support AJAX");
	}
}

function requestdata() {
	var parseData = function(data, obj) {
		var banners = [];
		var bannersIds = [];
		var items = data.getElementsByTagName("imageslink");
		for (var i = 0; i < items.length; i++) {
			var states = items[i].getElementsByTagName("banner");
			var banner = [];
			for (var j = 0; j < states.length; j++) {
				var image = states[j].getElementsByTagName("image")[0].firstChild.nodeValue;
				var link = states[j].getElementsByTagName("link")[0].firstChild;
				states[j].getElementsByTagName("image")[0].firstChild.attributes
				banner.push({ image: image, link: link });
			}
			banners.push(banner);
			bannersIds.push(items[i].getAttribute("id"));

		}
		startRotate(banners, bannersIds);
	}
	loadXMLDoc("imageslinks.asp?", parseData);
}

function startRotate(containers, containersIds) {
	for (var k = 0; k < containers.length; k++) {
		var img = document.createElement("img");
		var a = document.createElement("a");
		img.id = containersIds[k];
		a.id = "bannerLink" + (k).toString();
		img.border = "0";
		img.states = containers[k];
		img.counter = 1; //for Safari
		img.timeoutID = null;
		a.href = img.states[0].link.nodeValue;
		img.swapimage = function() {
			if (this.counter == this.states.length)
				this.counter = 0;
			this.src = this.states[this.counter].image;
			this.parentNode.href = this.states[this.counter].link.nodeValue;
			this.counter++;
		}
		img.resumerotate = function()//cuurentCounter
		{
			var that = this;
			this.timeoutID = window.setTimeout(function() { that.swapimage() }, 5000);
		}
		img.onload = img.resumerotate;
		img.src = img.states[0].image;
		img.pauserotate = function(currentId) {
			clearTimeout(this.timeoutID);
		}
		img.onmouseout = img.resumerotate;
		img.onmouseover = function() {
			var that = this;
			that.pauserotate(that.id);
		}
		document.getElementById("bannerWrapper" + k).appendChild(a);
		document.getElementById("bannerLink" + k).appendChild(img);
	}
}