/*!
 * S.A Team Mobile Script
 * Includes jQuery v1.4.4
 */



(function($) {
	$.fn.XMLParser = function(pm) {
		$(this).bind(pm.event, function() {
			var options = {
				url: '/lib/special_characters.php?yws_path=' + encodeURIComponent(pm.url),
				type: 'GET',
				beforeSend: function(data) {
					if (pm.beforeSend) pm.beforeSend(data);
				},
				success: function(data) {
					if (pm.callback) pm.callback(data);
				}
			};

			$.ajax(options);

			return false;
		});
	};


	$.each(['touches', 'targetTouches'], function(i, propName){
		if ( $.inArray(propName, $.event.props) < 0 ) {
			$.event.props.push(propName);
		}
	});
})(jQuery);


function landingRolling(url, value, hook) {
	var imageList, setTimeObject,
		totalNum = 0,
		currentNum = 1,
		animateTime = 800,
		intervalTime = 1200;

	$(window).XMLParser({
		event: 'load',
		url: url,
		callback: function(data) { setHTML(data); }
	});

	var setHTML = function(data) {
		imageList = $(data).find(value + ' > image');
		var getURLs = '/media/landing/' + value + '/' + imageList.first().text();
		totalNum = imageList.length;

		$(hook).addClass('slider');

		imgWrap = $('<p></p>').addClass('img_wrap').appendTo(hook);
		image = $('<img>').appendTo(imgWrap).attr({
			src: getURLs,
			alt: ''
		}).load(function() {
			setTimeObject = setTimeout(nextEvent, intervalTime);
		});
	};

	var nextEvent = function() {
		currentNum = (currentNum >= totalNum) ? 1 : (currentNum + 1);

		var newImgWrap = $('<p></p>').addClass('img_wrap').hide().appendTo(hook);
		var newImage = $('<img>').attr({
			src: '/media/landing/' + value + '/' + imageList.eq(currentNum - 1).text(),
			alt: ''
		}).appendTo(newImgWrap).load(function() {
			newImgWrap.fadeIn(animateTime, function() {
				$(hook).find('.img_wrap:first').remove();
				setTimeObject = setTimeout(nextEvent, intervalTime);
			});
		})
	};
}


function subContent(url, category, artist, folder, folder_path, type, hook) {
	var imgWrap, image, imageList,
		naviWrap, prevNavi, nextNavi, statNavi, caption,
		videoList, player, playListWrap, playList = [], playListAnchor, scrollWrap, oldNum = 0,
		touchStat = true, startY, endY, scrollGap, moveGap,
		totalNum = 0,
		currentNum = 1,
		animateTime = 800;

	var setHTML = function(data) {
		var mobileKeyWords = ['iPhone', 'iPod', 'iPad', 'BlackBerry', 'Android', 'Windows CE', 'LG', 'MOT', 'SAMSUNG', 'SonyEricsson']; /*, 'BlackBerry', 'Android', 'Windows CE', 'LG', 'MOT', 'SAMSUNG', 'SonyEricsson'*/
		for (var word in mobileKeyWords) {
			if (navigator.userAgent.match(mobileKeyWords[word]) != null) {
				if (type == 'slide')
					slides(data);
				else if (type == 'video')
					videos(data);
			}
		}
	};

	$(window).XMLParser({
		event: 'load',
		url: url,
		callback: function(data) { setHTML(data); }
	});

	var slides = function(data) {
		imageList = $(data).find('custom_submenu[folder_name="' + folder + '"] > image');
		var getURLs = folder_path + '/' + folder + '/' + imageList.first().text();
		totalNum = imageList.length;

		$(hook).addClass('slider');

		imgWrap = $('<p></p>').addClass('img_wrap').appendTo(hook);
		image = $('<img>').appendTo(imgWrap).attr({
			src: getURLs,
			alt: ''
		}).load(function() {
			addNavigation(data);
		});
	};

	var addNavigation = function(data) {
		naviWrap = $('<div class="navi"></div>').appendTo(hook);
		prevNavi = $('<a href="#">prev</a>').appendTo(naviWrap).click(prevEvent).addClass('prev');
		statNavi = $('<strong></strong>').appendTo(naviWrap).html(currentNum + ' / ' + totalNum);
		nextNavi = $('<a href="#">next</a>').appendTo(naviWrap).click(nextEvent).addClass('next');
	};

	var prevEvent = function() {
		currentNum = ((currentNum - 1) <= 0) ? totalNum : (currentNum - 1);

		var newImgWrap = $('<p></p>').addClass('img_wrap').hide().appendTo(hook);
		var newImage = $('<img>').attr({
			src: folder_path + '/' + imageList.eq(currentNum - 1).text(),
			alt: ''
		}).appendTo(newImgWrap).load(function() {
			newImgWrap.fadeIn(animateTime, function() {
				$(hook).find('.img_wrap:first').remove();
				statNavi.html(currentNum + ' / ' + totalNum);
			});
		})

		return false;
	};

	var nextEvent = function() {
		currentNum = (currentNum >= totalNum) ? 1 : (currentNum + 1);

		var newImgWrap = $('<p></p>').addClass('img_wrap').hide().appendTo(hook);
		var newImage = $('<img>').attr({
			src: folder_path + '/' + folder + '/' + imageList.eq(currentNum - 1).text(),
			alt: ''
		}).appendTo(newImgWrap).load(function() {
			newImgWrap.fadeIn(animateTime, function() {
				$(hook).find('.img_wrap:first').remove();
				statNavi.html(currentNum + ' / ' + totalNum);
			});
		})

		return false;
	};

	var videos = function(data) {
		videoList = $(data).find('custom_submenu[folder_name="' + folder + '"] > video');
		var getURLs = folder_path + '/' + folder + '/' + videoList.first().attr('file_name');
		totalNum = videoList.length;

		player = $('<video></video>').appendTo(hook).attr({
			src: getURLs,
			autoplay: true,
			loop: true,
			controls: 'controls',
			width: 320,
			height: 240
		});

		if (videoList.first().attr('caption')) {
			caption = $('<p></p>').addClass('caption').appendTo(hook);
			caption.append(videoList.first().attr('caption'));
		} else if (videoList.first().attr('title')) {
			caption = $('<p></p>').addClass('caption').appendTo(hook);
			caption.append(videoList.first().attr('title'));
		}

		scrollWrap = $('<div></div>').addClass('playlist_wrap').appendTo(hook);
		playListWrap = $('<ul></ul>').addClass('playlist').appendTo(scrollWrap);

		$.each(videoList, function(index) {
			var onClass = (index == 0) ? 'on' : '';
			var cntText = (videoList.eq(index).attr('dir') == undefined) ? '<strong>' + videoList.eq(index).attr('title') + '</strong>' : '<strong>' + videoList.eq(index).attr('title') + '</strong> <em>/ dir: ' + videoList.eq(index).attr('dir') + '</em>';

			playList[index] = $('<li></li>').addClass(onClass).appendTo(playListWrap);
			playListAnchor = $('<a></a>').appendTo(playList[index]).attr({
				href: '/media/' + category + '/' + artist + '/' + folder + '/' + videoList.eq(index).attr('file_name')
			}).append(cntText).click(function() {
				player.attr({
					src: folder_path + '/' + folder + '/' + videoList.eq(index).attr('file_name')
				});

				playList[oldNum].removeClass('on');
				playList[index].addClass('on');

				if (videoList.eq(index).attr('caption')) {
					caption.html(videoList.eq(index).attr('caption'));
				} else if (videoList.eq(index).attr('title')) {
					caption.html(videoList.eq(index).attr('title'));
				}

				oldNum = index;

				return false;
			});
		});

		$(hook).addClass('video');
		scrollView();
	};

	var scrollView = function() {
		if (scrollWrap.height() >= playListWrap.height()) return;

		scrollWrap.css({ overflow: 'hidden' });

		var scrollBar = $('<span></span>').appendTo(scrollWrap).addClass('scrollbar');

		var scrollUp = $('<span></span>').appendTo(scrollBar).addClass('scroll_down').click(function() {
			var positionY = (playListWrap.css('top') == 'auto') ? 0 : parseInt(playListWrap.css('top'));
			scrollY = parseInt(parseInt(positionY) + playListWrap.find('li').height());

			if (positionY >= 0) return;

			playListWrap.animate({
				top: scrollY + 'px'
			}, 150);
		});

		var scrollDown = $('<span></span>').appendTo(scrollBar).addClass('scroll_up').click(function() {
			var positionY = (playListWrap.css('top') == 'auto') ? 0 : parseInt(playListWrap.css('top'));
			scrollY = parseInt(parseInt(positionY) - playListWrap.find('li').height());

			if (parseInt(playListWrap.height() + scrollY + playListWrap.find('li').height()) <= scrollWrap.height()) return;

			playListWrap.animate({
				top: scrollY + 'px'
			}, 150);
		});
	};
}
