﻿/*
* 通用文件
*
* 这不是一个免费程序
*
* @开发时间：2006年9月22日 15:59
* @开发者：zx
* @版本：1.0
* @版权：张旭持有
*/

/*出错状态*/
var ERROR_PROGRAME = 1;
/*往左填充*/
var STR_PAD_LEFT = 1;
/*两边填充*/
var STR_PAD_BOTH = 2;
/*往右填充*/
var STR_PAD_RIGHT = 3;

function $(id)
{
	var id = id || '';
	return(document.getElementById(id));
};

function $GET( m )
{
	var s = window.location.toString( );
	var m = m + '=' || '';
	return(s.substr(s.indexOf(m) + m.length));
};

function realPath(e)
{
	var p = new Object( );
	p.left = 0;
	p.top = 0;
	
	while(e != null)
	{
		p.left += e.offsetLeft;
		p.top += e.offsetTop;
		e = e.offsetParent;
	}
	
	return(p);
};

/*字符补全(原始字符, 总长度, 填充字符, 补充位置)*/
function strPad(org, length, fill, pos)
{
	var org = org || '';
	var fillLength = length || 0;
	var fill = fill || '&nbsp;';
	var position = pos || STR_PAD_RIGHT;
	var orgLength = org.length;
	
	if(fillLength > orgLength)
	{
		var padLength = fillLength - orgLength;
		
		switch(position)
		{
			case STR_PAD_LEFT:
				return(strRepeat(fill, padLength) + org);
			case STR_PAD_BOTH:
				var leftLength = Math.floor(padLength / 2);
				var rightLength = padLength - leftLength;
				return(strRepeat(fill, leftLength) + org + strRepeat(fill, rightLength));
			case STR_PAD_RIGHT:
				return(org + strRepeat(fill, padLength));
		}
	}
	else
	{
		return(org);
	}
};

/*重复字符(字符, 重复次数)*/
function strRepeat(char, times)
{
	var char = char || '';
	var repeatTimes = times || 0;
	var repeatStr = char;
	
	while(--repeatTimes)
	{
		repeatStr += char;
	}
	
	return(repeatStr);
};

/*报错(标题, 内容)*/
function message(title, content)
{
	var title = title || '';
	var content = content || '';
	
	if(typeof('zxmessage') == 'object')
	{
		zxmessage.alert(title, content);
	}
	else
	{
		alert(content);
	}
};

function isSameStr(var1, var2)
{
	return(var1 == var2 ? true : false);
};

function isSameNumber(number1, number2)
{
	return(number1 == number2 ? true : false);
};

function setClass(object, className)
{
	if(className)
	{
		if(isSameStr(typeof(object), 'object'))
		{
			object.className = className;
			object.setAttribute('class', className);
		}
	}

	return(false);
};

function varNotNull(smth)
{
	return(smth ? true : false);
};

function objectNotNull(obj)
{
	return(obj && isSameStr(typeof(obj), 'object') ? true : false);
};

function loadScript(id, src)
{
	var url = src || '';
	var id = id || '';
	
	if(url)
	{
		var script = $(id + 'Script');
		
		if(!script)
		{
			var script = createScript(id, url);
		}
		
		script.src = url;
	}
};

function createScript(id, src)
{
	var id = id || '';
	var url = src || '';
	var script = document.createElement('script');
	document.getElementsByTagName('head')[0].appendChild(script);
	script.id = id + 'Script';
	script.src = url;
	return(script);
};

function loadCss(id, src)
{
	var url = src || '';
	var id = id || '';
	
	if(url)
	{
		var css = $(id + 'Css');
		
		if(!css)
		{
			css = createCss(id, css);
		}
		
		css.href = url;
	}
};

function createCss(id, src)
{
	var url = src || '';
	var id = id || '';
	var css = document.createElement('link');
	css.id = id + 'Css';
	css.setAttribute('rel', 'stylesheet');
	css.setAttribute('type', 'text/css');
	css.setAttribute('onerror', 'createCss(' + id + ', "' + url + '")');
	document.getElementsByTagName('head')[0].appendChild(css);
	return(css);
};

function bindCookie(name, value)
{
	var date = new Date( );
	var time = date.getTime( ) + 3600 * 24 * 30 * 12;
	date = new Date(time);
	document.cookie = name + '=' + value + '; path=/; expires=' + date.toGMTString( );
};

function dropCookie(name)
{
	var date = new Date( );
	document.cookie = name + '=; path=/; expires=' + date.toGMTString( );
};

function readCookie( )
{
	var change = / /g;
	var cookie = document.cookie.replace(change, '');
	return(cookie.split(';'));
};

function classChange(command, name)
{
	var className = name || '';
	var commandChange = command || '';
	
	if(className && commandChange)
	{
		setClass(commandChange, className);
	}
};

function windowOpen(url, scrollbar, height, width, full)
{
	var href = url || '';
	var scrollbar = scrollbar || 0;
	var height = height || 200;
	var width = width || 100;
	var full = full || 0;
	
	if(href)
	{
		window.open(href, null, 'height=' + height + ',width=' + width + ',fullscreen=' + full + ',status=0,toolbar=0,menubar=0,location=0,resizable=no,top=0,left=0,scrollbars=' + scrollbar);
	}
};

function entry(e, handle)
{
	var e = e || event;
	
	if(isSameNumber(e.keyCode, 13))
	{
		var element = e.target || e.srcElement;
		element.blur( );
		eval(handle + '(element)');
	}
};

function nodeElement(obj)
{
	var element = obj || new Object( );
	return(isSameNumber(element.nodeType, 1));
};

function windowResize(w, h)
{
	var width = w || 1;
	var height = h || 1;
	window.resizeTo(width, height);
};

function removeSelectOption(obj)
{
	var selectObj = obj || new Object( );
	
	while(selectObj.childNodes.length)
	{
		selectObj.removeChild(selectObj.childNodes[0]);
	}
};

function base16Encode(number)
{
	var number = number || 0x000000;
	
	if(number)
	{
		var str = '';
		
		while(number)
		{
			var last = number % 16;
			str = base16Char(last) + str;
			number = Math.floor(number / 16);
		}
		
		return(strPad(str, 6, '0', STR_PAD_LEFT));
	}
	else
	{
		return('000000');
	}
};

function base16Char(number)
{
	if(number > 10)
	{
		var char = new Array( );
		char.push('A');
		char.push('B');
		char.push('C');
		char.push('D');
		char.push('E');
		char.push('F');
		return(char[number % 10]);
	}
	else
	{
		return(number);
	}
};

function visibility(tagName, show, target)
{
	var tagName = tagName || '';
	var show = show ? 'visible' : 'hidden';
	var target = target || document;
	var element = target.getElementsByTagName(tagName);
	
	for(var i = 0; i < element.length; i++)
	{
		element[i].style.visibility = show;
	}
};

/*返回失败函数*/
function returnFalse( )
{
	return(false);
};

var browser =
{
	isIE: navigator.appName.indexOf('Microsoft Internet Explorer') != -1 ? true : false,
	pageY: 0,
	pageX: 0,
	addFavorite: function(url, title)
	{
		var url = url || 'http://www.hoyong.net';
		var title = title || 'HoYong';
		
		if(browser.isIE)
		{
			window.external.AddFavorite(url, title);
		}
		else
		{
			window.sidebar.addPanel(title, url, '');
		}
	}
};

function fixPng(img, blank)
{
	var img = img || new Object( );
	var blank = blank || 'blank.gif';
	var arVersion = navigator.appVersion.split("MSIE");
	var version = parseFloat(arVersion[1]);
	
	if((version >= 5.5 && version < 7.0) && (document.body.filters))
	{
		var imgName = img.src.toUpperCase( );
		
		if (imgName.indexOf(".PNG") > 0)
		{ 
        	var width = img.width; 
        	var height = img.height; 
        	var sizingMethod = (img.className.toLowerCase().indexOf("scale") >= 0)? 'scale' : 'image'; 
        	img.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src.replace('%23', '%2523').replace("'", "%27") + "', sizingMethod='" + sizingMethod + "')"; 
        	img.src = blank;
			mce_src = blank; 
        	img.width = width; 
        	img.height = height; 
        }
	} 
};

/*
* 全局事件控件
*
* 这不是一个免费程序
*
* @开发时间：2006年9月22日 15:59
* @开发者：zx
* @版本：1.0
* @版权：张旭持有
*/

var documentEvent =
{
	func: new Object(),
	enable: true,
	regEvent: function (func, e)
	{
		e = e.toLowerCase();
		
		if(!documentEvent.func[e])
		{
			documentEvent.func[e] = new Array();
		}
		
		documentEvent.func[e].push(func);
	},
	onScroll: function(e)
	{
		if(browser.isIE)
		{
			browser.pageY = document.documentElement.scrollTop;
			browser.pageX = document.documentElement.scrollLeft;
		}
		else
		{
			browser.pageY = window.pageYOffset;
			browser.pageX = window.pageXOffset;
		}
		
		if(!documentEvent.func['onscroll'] || !documentEvent.enable)
		{
			return(true);
		}
		
		for(var i = 0 ; i < documentEvent.func['onscroll'].length ; i++)
		{
			eval(documentEvent.func['onscroll'][i]+'(e)');
		}
		
		return(true);
	},
	onResize: function(e)
	{
		if(!documentEvent.func['onresize'] || !documentEvent.enable)
		{
			return(true);
		}
		
		for(var i = 0 ; i < documentEvent.func['onresize'].length ; i++)
		{
			eval(documentEvent.func['onresize'][i]+'(e)');
		}
		
		return(true);
	},
	onMouseDown: function (e)
	{
		if(!documentEvent.func['onmousedown'] || !documentEvent.enable)
		{
			return(true);
		}
		
		for(var i = 0 ; i < documentEvent.func['onmousedown'].length ; i++)
		{
			eval(documentEvent.func['onmousedown'][i]+'(e)');
		}
		
		return(true);
	},
	onMouseMove: function (e)
	{
		if(!documentEvent.func['onmousemove'] || !documentEvent.enable)
		{
			return(true);
		}
		
		for(var i = 0 ; i < documentEvent.func['onmousemove'].length ; i++)
		{
			eval(documentEvent.func['onmousemove'][i]+'(e)');
		}
		
		return(true);
	},
	onMouseUp: function (e)
	{
		if(!documentEvent.func['onmouseup'] || !documentEvent.enable)
		{
			return(true);
		}
		
		for(var i = 0 ; i < documentEvent.func['onmouseup'].length ; i++)
		{
			eval(documentEvent.func['onmouseup'][i]+'(e)');
		}
		
		return(true);
	},
	onMouseOut: function (e)
	{
		try
		{
			if(!documentEvent.func['onmouseout'] || !documentEvent.enable)
			{
				return(true);
			}
		}
		catch(e)
		{
			return(true);
		}
		
		for(var i = 0 ; i < documentEvent.func['onmouseout'].length ; i++)
		{
			eval(documentEvent.func['onmouseout'][i]+'(e)');
		}

		return(true);
	},
	onMouseOver: function (e)
	{
		if(!documentEvent.func['onmouseover'] || !documentEvent.enable)
		{
			return(true);
		}
		
		for(var i = 0 ; i < documentEvent.func['onmouseover'].length ; i++)
		{
			eval(documentEvent.func['onmouseover'][i]+'(e)');
		}
		
		return(true);
	},
	onContextMenu: function (e)
	{
		if(!documentEvent.func['oncontextmenu'] || !documentEvent.enable)
		{
			return(true);
		}
		
		for(var i = 0 ; i < documentEvent.func['oncontextmenu'].length ; i++)
		{
			eval(documentEvent.func['oncontextmenu'][i]+'(e)');
		}

		return(false);
	},
	onClick: function (e)
	{
		if(!documentEvent.func['onclick'] || !documentEvent.enable)
		{
			return(true);
		}
		
		for(var i = 0 ; i < documentEvent.func['onclick'].length ; i++)
		{
			eval(documentEvent.func['onclick'][i]+'(e)');
		}
		
		return(true);
	},
	enabled: function (e)
	{
		documentEvent.enable = e;
	}
};

function loaded( )
{
	document.body.removeChild($('loading'));
};

document.onmousedown = documentEvent.onMouseDown;
document.onmousemove = documentEvent.onMouseMove;
document.onmouseup = documentEvent.onMouseUp;
document.oncontextmenu = documentEvent.onContextMenu;
document.onmouseover = documentEvent.onMouseOver;
document.onmouseout = documentEvent.onMouseOut;
document.onclick = documentEvent.onClick;
window.onscroll = documentEvent.onScroll;
window.onresize = documentEvent.onResize;