$(function(){
	hoverForIE6("#nav li, .login-form .submit", "hover");	
	clearInputs();
	initXMLGallery();
});

//clear inputs
function clearInputs(){
	$('input:text, input:password, textarea').each(function(){
		var _el = $(this);
		var _val = _el.val();
		_el.bind('focus', function(){
			if(this.value == _val) this.value = '';
		}).bind('blur', function(){
			if(this.value == '') this.value = _val;
		});
	});
}

//ie6 hover
function hoverForIE6(h_list, h_class){
	if($.browser.msie && $.browser.version < 7){
		if(!h_class) var h_class = 'hover';
		$(h_list).mouseenter(function(){
			$(this).addClass(h_class);
		}).mouseleave(function(){
			$(this).removeClass(h_class);
		});
	}
}

// gallery init
function initXMLGallery() {
	// gallery options
	var switchTime = 7000;
	var fadeSpeed = 650;

	// xml gallery init
	$('ul.gallery').each(function(){
		var holder = $(this);
		var xmlSource = holder.attr('title');
		holder.removeAttr('title');

		// ajax XML request
		holder.empty();
		$.ajax({
			url: xmlSource,
			dataType: ($.browser.msie) ? 'text' : 'xml',
			success: function(xmlData){
				var galleryData;
				if (typeof xmlData == 'string') {
					galleryData = new ActiveXObject('Microsoft.XMLDOM');
					galleryData.async = false;
					galleryData.loadXML(xmlData);
				} else galleryData = xmlData;
				
				createHTML(galleryData);
				initGallery();
			},
			error: function() {
				alert('AJAX Error!');
			}
		});
		
		//create structure
		function createHTML(_galleryData){
			itemsArray = new Array;
			$(_galleryData).find('item').each(function(){
				var slide = new Object;
				var item = $(this);
				var rank = parseInt($('rank',item).text());
				slide.source = $('source',item).text();
				slide.link = $('link',item).text();
				slide.target = $('target',item).text();
				itemsArray[rank] = slide;
			});	
			
			for (var i = 0; i < itemsArray.length; i++) {
				(function(i){
					var item = itemsArray[i];
					if (typeof item != 'undefined') {
						var img = new Image();
						img.src = item.source;
						holder.append('<li><a href="'+item.link+'" target="'+item.target+'"><img src="'+item.source+'" alt="image description" /></a></li>');
					}
				})(i);
			}
		}
		
		function initGallery(){
			var slides = $('>li',holder);
			slides.hide();
			slides.eq(0).show();
			var current = 0;
			var previous = 0;
			var timer;
			
			function nextSlide(){
				previous = current;
				current++;
				if (current > slides.length-1) current = 0;
				switchSlide();
			}
			
			function switchSlide(){
				slides.eq(previous).fadeOut(fadeSpeed);
				slides.eq(current).fadeIn(fadeSpeed,callback);
				
				function callback(){
					autoplay();
				}
			}
			
			function autoplay(){
				clearTimeout(timer);
				timer = setTimeout(function(){
					nextSlide();
				},switchTime);
			}
			
			autoplay();
		}
	});
}
