function $( void_obj ){
	if( void_obj.tagName )
		return void_obj;
	try{
		return document.getElementById( void_obj );
	}catch( error_e ){
		return alertError( error_e );
	}
};
function $N( str_tagName ){
	return document.getElementsByTagName( str_tagName );
}
function $CE( str_string , str_cssText ){
	var obj_object = document.createElement( str_string );
	if( str_cssText && obj_object ){
		try{
			obj_object.style.cssText = str_cssText;
		}catch( error_e ){}
	}
	return obj_object;
}
function getProperty( obj_object ){
	var str_string = '';
	for( var str_name in obj_object )
		str_string += str_name + ':' + obj_object[str_name] + "<br />\n";
	return str_string;
}
function alertError( error_e ){
	//alert( getProperty( error_e ) );
	return false;
}
window.onerror = function(){
	var str_string = '';
	str_string += 'message:' + arguments[0] + ";\n";
	str_string += 'line:' + arguments[2] + ";\n";
	//alert( str_string );
	return true;
}
function zeroFill( int_int , int_length , str_char ){
	var str_string = int_int.toString();
	if( !str_char )
		str_char = '0';
	while( str_string.length < int_length ){
		str_string = str_char + str_string;
	}
	return str_string;
}
function getElementSpace( obj_element ){
	var arr_return = new Object();
	arr_return.left=arr_return.top=0;
	var obj_temp = obj_element;
	while( obj_temp.tagName.toLowerCase() != "body" ) {
		arr_return.left += obj_temp.offsetLeft;
		arr_return.top += obj_temp.offsetTop;
		obj_temp = obj_temp.offsetParent;
	}
	arr_return.bTop = arr_return.top + obj_element.offsetHeight;
	arr_return.bLeft = arr_return.left + obj_element.offsetWidth;
	return arr_return; 
}
function tryThese() {
	var returnValue;
	for (var int_i = 0, length = arguments.length; int_i < length; int_i++) {
		var fun_lambda = arguments[int_i];
		try {
			returnValue = fun_lambda();
			break;
		} catch (e) {}
	}
	return returnValue;
}
function getHttpRequest () {
	return tryThese(
	  function() {return new ActiveXObject('Microsoft.XMLHTTP')},
	  function() {return new XMLHttpRequest()},
	  function() {return new ActiveXObject('Msxml2.XMLHTTP')}
	) || false;
}
function getHttpResponse( str_src , str_parameters , bool_unasync , fun_onready ){
	var obj_request = getHttpRequest();
	var str_contentType = 'application/x-www-form-urlencoded';
	if( !bool_unasync ){
		obj_request.onreadystatechange = function(){
			try{
			if( obj_request.readyState == 4 ){
				if( obj_request.status && obj_request.status != 200 ){
					alert( obj_request.status + '错误' );
					return false;
				}
				fun_onready( obj_request );
			}
			}catch( error_e ){ alertError( error_e ) }
		};
		obj_request.open( 'POST' , str_src , true );
	}else{
		obj_request.open( 'POST' , str_src , false );
	}
	obj_request.setRequestHeader( "Content-Type" , str_contentType );
	obj_request.send( str_parameters );
	if( bool_unasync )
		fun_onready( obj_request );
}
function getXMLNodeText( obj_node ){
	try{
		return obj_node.text ? obj_node.text : obj_node.textContent;
	}catch( error_e ){
		return false;
	}
}
function checkXMLResponse( obj_request , fun_onError ){
	try{
		var obj_requestXML = obj_request.responseXML;
		var xmlNode_sysAlertLv = obj_requestXML.getElementsByTagName( 'sysAlertLv' );
		if( getXMLNodeText( xmlNode_sysAlertLv[0] ) > 2 ){
			var xmlNode_strMsg = obj_requestXML.getElementsByTagName( 'str_msg' );
			var str_message = '';
			for( var int_i = 0 ; int_i < xmlNode_strMsg.length ; int_i ++ )
				str_message += getXMLNodeText( xmlNode_strMsg[int_i] ) + "\n";
			if( !fun_onError )
				alert( str_message );
			else
				fun_onError( str_message );
			return false;
		}
	}catch( error_e ){
		alert( obj_request.responseText );
		return false;
	}
	return true;
}
function setCutPage( str_objectID ){
	try{
		var int_showPageNumber = 7;
		var str_parameterName = 'page';
		var obj_box = $( str_objectID );
		var int_nowPage = parseInt( $( 'int_' + str_objectID + 'NowPage' ).value );
		var int_countPage = parseInt( $( 'int_' + str_objectID + 'CountPage' ).value );
		if( int_countPage > int_showPageNumber && int_countPage - int_nowPage < ( int_showPageNumber - 1 ) / 2 ){
			var int_nowStartPage = int_countPage - int_showPageNumber + 1;
		}else{
			var int_nowStartPage = int_nowPage - ( int_showPageNumber - 1 ) / 2;
		}
		if( int_nowStartPage < 1 || int_countPage <= int_showPageNumber ){
			var int_nowStartPage = 1;
		}
		var str_selfUrl = window.location.toString();
		var reg_para = new RegExp( '&?' + str_parameterName + '=[0-9]*' );
		if( reg_para.exec( str_selfUrl ) ){
			str_selfUrl = str_selfUrl.replace( reg_para , '' );
		}else{
			reg_para = new RegExp( '\\?' );
			if( !reg_para.exec( str_selfUrl ) )
				str_selfUrl += '?';
		}
		if( int_nowStartPage > 1 ){
			var obj_pageLink = getCutPageChild( '|<' , str_selfUrl + '&' + str_parameterName + '=1' );
			obj_box.appendChild( obj_pageLink );
			var obj_pageLink = getCutPageChild( '<<' , str_selfUrl + '&' + str_parameterName + '=' + ( int_nowPage - 1 ) );
			obj_box.appendChild( obj_pageLink );
		}
		for( var int_i = int_nowStartPage ; int_i <= int_nowStartPage + int_showPageNumber - 1 && int_i <= int_countPage ; int_i ++ ){
			if( int_i == int_nowPage )
				var obj_pageLink = getCutPageChild( int_i )
			else
				var obj_pageLink = getCutPageChild( int_i , str_selfUrl + '&' + str_parameterName + '=' + int_i )
			obj_box.appendChild( obj_pageLink );
		}
		if( int_nowPage + ( int_showPageNumber - 1 ) / 2 < int_countPage && int_countPage > int_showPageNumber ){
			var obj_pageLink = getCutPageChild( '>>' , str_selfUrl + '&' + str_parameterName + '=' + ( int_nowPage + 1 ) );
			obj_box.appendChild( obj_pageLink );
			var obj_pageLink = getCutPageChild( '>|' , str_selfUrl + '&' + str_parameterName + '=' + int_countPage );
			obj_box.appendChild( obj_pageLink );
		}
	}catch( error_e ){}
}
function getCutPageChild( int_page , str_url ){
	var obj_button = $CE( 'input' , 'border:none;background-color:#bdf;margin:0 1px;line-height:18px;border-top:1px solid #def;border-left:1px solid #def;border-right:1px solid #333;border-bottom:1px solid #333;' );
	obj_button.type = 'button';
	obj_button.value = int_page;
	if( str_url ){
		obj_button.onmouseover = function(){
			this.style.backgroundColor = '#eff';
		}
		obj_button.onmouseout = function(){
			this.style.backgroundColor = '#bdf';
		}
		obj_button.onclick = function(){
			window.location = str_url;
		}
	}else{
		obj_button.style.color = '#933';
	}
	return obj_button;
}
addEventHandler = function( obj_target , str_eventType , fun_handler ){
	if( obj_target.addEventListener )
		obj_target.addEventListener( str_eventType , fun_handler , false );
	else if( obj_target.attachEvent )
		obj_target.attachEvent( 'on' + str_eventType , fun_handler );
	else
		obj_target['on' + str_eventType] = null;
}
removeEventHandler = function( obj_target , str_eventType , fun_handler ){
	if( obj_target.removeEventListener )
		obj_target.removeEventListener( str_eventType , fun_handler , false );
	else if( obj_target.detachEvent )
		obj_target.detachEvent( 'on' + str_eventType , fun_handler );
	else
		obj_target['on' + str_eventType] = null;
}
function initializeFocus(){
	try{
		var obj_form = $N( 'form' )[0];
		var int_length = obj_form.length;
		for( var int_i = 0 ; int_i < int_length ; int_i ++ ){
			if( obj_form[int_i].type && obj_form[int_i].type.toLowerCase() == 'text' ){
				obj_form[int_i].focus();
				return;
			}
		}
	}catch( error_e ){}
}
function transUrlParameter( str_key , str_value , str_url ){
	if( !str_url )
		str_url = window.location.toString();
	var reg_para = new RegExp( '&?' + str_key + '=[^&]*' );
	if( reg_para.exec( str_url ) ){
		str_url = str_url.replace( reg_para , '' );
	}else{
		reg_para = new RegExp( '\\?' );
		if( !reg_para.exec( str_url ) )
			str_url += '?';
	}
	return str_url += '&' + str_key + '=' + str_value;
}
addEventHandler( window , 'load' , initializeFocus );
addEventHandler( window , 'load' , function(){ if( $('cutPage') ) setCutPage( 'cutPage' ); } );
function checkForm( str_formID ){
	var obj_form = $( str_formID );
	var int_fromLength = obj_form.length;
	for( var int_i = 0 ; int_i < int_fromLength ; int_i ++ ){
		var reg_string = obj_form.elements[int_i].getAttribute( 'expression' );
		var str_tagNote = obj_form.elements[int_i].getAttribute( 'tagNote' );
		if( reg_string ){
			reg_expression = new RegExp('^expression:' , 'i');
			reg_expression.ignoreCase = true;
			if( reg_expression.exec( reg_string ) )
				reg_string = eval( reg_string.substr(11) );
			reg_string = new RegExp( reg_string , 'i' );
			if( !reg_string.exec( obj_form.elements[int_i].value ) ){
				if( !obj_form.elements[int_i].value )
					alert( str_tagNote + ' is required' );
				else
					alert( str_tagNote + ' is invalid or format error.' );
				obj_form.elements[int_i].focus();
				return false;
			}
		}
		var int_maxLength = obj_form.elements[int_i].getAttribute( 'maxlength' );
		if( int_maxLength ){
			if( obj_form.elements[int_i].value.replace( /[^\x00-\xff]/g , "**" ).length > int_maxLength ){
				alert( 'Data length must less then ' + int_maxLength + ' of ' + str_tagNote );
				obj_form.elements[int_i].focus();
				return false;
			}
		}
	}
	return true;
}
