// JavaScript Document
/*******************************
js code start 
 prototype:v1.31
 
 
*/
var Prototype = {
  Version: '1.3.1',
  emptyFunction: function() {}
}

var Class = {
  create: function() {
    return function() { 
      this.initialize.apply(this, arguments);
    }
  }
}

var Abstract = new Object();

Object.extend = function(destination, source) {
  for (property in source) {
    destination[property] = source[property];
  }
  return destination;
}

Object.prototype.extend = function(object) {
  return Object.extend.apply(this, [this, object]);
}

Function.prototype.bind = function(object) {
  var __method = this;
  return function() {
    __method.apply(object, arguments);
  }
}

Function.prototype.bindAsEventListener = function(object) {
  var __method = this;
  return function(event) {
    __method.call(object, event || window.event);
  }
}

Number.prototype.toColorPart = function() {
  var digits = this.toString(16);
  if (this < 16) return '0' + digits;
  return digits;
}

var Try = {
  these: function() {
    var returnValue;

    for (var i = 0; i < arguments.length; i++) {
      var lambda = arguments[i];
      try {
        returnValue = lambda();
        break;
      } catch (e) {}
    }

    return returnValue;
  }
}

/*--------------------------------------------------------------------------*/

var PeriodicalExecuter = Class.create();
PeriodicalExecuter.prototype = {
  initialize: function(callback, frequency) {
    this.callback = callback;
    this.frequency = frequency;
    this.currentlyExecuting = false;

    this.registerCallback();
  },

  registerCallback: function() {
    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
  },

  onTimerEvent: function() {
    if (!this.currentlyExecuting) {
      try { 
        this.currentlyExecuting = true;
        this.callback(); 
      } finally { 
        this.currentlyExecuting = false;
      }
    }
  }
}

/*--------------------------------------------------------------------------*/
function $() { 
	var elements = new Array(); 
	for (var i = 0; i < arguments.length; i++) { 
		var element = arguments[i]; 
		if (typeof element == 'string') 
			element = document.getElementById(element); 
		if (arguments.length == 1) 
			return element; 
		elements.push(element); 
	} 
	return elements; 
}

/*--------------------------------------------------------------------------*/
String.prototype.extend({
  stripTags: function() {
    return this.replace(/<\/?[^>]+>/gi, '');
  },

  escapeHTML: function() {
    var div = document.createElement('div');
    var text = document.createTextNode(this);
    div.appendChild(text);
    return div.innerHTML;
  },

  unescapeHTML: function() {
    var div = document.createElement('div');
    div.innerHTML = this.stripTags();
    return div.childNodes[0].nodeValue;
  }
});

/*--------------------------------------------------------------------------*/
var Ajax = {
  getTransport: function() {
    return Try.these(
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
      function() {return new ActiveXObject('Microsoft.XMLHTTP')},
      function() {return new XMLHttpRequest()}
    ) || false;
  }
}

Ajax.Base = function() {};
Ajax.Base.prototype = {
  setOptions: function(options) {
    this.options = {
      method:       'post',
      asynchronous: true,
      parameters:   ''
    }.extend(options || {});
  },

  responseIsSuccess: function() {
    return this.transport.status == undefined
        || this.transport.status == 0 
        || (this.transport.status >= 200 && this.transport.status < 300);
  },

  responseIsFailure: function() {
    return !this.responseIsSuccess();
  }
}

Ajax.Request = Class.create();
Ajax.Request.Events = 
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];

Ajax.Request.prototype = (new Ajax.Base()).extend({
  initialize: function(url, options) {
    this.transport = Ajax.getTransport();
    this.setOptions(options);
    this.request(url);
  },

  request: function(url) {

    var parameters = this.options.parameters || '';
    if (parameters.length > 0) parameters += '&_=';
   
    try {
    	
      if (this.options.method == 'get' && parameters.length > 0)
        url += '?' + parameters;
		
      
      this.transport.open(this.options.method, url,
        this.options.asynchronous);

      if (this.options.asynchronous) {
        this.transport.onreadystatechange = this.onStateChange.bind(this);
        setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10);
      }

      this.setRequestHeaders();
	  
      var body = this.options.postBody ? this.options.postBody : parameters;
      this.transport.send(this.options.method == 'post' ? body : null);

    } catch (e) {
    	
    }
  },

  setRequestHeaders: function() {
    var requestHeaders = 
      ['X-Requested-With', 'XMLHttpRequest',
       'X-Prototype-Version', Prototype.Version];

    if (this.options.method == 'post') {
      requestHeaders.push('Content-type', 
        'application/x-www-form-urlencoded');

      /* Force "Connection: close" for Mozilla browsers to work around
       * a bug where XMLHttpReqeuest sends an incorrect Content-length
       * header. See Mozilla Bugzilla #246651. 
       */
      if (this.transport.overrideMimeType)
        requestHeaders.push('Connection', 'close');
    }

    if (this.options.requestHeaders)
      requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);

    for (var i = 0; i < requestHeaders.length; i += 2)
      this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]);
  },

  onStateChange: function() {
    var readyState = this.transport.readyState;
    if (readyState != 1)
      this.respondToReadyState(this.transport.readyState);
  },

  respondToReadyState: function(readyState) {
    var event = Ajax.Request.Events[readyState];
	var _arguments = this.options['responseArguments'];
	
    if (event == 'Complete')
      (this.options['on' + this.transport.status]
       || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')]
       || Prototype.emptyFunction)(this.transport, _arguments);
	  
    (this.options['on' + event] || Prototype.emptyFunction)(this.transport, _arguments);

    /* Avoid memory leak in MSIE: clean up the oncomplete event handler */
    if (event == 'Complete')
      this.transport.onreadystatechange = Prototype.emptyFunction;
   
  }
});

Ajax.Updater = Class.create();
Ajax.Updater.ScriptFragment = '(?:<script.*?>)((\n|.)*?)(?:<\/script>)';

Ajax.Updater.prototype.extend(Ajax.Request.prototype).extend({
  initialize: function(container, url, options) {
    this.containers = {
      success: container.success ? $(container.success) : $(container),
      failure: container.failure ? $(container.failure) :
        (container.success ? null : $(container))
    }

    this.transport = Ajax.getTransport();
    this.setOptions(options);

    var onComplete = this.options.onComplete || Prototype.emptyFunction;
    this.options.onComplete = (function() {
      this.updateContent();
      onComplete(this.transport);
    }).bind(this);

    this.request(url);
  },

  updateContent: function() {
    var receiver = this.responseIsSuccess() ?
      this.containers.success : this.containers.failure;

    var match    = new RegExp(Ajax.Updater.ScriptFragment, 'img');
    var response = this.transport.responseText.replace(match, '');
    var scripts  = this.transport.responseText.match(match);

    if (receiver) {
      if (this.options.insertion) {
        new this.options.insertion(receiver, response);
      } else {
        receiver.innerHTML = response;
      }
    }

    if (this.responseIsSuccess()) {
      if (this.onComplete)
        setTimeout((function() {this.onComplete(
          this.transport)}).bind(this), 10);
    }

    if (this.options.evalScripts && scripts) {
      match = new RegExp(Ajax.Updater.ScriptFragment, 'im');
      setTimeout((function() {
        for (var i = 0; i < scripts.length; i++)
          eval(scripts[i].match(match)[1]);
      }).bind(this), 10);
    }
  }
});

Ajax.PeriodicalUpdater = Class.create();
Ajax.PeriodicalUpdater.prototype = (new Ajax.Base()).extend({
  initialize: function(container, url, options) {
    this.setOptions(options);
    this.onComplete = this.options.onComplete;

    this.frequency = (this.options.frequency || 2);
    this.decay = 1;

    this.updater = {};
    this.container = container;
    this.url = url;

    this.start();
  },

  start: function() {
    this.options.onComplete = this.updateComplete.bind(this);
    this.onTimerEvent();
  },

  stop: function() {
    this.updater.onComplete = undefined;
    clearTimeout(this.timer);
    (this.onComplete || Ajax.emptyFunction).apply(this, arguments);
  },

  updateComplete: function(request) {
    if (this.options.decay) {
      this.decay = (request.responseText == this.lastText ? 
        this.decay * this.options.decay : 1);

      this.lastText = request.responseText;
    }
    this.timer = setTimeout(this.onTimerEvent.bind(this), 
      this.decay * this.frequency * 1000);
  },

  onTimerEvent: function() {
    this.updater = new Ajax.Updater(this.container, this.url, this.options);
  }
});

/*--------------------------------------------------------------------------*/
document.getElementsByClassName = function(className) { 
	var children = document.getElementsByTagName('*') || document.all; 
	var elements = new Array(); 
	for (var i = 0; i < children.length; i++) { 
		var child = children[i]; 
		var classNames = child.className.split(' '); 
		for (var j = 0; j < classNames.length; j++) { 
			if (classNames[j] == className) { 
				elements.push(child); 
				break; 
			} 
		} 
	} 
	return elements; 
} 

/*--------------------------------------------------------------------------*/
if (!window.Element) {
  var Element = new Object();
}
Object.extend(Element, {
	toggle: function() { 
		for (var i = 0; i < arguments.length; i++) { 
			var element = $(arguments[i]); 
			element.style.display = (element.style.display == 'none' ? '' : 'none'); 
		} 
	}, 
	hide: function() { 
		for (var i = 0; i < arguments.length; i++) { 
			var element = $(arguments[i]); 
			element.style.display = 'none'; 
		} 
	}, 
	show: function() { 
		for (var i = 0; i < arguments.length; i++) { 
			var element = $(arguments[i]); 
			element.style.display = ''; 
		} 
	}, 
	remove: function(element) { 
		element = $(element); 
		element.parentNode.removeChild(element); 
	}, 
	getWidth: function(element) { 
		element = $(element); 
		return element.offsetWidth; 
	},
	getHeight: function(element) { 
		element = $(element); 
		return element.offsetHeight; 
	},
	swapClassName: function(element) {
		element = $(element); 
		for (var i = 1; i < arguments.length; i++) {
			if (element.className == arguments[i]) {
				element.className = (i == arguments.length - 1 ? arguments[1] : arguments[i+1]);
				break;
			}
		}
	},
	getParentElementByTagName: function(element, tagName) {
		element = $(element); 
		while (element.tagName != tagName) {
			element = element.parentNode;
		}
		return element;
	},
	getParentElementByClassName: function(element, _className) {
		element = $(element); 
		while (element.className != _className) {
			element = element.parentNode;
		}
		return element;
	},
	//objPos = Element.getPosition(Obj); objPosLeft = objPos.left; objPosTop = objPos.top;
	getPosition: function(element) {
		for (var sumTop = 0, sumLeft = 0; element != document.body/* && element.tagName != "HTML"*/; sumTop += element.offsetTop, sumLeft += element.offsetLeft, element = element.offsetParent);
		return {left: sumLeft, top: sumTop};
	},
	getChildValueByTagName: function(element, tagName) {
		element = $(element);
		var arr = [];
		var childs = element.getElementsByTagName(tagName);
		for (var i=0; i<childs.length; i++) {
			var c = childs[i];
			if(c.firstChild) {
				if (c.firstChild.nodetype != 1) {
					arr.push(c.firstChild.data);
				}
				else {
					arr.push(null);
				}
			}
			else {
				arr.push('');
			}
		}
		return arr;
	}
});

/*--------------------------------------------------------------------------*/

var Form = {
  serialize: function(form) {
    var elements = Form.getElements($(form));
    var queryComponents = new Array();
    
    for (var i = 0; i < elements.length; i++) {
      var queryComponent = Form.Element.serialize(elements[i]);
      if (queryComponent)
        queryComponents.push(queryComponent);
    }
    
    return queryComponents.join('&');
  },
  
  getElements: function(form) {
    var form = $(form);
    var elements = new Array();

    for (tagName in Form.Element.Serializers) {
      var tagElements = form.getElementsByTagName(tagName);
      for (var j = 0; j < tagElements.length; j++)
        elements.push(tagElements[j]);
    }
    return elements;
  },
  
  getInputs: function(form, typeName, name) {
    var form = $(form);
    var inputs = form.getElementsByTagName('input');
    
    if (!typeName && !name)
      return inputs;
      
    var matchingInputs = new Array();
    for (var i = 0; i < inputs.length; i++) {
      var input = inputs[i];
      if ((typeName && input.type != typeName) ||
          (name && input.name != name)) 
        continue;
      matchingInputs.push(input);
    }

    return matchingInputs;
  },

  disable: function(form) {
    var elements = Form.getElements(form);
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];
      element.blur();
      element.disabled = 'true';
    }
  },

  enable: function(form) {
    var elements = Form.getElements(form);
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];
      element.disabled = '';
    }
  },

  focusFirstElement: function(form) {
    var form = $(form);
    var elements = Form.getElements(form);
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];
      if (element.type != 'hidden' && !element.disabled) {
        Field.activate(element);
        break;
      }
    }
  },

  reset: function(form) {
    $(form).reset();
  }
}

Form.Element = {
  serialize: function(element) {
    var element = $(element);
    var method = element.tagName.toLowerCase();
    var parameter = Form.Element.Serializers[method](element);
    
    if (parameter)
      return encodeURIComponent(parameter[0]) + '=' + 
        encodeURIComponent(parameter[1]);                   
  },
  
  getValue: function(element) {
    var element = $(element);
    var method = element.tagName.toLowerCase();
    var parameter = Form.Element.Serializers[method](element);
    
    if (parameter) 
      return parameter[1];
  }
}

Form.Element.Serializers = {
  input: function(element) {
    switch (element.type.toLowerCase()) {
      case 'submit':
      case 'hidden':
      case 'password':
      case 'text':
        return Form.Element.Serializers.textarea(element);
      case 'checkbox':  
      case 'radio':
        return Form.Element.Serializers.inputSelector(element);
    }
    return false;
  },

  inputSelector: function(element) {
	var groups = document.getElementsByName(element.name);
	var subValue = new Array();
	for (var i=0; i<groups.length; i++ ) {
		if (groups[i].checked)
		  subValue.push(groups[i].value);
	}
	if (subValue.length < 1)
		subValue = null;
	 return [element.name, subValue];
  },

  textarea: function(element) {
    return [element.name, element.value];
  },

  select: function(element) {
    var value = '';
    if (element.type == 'select-one') {
      var index = element.selectedIndex;
      if (index >= 0)
        value = element.options[index].value || element.options[index].text;
    } else {
      value = new Array();
      for (var i = 0; i < element.length; i++) {
        var opt = element.options[i];
        if (opt.selected)
          value.push(opt.value || opt.text);
      }
    }



    return [element.name, value];
  }
}

/*--------------------------------------------------------------------------*/

var $F = Form.Element.getValue;
/************************jscode end *****************************/

/**********************通用jscode:开始*************************/

//显示提示框（div）
//text:提示内容 tipBox: div
function showTipInfo(text, tipBox) {
	if ($('tipBoxDiv')) {
		var tipBox = $('tipBoxDiv');
	}
	var body = document.body;
	if (!tipBox) {
		var tipBox = document.createElement("div");
		body.appendChild(tipBox);
	}
	tipBox.innerHTML = text;
	tipBox.id = "tipBoxDiv";
	tipBox.style.color = "#333";
	tipBox.style.border = "2px solid #cecece";
	tipBox.style.background = "#ffffe1";
	tipBox.style.padding = "10px";
	tipBox.style.display = "block";
	tipBox.style.zIndex = "1";
	tipBox.style.position = "absolute";
	var x = (body.offsetWidth - tipBox.offsetWidth)/2;
	var y = Math.ceil((document.documentElement.clientHeight - tipBox.offsetHeight)/2) + document.documentElement.scrollTop;
	tipBox.style.left = x + "px";
	tipBox.style.top = y + "px";
}

function hideTipInfo(tipBox, tipBoxShadow) {
	if (tipBox && tipBoxShadow) {
		tipBox.style.display = 'none';
	}
	else if($('tipBoxDiv')) {
		$('tipBoxDiv').style.display = 'none';
	}
}


function checkEmail(email)
{
	
	 return email.search(/^[\w|\-]{1,}@[\w|\-]{1,}\.{1,}[\w]{1,}/i)==-1 ? false : true;
}

function checkNumber(str)
{
	 return str.search(/^[0-9][\w]{2,19}$/i)== -1 ? false : true
}


function checkBorn(str)
{
	return str.search(/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/i) == -1 ? false : true;
}

//
//刷新窗口
//
function refreshWindow()
{
	history.go(0);
	document.execCommand("refresh");
	document.location = document.location;
	document.location.reload();
}


//
//隐藏指定ＤＩＶ
//
function hiddenDiv(obj)
{
	if ($(obj))
	{
		$(obj).style.display = "none";
	}
}


function showDiv(obj)
{
	
	if ($(obj))
	{
		$(obj).style.display = "";
	}
}

//set cookie
//name(String):	cookie's name
//value(String): cookie's value
//expires(Int:minute|String:never): cookie's expiring time
function setCookie(name, value, expires, path) {
	var str = name + "=" + escape(value);
	if (expires) {
		if (expires == 'never') 
			expires = 100*365*24*60;
		var exp=new Date(); 
		exp.setTime(exp.getTime() + expires*60);
		str += "; expires="+exp.toGMTString();
	}
	if (path) {
		str += "; path=" + path;
	}else
		str += "; path= /";
	str += "; domain=download.17173.com";
	document.cookie = str;
} 


//get cookie by cookie's name
//name(String): cookie's name

function getCookie(name){
	
	var tmp;
	var reg = new RegExp("(^| )"+name+"=([^;]*)(;|$)","gi");
	if( tmp = reg.exec( unescape(document.cookie) ) )
	{
		return(tmp[2]);
	}
	return null;
	
}

//
//判断是否是数字类型
//
function isNumberType(val)
{
	if (typeof(val) == "undefined")
		return false;
		
	if (val.toString().search(/^[0-9]{1,}$/i) == -1)
		return false;
	else
		return true;
}


/**
*问题列表操作--反选
*参数:coll(复选框对象)
*返回：反选
*/
function checkAll(coll)
{
	

    if(!coll) return;
    if(coll.length){
        for(var i=0;i<coll.length;i++)
        {
            coll.item(i).checked=!coll.item(i).checked;
        }
    }else{
        coll.checked=!coll.checked;
    }
}



/**
*得到指定类型的文本框(下拉框/单选框/复选框)
*
*/
function getClassInfo(url, work, obj, flag, sel)
{
	
	 if(obj == "" || url == "" || work == "")
	 	return ;
	
	 var arg = new Array();
	 arg[0] = obj;
	 arg[1] = sel;
	 arg[2] = flag;
	
	 
	 type = typeof type == "undefined" ? 0 :type;
	
	 var pars = "Work="+work;
	
	 //$(obj).innerHTML = "正在加载中...";
	 var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onComplete: responseClassInfo, responseArguments: arg} );
	
}

function responseClassInfo(request,arg)
{
	
	if (arg == "")
		return ;
		
	var reval = request.responseText;

	//alert(reval);
	switch (arg[2])
	{
		case 0: //下拉框
			createDownList(reval, arg[0], arg[1], arg[3]);
			break;
		case 1://单选框
			createRadioInfo(reval, arg[0], arg[1]);
			break;
		case 2: //复选框
			createCheckBox(reval, arg[0], arg[1]);
			break;
		case 3: //分类列表(显示成列表形式
			createClassTable(reval, arg[0], arg[1]);
			break;
	}
	arg = null;
	return true;
	
}

/**
*将分类显示为下拉框形式
*参数：reval(分类数据)
*返回：下拉框
*/
function createDownList(reval, objname, selval, parent)
{
	
	if (reval == "" || reval == "3")
	{
		addDefaultOptions(objname);
		return ;
	}
	
	var index = 0;
	var tmparr = reval.split('*||*');
	
	if (tmparr.length<=0)
		return ;
		

	addDefaultOptions(objname);
	for(i=0;i<tmparr.length;i++)
	{
		if (tmparr[i] == "")
			continue;
			
		tmparr1 = tmparr[i].split(",");
		if (tmparr1.length<=0)
			continue;
		
		_val = tmparr1[1]; //名称
		_id  = tmparr1[0]; //值
		_key = typeof tmparr1[2] == "undefined" ? "" : tmparr1[2]+"-";//关键字
			
		title = _key+_val;
		var option = new Option(title, _id, true, true);//创建option
		$(objname).options.add(option,i+1);
		
		if (_id == selval || _val == selval)
			index = i+1;
			
	}
	$(objname).selectedIndex = index;
	tmparr  = null;
	tmparr1 = null;
	
}
//移除指定的下拉框里的项
function removeOptions(obj)
{
	if (!$(obj))
		return;
 
  for (var i=0; i<$(obj).options.length; i++)
  { 
         $(obj).remove(i);
  }

	/*
	while($(obj).options.length>0)
	{
			$(obj).remove($(obj).options.length-1);
	}
	*/
	
}



/**
*将分类显示为下拉框形式
*参数：reval(分类数据)数组(二维数组)
*返回：下拉框
*/
function createDownListbyData(dataArr, objname, selval)
{
	
	if (dataArr == "" || dataArr.length<=0)
	{
		addDefaultOptions(objname);
		return ;
	}
	
	var index = 0;

	
	addDefaultOptions(objname);
	for(i=0;i<dataArr.length;i++)
	{
		if (dataArr[i] == "")
			continue;
			
		for(j=0;j<dataArr[i].length;j++)
		{
		
			_val = dataArr[1]; //名称
			_id  = dataArr[0]; //值
			var option = new Option(_val, _id, true, true);//创建option
			$(objname).options.add(option,i+1);
		
			if (_id == selval)
				index = i+1;
		}
	}
	$(objname).selectedIndex = index;
	
}


//添加默认选项
function addDefaultOptions(obj)
{
	if (!$(obj))
		return ;
	$(obj).options.length  = 1;
	$(obj).options[0].value = "";
	$(obj).options[0].text = "-选择-";
	$(obj).selectedIndex = 0;
}
/**
*将分类显示为单选框形式
*参数：reval(分类数据)
*返回：单选框
*/
function createRadioInfo(reval, objname, selval, radioname, flag)
{
	if (reval == "" || reval == null || reval == "3")
		return ;
		
	var tmparr1 = new Array();
	var tmparr  = new Array();
	var titleStr = "";
	var radioStr = "";
	var strHtml  = "";
	var radioname =  radioname == "" || typeof radioname == "undefined" ? "classid" : radioname;
	
	
	var tmparr = reval.split('*||*');
	if (tmparr.length<=0)
		return ;

	for(i=0;i<tmparr.length;i++)
	{
		if (tmparr[i] == "")
			continue;
			
		tmparr1 = tmparr[i].split(",");
	
		if (tmparr1.length<=0)
			continue;
			
		_id   = tmparr1[0]; //值(ID号clss2id)
		if (!isNumberType(_id))
			continue;

		checkStr =( selval == _id || selval == i ) ? "checked = \"checked\"" : "";
		radioStr = "<input type=\"radio\" name=\""+radioname+"\" id=\""+radioname+"\" value=\""+_id+"\" "+checkStr+"/>";
		
		
		if (flag == 1)
		{
			for(j=1;j<tmparr1.length;j++)
			{
				
				if (tmparr1[j] == "" ||  tmparr1[j] == "null")
					continue;
				
				if (titleStr == "" )
					titleStr = tmparr1[j];
				else 
					titleStr += "->"+tmparr1[j];
			}
		}
		else
			titleStr = tmparr1[1];
			
	    strHtml += "<li>"+radioStr+titleStr+"</li>";
	    checkStr = "";
	    radioStr = "";
	    titleStr = "";
	   
	    
	}
	
	tmparr  = null;
	tmparr1 = null;
	$(objname).innerHTML = strHtml;
}



/**
*将分类显示为复选框形式
*参数：reval(分类数据)
*返回：
*/
function createCheckBox(reval, objname, selval)
{
	if (reval == "" || reval == null || reval == "3")
		return ;
		
	$(objname).innerHTML = "正在加载...";
	var tmparr = reval.split('*||*');
	var str = "";
	var checkStr = "";
	j = 1;
	var selArr ="";
	
	
	selArr = (selval != "") ? selval.split(",") : "";
	for(i=0;i<tmparr.length;i++)
	{
		if (tmparr[i] == "")
			continue;
			
		tmparr1 = tmparr[i].split(",");
		if (tmparr1.length<=0)
			continue;
		_val = tmparr1[1]; //名称
		_id  = tmparr1[0]; //值	
		_key = tmparr1[3];//关键字
		
		if (selArr.length>0)
		{
			for(k=0;k<selArr.length;k++)
			{
				if (_id == selArr[k])
					checkStr = " checked = \"checked\"";
			}
		}
		
		
		str += "<td><input type=\"checkbox\" name=\"classlist[]\" id=\"classlist\" title=\""+_val+"\" value=\""+_id+"\" onClick=\"selClassInfo(this);\" "+checkStr+" />"+_key+"-"+_val+"</td>";	
		if (j%4 == 0)
			str += "</tr><tr>";
		j++;
		tmparr1  = null;
		checkStr = "";
	}
	tmparr  = null;
	$(objname).innerHTML = "<table><tr>"+str+"</table>";
}


/**
*显示分类列表(用于问题列表页中的分类显示)
*
*/
function createClassTable(reval, obj,  url)
{
	
	if (reval == "" || reval == "3" || reval.indexOf("*||*") == -1)
	{
		return ;
	}
	
	//var tmpArr = reval.split("#");
	//var type = tmpArr[0];
	//var reval = tmpArr[1];
	//if (reval == "")
	//	return ;	

	var tmpArr = reval.split("*||*");
	var strHtml = "";
	var j = 1;
	var asknum = 0;
	for(i=0 ; i<tmpArr.length; i++)
	{
		if (tmpArr[i] == "" || tmpArr[i].indexOf(",") == -1)
			continue;
		
		tmpArr1 = tmpArr[i].split(",");	
		id 	    = tmpArr1[0];
		title 	= tmpArr1[1];
		asknum  = tmpArr1[4];
		
		//parent1  = tmpArr1[2];
		//+parent1+'&sid='
		//url1  = url.replace("parent", id);
		//<span class="fontcolor_hc">('+asknum+')</span>分类数
		strHtml += '<td><a href="'+url+id+'">'+title+'</a></td>';
		if (j%6==0)
			strHtml += "</tr><tr>";
		j++;
		tmpArr1 = null;
		//url1 = null;
	}
	tmpArr = null;
	$(obj).innerHTML = "<table ><tr>"+strHtml+"</table>";
	strHtml = null;
	return;
	
	
}

/**
*设置评价分数
*参数：分数
*返回：显示图片
*/
function set_score(val,obj)
{
	if (val == "" )
		return ;
		
	if (typeof obj == "undefined" || obj == "")
		obj = "star";
	
	for(i=1;i<=5;i++)
	{
		if (i<=val){
			
			$(obj+i).src = '/images/icon_star.gif';
			
		}
		else
			$(obj+i).src= '/images/icon_star_hui.gif';
	}
	if ($("recommand"))
		$("recommand").value = val;
}




/**
*显示推荐指数图标
*obj(对象) val(数值)
*
*/
function showRecommandIcon(obj, val)
{
	if (!$(obj) || val == "")
		return ;

	var strHtml = "";
	for(i=1;i<=5;i++)
	{
		if (i<=val){
			
			strHtml += '<img src="/images/icon_star.gif" />';
			
		}
		else
			strHtml += '<img src="/images/icon_star_hui.gif" />';
	}
	
	$(obj).innerHTML = strHtml;
		
}


/**
*根据指定数据数组得到单选框参数
*参数：arr(数据数组) radioname(单选框对象名) selval(选中的值) objDiv(将生成的单选框选项赋于的对象标签)
*col(是否分行排列，设置一行显示几列）
*/
function showRadioInfo(arr, radioname, selval, objDiv,col)
{
	if (arr == "" || arr.length == 0 || radioname == "" || !$(objDiv))
		return ;
	var strHtml = "";
	var chkStr = "";
	for (i=1; i<=arr.length;i++)
	{
		chkStr = selval == i ? 'checked="checked"' : '';
		
		strHtml += '<input type="radio" name="'+radioname+'" id="'+radioname+'" value="'+i+'"  '+chkStr+' />'+arr[i-1]+'&nbsp;';
		
		if (col != "" && typeof col !="undefined")
			strHtml +=  i%col == 0  ? "<br />" : "";
	}
	
	$(objDiv).innerHTML = strHtml;
	
}

//根据下载站最终页得到其时间
function getTimeByDownUrl(url)
{
	
	var path = typeof url == "undefined" || url == ""  ? location.pathname : url;
	re = new RegExp("(.*)/files/[0-9]{2}/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)", "gi");
	re.compile("(.*)/files/[0-9]{2}/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)", "gi");
	arr = re.exec(path);
	re = null;
	
	if (arr == null || arr == "" || arr.length == 0)
		return ;
	return arr[2]+"-"+arr[3]+"-"+arr[4];
	//return new Array(arr[1], arr[2], arr[3]);
}

/**
*根据url得到信息列表参数
*gameid,classid,等
*/
function getParameterByUrl(path)
{
	//得到url地址
	if (typeof path == "undefined" || path == "")
		path = location.pathname;
	/*
	var paramArr = new Array();
	
	re = new RegExp("/list/(g-([0-9]{1,10})){0,1}/(c-([0-9]{1,10})){0,1}/(t-([0-9]{1,10})){0,1}/(a-([0-9]{1,10})){0,1}/(f-([0-9]{1,10})){0,1}/(y-([0-9]{1,10})){0,1}/(h-([0-9]{1,10})){0,1}/","gi");
	re.compile("/list/(g-([0-9]{1,10})){0,1}/(c-([0-9]{1,10})){0,1}/(t-([0-9]{1,10})){0,1}/(a-([0-9]{1,10})){0,1}/(f-([0-9]{1,10})){0,1}/(y-([0-9]{1,10})){0,1}/(h-([0-9]{1,10})){0,1}/","gi");
	arr = re.exec(path);
	re = null;
	if (arr == null || arr == "")
		return ;
	for(i=0;i<arr.length;i++)
	{
		paramArr[i]	= arr[i+1];
		
	}
	return paramArr;
	*/

	if (path.indexOf("list") == -1)
		return  0;
		
	var paramArr1 = new Array();	
	var tmpArr = new Array();
	var arr = new Array();
	
	arr = path.split("/");
	j = 0;
	for (i = 2 ;i<arr.length;i++)
	{
		j++;
		if (arr[i] == "" || typeof arr[i] == "undefined" || arr[i].indexOf("-") == -1)
		{
			paramArr1[j-1] = 0;
			continue;
		}
		 tmpArr = arr[i].split("-");
		 paramArr1[j-1] = tmpArr[1];
		 tmpArr = null;
		
	}
	return paramArr1;
	

	
}

/**
*根据url得到游戏页的游戏ID
*
*/
function getParameterByGameUrl()
{
	var path = location.pathname;
	re = new RegExp("/game/([0-9]{1,10})/", "gi");
	re.compile("/game/([0-9]{1,10})/", "gi");
	arr = re.exec(path);
	re = null;
	
	if (arr == null || arr == "")
		return ;
		
	return arr[1];

}

/**
*根据下载最终页得到其信息ID
*
*/
function getIdByDownUrl(url)
{
	
	var path = typeof url == "undefined" || url == ""  ? location.pathname : url;
	re = new RegExp("/[0-9]{2}/[0-9]{4}/[0-9]{2}/[0-9]{2}/([0-9]{1,})(\_|/)(([0-9]{1,3})){0,1}", "gi");
	re.compile("/[0-9]{2}/[0-9]{4}/[0-9]{2}/[0-9]{2}/([0-9]{1,})(\_|/)(([0-9]{1,3})){0,1}", "gi");
	arr = re.exec(path);
	re = null;
	
	if (arr == null || arr == "")
		return ;
	
	return new Array(arr[1], arr[3]);
}

//得到url?后面的参数值
function getUrlParam(location, sName)
{
	
  /*
   get last loc. of ?
   right: find first loc. of sName
   +2
   retrieve value before next &
  
  */
  var sURL = new String(location);
  var iQMark= sURL.lastIndexOf('?');
  var iLensName=sName.length;
  
  //retrieve loc. of sName
  var iStart = sURL.indexOf('?' + sName +'=') //limitation 1
  if (iStart==-1)
        {//not found at start
        iStart = sURL.indexOf('&' + sName +'=')//limitation 1
		if (iStart==-1)
		   {//not found at end
		    return 0; //not found
		   }   
        }
        
  iStart = iStart + + iLensName + 2;
  var iTemp= sURL.indexOf('&',iStart); //next pair start
  if (iTemp ==-1)
		{//EOF
			iTemp=sURL.length;
		}  
  return sURL.slice(iStart,iTemp ) ;
  sURL=null;//destroy String
}

function IsRadioChecked(obj)
{
	var IsChecked=false
	for(var i=0;i<obj.length;i++)
	{
		if(obj[i].checked){
			IsChecked=true;
			break
		}
	}
	return IsChecked;
}

/**
*根据日期得到是本年第几周
*
*/
Date.prototype.getWeek   =   function(flag)   
{   
      var   first   =   new   Date(this.getFullYear(),   0,   1);   
      var   n   =   parseInt("1065432".charAt(first.getDay()));   
      n   =   this.getTime()-first.getTime()-n*24*60*60*1000;   
      n   =   Math.ceil(n/(7*24*60*60*1000));   
      return   (flag==true&&first.getDay()!=1)?(n+1):n;   
};   
Date.prototype.format   =   function(format)   
{   
      var   o   =   {   
          "M+"   :   this.getMonth()+1,   //month   
          "d+"   :   this.getDate(),         //day   
          "h+"   :   this.getHours(),       //hour   
          "m+"   :   this.getMinutes(),   //minute   
          "s+"   :   this.getSeconds(),   //second   
          "q+"   :   Math.floor((this.getMonth()+3)/3),     //quarter   
          "S"   :   this.getMilliseconds()   //millisecond   
      }   
      if(/(y+)/.test(format))   format=format.replace(RegExp.$1,   
          (this.getFullYear()+"").substr(4   -   RegExp.$1.length));   
      for(var   k   in   o)if(new   RegExp("("+   k   +")").test(format))   
          format   =   format.replace(RegExp.$1,   
              RegExp.$1.length==1   ?   o[k]   :     
                  ("00"+   o[k]).substr((""+   o[k]).length));   
      return   format;   
};   
    
function   getFirstAndEnd(d)   
{   
     var   w   =   d.getDay(),   n   =   24*60*60*1000;   
     var   first   =   new   Date(d.getTime()   -   parseInt("6012345".charAt(w))*n);   
     var   end   =   new   Date(d.getTime()   +   parseInt("0654321".charAt(w))*n);   
     return   {first:   first,   end:   end};   
}   


//
//设置日志总数，并调用日志分页
//
function setTotalCount(totalCount)
{
	
	_info_totalCount = totalCount;
	getPageText($(_info_pageTextDiv), _info_startPage, totalCount, _info_itemPerPage, _info_curPage, _info_chagePageAction);
	
}


//
//
//日志分页
//
function getPageText(_con, _startPg, _totalItem, _itemPerPg, _curPg, _act) {
	_con = $(_con);
	if (!_con) return;
	
	
	if (_curPg == 0) _curPg = 1;
	var _pgCount = Math.ceil(_totalItem/_itemPerPg);
	 _pgCount = _pgCount || 1;
	
	var str = '';
	str += '共'+ _pgCount +'页';
	str += '&nbsp;&nbsp;|&nbsp;&nbsp;';
	if (_curPg == _startPg) {
		str += '第一页';
		str += '&nbsp;';
		str += '上一页';
	}
	else {
		str += '<a href="#" onclick="'+_act+'('+_startPg+');return false;">第一页</a>';
		str += '&nbsp;';
		str += '<a href="#" onclick="'+_act+'('+(_curPg-1)+');return false;">上一页</a>';
	}
	str += '&nbsp;';
	for (var i=_startPg; i<=_pgCount; i++) {
		
		if (i == _curPg) {
			str += i;
			str += '&nbsp;';
			
		}
		else if (i>=_curPg-5 && i<=_curPg+5) {
			str += '<a href="#" onclick="'+_act+'('+i+');return false;">'+i+'</a>';
			str += '&nbsp;';
		}
		else if (i == _curPg-6 || i == _curPg+6) {
			str += '...&nbsp;';
		}
	}
	if (_curPg == _pgCount) {
		str += '下一页';
		str += '&nbsp;';
		str += '最末页';
	}
	else {
		str += '<a href="#" onclick="'+_act+'('+(_curPg+1)+');return false;">下一页</a>';
		str += '&nbsp;';
		str += '<a href="#" onclick="'+_act+'('+_pgCount+');return false;">最末页</a>';
	}
	_con.innerHTML = str;
}

//信息加载完
function infoLoaded()
{	

	//hideTipInfo();
	if (_info_jumpAnchor)
		location.hash = '#blog';
	_info_jumpAnchor = true;
}



function chkFile(fPath)
{
    return fPath.search(/\.(jpg|jpeg|gif|bmp)$/ig)==-1?false:true;
}