var appfloat = {};

(function(){
	var qplusDLURL = "http://dl_dir.qq.com/qqfile/qq/QQ2011/QQ2011(Q_Plus)_5213.exe";
	var appClass = {
		1 : "娱乐",
		2 : "游戏",
		3 : "生活",
		4 : "旅游",
		5 : "影音",
		6 : "新闻",
		7 : "工具",
		8 : "读书",
		9 : "教育",
		10: "社交",
		//11: "办公",  // maping to 7005
		22: "儿童",
		13: "玄幻奇幻",
		14: "浪漫言情",
		15: "恐怖灵异",
		16: "穿越",
		17: "悬疑",
		18: "科幻游戏",
		19: "言情",
		20: "大神",
		21: "全本",
		23: "热门精选",
		24: "武侠仙侠",
		25: "都市社会",
		26: "历史军事",
		27: "漫画",
		28: "财经",
		29: "音乐",
		30: "电视剧",
		31: "电影",
		32: "综艺",
		33: "动漫",
		34: "合辑",
		35: "学习室",
		36: "动画城",
		37: "游乐宫",
		38: "音乐盒",
		40: "女性",
		41: "个性QQ",
		1001: "短信笑话",
		1002: "星座算命",
		1003: "趣味测试",
		1004: "其他",
		2001: "休闲",
		2002: "儿童",
		2003: "策略",
		2004: "动作",
		2005: "射击",
		2006: "体育",
		2007: "网页游戏",
		3001: "健康",
		3002: "美食",
		3003: "便民",
		3004: "优惠",
		3005: "美容",
		3006: "其他",
		7001: "图片处理",
		7002: "计算器",
		7003: "字典翻译",
		7004: "求职面试",
		7005: "办公",
		7006: "其他",
		8016: "有声读物",
		8017: "杂志",
		9001: "外语",
		9002: "考试",
		9003: "中小学",
		9004: "公开课",
		9005: "儿童",
		9006: "其他"
	};

	function format(t) {
		function _format(n) {
			return n < 10 ? ['0', n].join('') : n;
		};
		function _lformat(n) {
			return (n > 60 && n < 1900) ? n + 1900 : n;
		};
		
		var _date = t ? new Date(t * 1000) : new Date(), _year = _lformat(_date.getYear());
		var format = 'YYYY-MM-dd';

		return format.replace('YYYY', _year)
			.replace('MM',_format(_date.getMonth() + 1))
			.replace('dd', _format(_date.getDate()))
			.replace('hh',_format(_date.getHours()))
			.replace('mm',_format(_date.getMinutes()))
			.replace('ss',_format(_date.getSeconds()));
	};

	function getHTML(json){
		var data = json.data,
		imgTempl = '<a class="{2}" href="javascript:void(0)"><img src="http://qplus1.idqqimg.com/appinfo/{0}/desc_{1}.png" /></a>',
		img92Templ = '<a class="{2}" href="javascript:void(0)"><img src="http://qplus1.idqqimg.com/appinfo/{0}/desc_{1}_92.png" /></a>',
		descTempl = '<div class="windows_box">\
				<h1>优秀应用</h1>\
				<div class="windows_c">\
					<div class="windows_c_l">\
						<img src="http://qplus1.idqqimg.com/appinfo/{1}/logo_96.png" />\
					</div>\
					<div class="windows_c_r">\
						<h2><a href="{0}" id="experienceButton" class="experienceButton" >下载Q+，立即体验</a>{2}</h2>\
						<p class="windows_c_r_e">类别：{3}&nbsp;&nbsp;&nbsp;&nbsp;上线：{4}&nbsp;&nbsp;&nbsp;&nbsp;版本：{5}&nbsp;&nbsp;&nbsp;&nbsp;开发商：{6}</p>\
						<div class="windows_c_r_c">\
							<p id="textSummary" class="textSummary">{7}</p>\
							<div id="slideImg" class="slideImg">\
								<div class="pic">{8}</div>\
								<div class="thumb">{9}</div>\
							</div>\
						</div>\
					</div>\
				</div>\
			</div>',
		imgStr = [], img92Str = [];

		for (var i = 0; i < data.tpicn; i++) {
			imgStr.push(String.format(imgTempl, data.id, i+1, (i==0 ? "cur" : "")));
			img92Str.push(String.format(img92Templ, data.id, i+1, (i==0 ? "cur" : "")));
		}

		// maping 11 to 7005
		if (data.t[0] == 11) {
			data.t[0] = 7005;
		}

		return String.format(descTempl,
			qplusDLURL,
			data.id,
			data.n,
			appClass[data.t[0]],
			format(data.olt),
			data.ver,
			data.dev,
			data.info,
			imgStr.join(""),
			img92Str.join("")
		);
	};

	function doSummary(){
		$('#textSummary').each(function(){
			var html = $(this).html();
			//把评论div的内容替换成三个部分：简短评论内容、完整评论内容和查看内容的超链接
			if(html.length > 90){
				$(this).html('<span class="textShort">'+html.substring(0,90)+'...</span><span class="textAll">'+html+'</span><a class="moreText">查看更多》</a>');
			}else{
				return false;
			};
		});

		$('#textSummary .moreText').click(function(){
			//把不需要显示的内容隐藏，需要显示的内容展开。
			$(this).parent().children('.textAll,.textShort').toggle();
			
			var defaultText = '查看更多》', replaceText = '收起更多》', html = $(this).html();
			$(this).html(html == defaultText ? replaceText : defaultText);
		});
	};

	_intervalID = null;
	function slideImg(){
		var defaultOpts = {
			interval: 3000,
			fadeInTime: 200,
			fadeOutTime: 300
		};
		var _titles = $("#slideImg .thumb a"),
			_bodies = $("#slideImg .pic a"),
			_count = _titles.length,
			_last = 0,
			_current = 0,
			undefined;
			
		var lists = [
			function () {
				slide();
				_titles.dequeue("MyJob");
			}
		];

		function stop() {
			window.clearInterval(_intervalID);
		}

		function slide(opts) {
			_last = _current;

			if ($.isPlainObject(opts) && opts.current != undefined) {
				_current = opts.current;
			} else {
				_current = (_current >= (_count - 1)) ? 0 : ++_current;
			}

			_titles.eq(_last).removeClass("cur");
			_titles.eq(_current).addClass("cur");

			_bodies.eq(_last).removeClass("cur");
			_bodies.eq(_current).addClass("cur");
		}

		function go() {
			stop();
			_intervalID = window.setInterval(slide, defaultOpts.interval);
		}

		_titles.hover(function() {
			stop();
			!$(this).hasClass('cur') && slide({ current: $.inArray(this, _titles) });
		}, go);

		go();
	};

	function stopSlideImg() {
		window.clearInterval(_intervalID);
	}

	appfloat.getHTML = getHTML;
	appfloat.doSummary = doSummary;
	appfloat.slideImg = slideImg;
	appfloat.stopSlideImg = stopSlideImg;
})();

