/*
 * @Detail: E-business javascript lib
 */

var idSeed = 0,
ua = navigator.userAgent.toLowerCase(),
check = function(r) {
	return r.test(ua);
},
isOpera = check(/opera/),
isChrome = check(/chrome/),
isWebKit = check(/webkit/),
isSafari = ! isChrome && check(/safari/),
isSafari3 = isSafari && check(/version\/3/),
isSafari4 = isSafari && check(/version\/4/),
isIE = ! isOpera && check(/msie/),
isIE7 = isIE && check(/msie 7/),
isIE8 = isIE && check(/msie 8/),
isIE6 = isIE && ! isIE7 && ! isIE8,
isGecko = ! isWebKit && check(/gecko/),
isGecko3 = isGecko && check(/rv:1\.9/),
isWindows = check(/windows|win32/),
isMac = check(/macintosh|mac os x/),
isLinux = check(/linux/);

// namespace
var ebl = {};

ebl.tpl = ebl.tpl || {

	// true = 前端正在开发.    false = 前端开发完成
	_DEBUG:  false,
	// 配置文件, 包含<title> 和 域名等信息
	_CONFIG: 'public/config.xml',
	// 头部公共文件
	_HEADERFILE: 'public/body_header.html',
	// 底部公共文件
	_FOTTERFILE: 'public/body_footer.html',
	// 首页条件
	isHome: document.location.href.indexOf('index') != - 1 || document.location.href.substring(document.location.href.length - 1, document.location.href.length) == '/',

	// 当前URL
	// set mark
	_hd: document.getElementsByTagName('head')[0],
	_te: document.getElementsByTagName('title')[0],
	_bd: document.getElementsByTagName('body')[0],
	_bdHd: document.getElementById('bd-hd'),
	_bdFr: document.getElementById('footer'),

	/* 
	 * @Date: 2009-11-11 星期三
	 * @Detail: 获取远程文件.    url = 文件路径.    callback = 回调函数.
	 */
	sendRequest: function(url, callback, postData) {

		// 创建XMLHTTP 对象
		createXMLHTTPObject = function() {

			// XMLHTTP 对象
			var XMLHttpFactories = [
			function() {
				return new XMLHttpRequest();
			},
			function() {
				return new ActiveXObject('Msxml2.XMLHTTP');
			},
			function() {
				return new ActiveXObject('Msxml3.XMLHTTP');
			},
			function() {
				return new ActiveXObject('Microsoft.XMLHTTP');
			}];

			var xmlhttp = false;

			for (var i = 0; i < XMLHttpFactories.length; i++) {
				try {
					xmlhttp = XMLHttpFactories[i]();
				}
				catch(e) {
					continue;
				}
				break;
			}

			return xmlhttp;
		};

		var req = createXMLHTTPObject();
		if (!req) return;
		var method = (postData) ? "POST": "GET";
		req.open(method, url, true);
		req.setRequestHeader('User-Agent', 'XMLHTTP/1.0');

		if (postData) req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		req.onreadystatechange = function() {
			if (req.readyState != 4) return;
			if (req.status != 200 && req.status != 304) {
				alert('HTTP error ' + req.status);

				return;

			}
			callback(req);

		};
		if (req.readyState == 4) return;
		req.send(postData);

	},

	/*
	 * @Date: 2009-11-11 星期三
	 * @Detail: 设置标记
	 */
	setMark: function() {

		formatBody = function(req) {
			var configXML = req.responseXML;

			var _title = configXML.getElementsByTagName('title')[0].firstChild.nodeValue;
			var _domain = configXML.getElementsByTagName('domain')[0].firstChild.nodeValue;
			var _domainSuffix = configXML.getElementsByTagName('domainSuffix')[0].firstChild.nodeValue;

			// 更改 <title>
			if (ebl.tpl._DEBUG) isIE ? ebl.tpl_te = _title: ebl.tpl._te.firstChild.nodeValue = _title;

			// 给 <body> 添加以域名为开头的 class
			ebl.tpl._bd.className = _domain + '_public ' + _domain + '_page';

			// 判断当前页是否为首页
			if (ebl.tpl.isHome) ebl.tpl._bd.className = ebl.tpl._bd.className.replace('page', 'home');

			// 浏览器检测
			var cls = [' ', isIE ? "ebl_ie " + (isIE6 ? 'ebl_ie6': (isIE7 ? 'ebl_ie7': 'ebl_ie8')) : isGecko ? "ebl_gecko " + ('ebl_gecko3') : isOpera ? "ebl_opera": isWebKit ? "ebl_webkit": ""];

			ebl.tpl._bd.className += cls.join(' ');

			ebl.tpl._bd.id = 'www-' + _domain + '-' + _domainSuffix;

			// 删除<body src="">
			ebl.tpl._bd.removeAttribute('src');

		};

		if (this._DEBUG) {
			// 获取配置文件(public/config.xml)
			this.sendRequest(this._CONFIG, formatBody);

			if(ebl.tpl._bdHd){
				// 获取 <body> 头部内容(public/body_header.html)
				this.sendRequest(ebl.tpl._HEADERFILE, function(req) {
					ebl.tpl._bdHd.innerHTML = req.responseText;
				});
			}

			if(ebl.tpl._bdFr){
				// 获取 <body> 底部内容(public/body_footer.html)
				this.sendRequest(ebl.tpl._FOTTERFILE, function(req) {
					ebl.tpl._bdFr.innerHTML = req.responseText;
				});
			}

			
		}
	},


///
	
	/*
	 * @Date: 11:39 2009-11-12 星期四
	 * @Detail: 添加 <script> 标签.    scriptSrc = 脚本地址.
	 */
	loadScript: function(scriptSrc) {
		var d = new Date;
		var s = document.createElement('script');

		s.setAttribute('src', scriptSrc + '?v=' + d.getMilliseconds());
		s.setAttribute('type', 'text/javascript');

		// 添加至 <body>
		this._bd.appendChild(s);
	}
};

ebl.widget = ebl.widget || {

	// 获取单个元素或元素集合
	$: function() {
		var elements = new Array();

		for (var i = 0; i < arguments.length; i++) {
			var element = arguments[i];

			// 若参数类型是字符串,就假设它是一个id
			if (typeof element === 'string') element = document.getElementById(element);

			// 若只提供了一个参数, 立即返回这个参数
			if (arguments.length == 1) return element;

			// 否则将参数添加到数组
			elements.push(element);
		}

		// 返回数组
		return elements;
	},

	/* 
	 * @Name: navigation()    导航菜单
	 * @Date: 11:17 2009/08/15 周六
	 * @Update: 11:20 2009/10/09 周五
	 * @Detail: navObj = 最外层容器, iA = 一级栏目, iB = 二级栏目
	 */
	navigation: function(navObj, iA, iB) {
		if (this.$(navObj)) {
			// 一级栏目
			var firstItem = this.$(navObj).getElementsByTagName(iA);
			// 一级栏目链接的 class
			var original_class = firstItem[0].getElementsByTagName('a')[0].className;

			// 一级栏目链接
			var first_link = new Array;

			for (var i = 0; i < firstItem.length; i++) {

				// 获取一级栏目链接
				if (firstItem[i].className.indexOf('first') !== - 1) first_link.push(firstItem[i].getElementsByTagName('a')[0]);

				// 移入
				firstItem[i].onmouseover = function() {
					if (this.getElementsByTagName(iB)[0]) {
						this.getElementsByTagName('a')[0].className += '_hover';
						this.className = this.className.replace('off', 'on');
					}
				};

				// 移出
				firstItem[i].onmouseout = function() {
					if (this.getElementsByTagName(iB)[0]) {
						this.getElementsByTagName('a')[0].className = this.getElementsByTagName('a')[0].className.replace('_hover', '');
						this.className = this.className.replace('on', 'off');
					}
				};
			}

			// 给一级栏目链接加上 class
			for (var z = 0; z < first_link.length; z++) {
				first_link[z].className += ' first_link' + z;
			}

		}
	},

	/*
	 * @Name: searchText()  <input> 文字显示或隐藏
	 * @Author: xbei
	 * @CASE: hzdtjx.com, ppxww.com
	 * @Date: 11:12 2009/08/14 周五
	 * @Update: 17:31 2009-12-02 星期三
	 * @Detail: o = input id
	 * @Detail: t = input value
	 */
	searchText: function(o, t) {
		if(this.$(o)){
			var n = ' ' + this.$(o).className + '_remind';

			this.$(o).value = t;
			this.$(o).className += n;

			this.$(o).onfocus = function() {
				this.value = '';
				this.className = this.className.replace(n,' ');
			};

			this.$(o).onblur = function() {
				this.value = t;
				this.className = this.className.replace(' ',n);
			};
		}
	},

	/*
	 * @Name: reStr() 替换字符串中的重复项
	 * @Author: xbei
	 * @Date: 15:39 2009/09/02 周三
	 */
	reStr: function(s) {
		var reg = /(.)(?=.*\1)/ig;
		return s.replace(reg, "");
		//alert(s.replace(reg,""));
	},

	/*
	 * @Name: addBookmarks()  加入收藏
	 * @Author: xbei
	 * @CASE: urchoice.com.cn
	 * @Date: 09:32 2009/07/24 周五
	 * @Update: 16:36 2009/11/04 周三
	 */
	addBookmarks: function(o) {
		var url = window.location.href;
		var title = document.getElementsByTagName('title')[0].innerHTML;

		this.$.onclick = function() {
			if (document.all) window.external.addFavorite(url, title);
			else if (window.sidebar) window.sidebar.addPanel(title, url, "");
		};

	},

	/*
	 * @Name: setHome()  设为首页
	 * @Author: xbei
	 * @CASE: urchoice.com.cn
	 * @Date: 09:32 2009/07/24 周五
	 * @Update: 16:36 2009/11/04 周三
	 */
	setHome: function(o) {
		this.$.onclick = function() {
			if (window.sidebar) alert('选中地址,直接拖至主页按钮即可');
			this.style.behavior = 'url(#default#homepage)';
			this.setHomePage(window.location.href);
			return (false);
		};
	},

	/*
	 * @Name: pageScroll()  页面滚动
	 * @Author: xbei
	 * @CASE: sweetMilkTes
	 * @Date: 09:27 2009/09/07 周一
	 */
	pageScroll: function() {
		var _height = screen.availHeight - 300;
		//$('#EIsmallImgList').css({top:_height});
		$(window).scroll(function() {
			$('#qq').css('top', $(document).scrollTop() + 80);
			//$('#EIsmallImgList').css('top', $(document).scrollTop()+_height);
		});
	},

	/* 
	 * @Date: 15:25 2009-12-01 星期二
	 * @Detail: 像素校正
	 * @Detail: s = image src
	 * @Detail: t = top
	 * @Detail: l = left
	 */
	pixelPerfect: function(s, t, l) {
		var i = document.createElement('img');
		i.src = s;
		i.style.position = 'absolute';
		t ? i.style.top = t: i.style.top = 0;
		l ? i.style.left = l: i.style.left = '129px';
		setOp = function(n) {
			i.style.opacity = n;
		};
		/* IE style */
		i.style.filter = 'alpha(Opacity=50)';

		ebl.tpl._bdHd.onclick = function() {
			setOp(0);
			setTimeout('setOp(0.1)', 1000);
			setTimeout('setOp(0.2)', 1050);
			setTimeout('setOp(0.3)', 1100);
			setTimeout('setOp(0.4)', 1150);
			setTimeout('setOp(0.5)', 1200);
			document.getElementsByTagName('body')[0].appendChild(i);
		};
		document.getElementsByTagName('body')[0].ondblclick = function() {
			document.getElementsByTagName('body')[0].removeChild(i);
		};
	}
};

// Run
ebl.tpl.setMark();
ebl.tpl.loadScript('js/main.js');


