
/*firefox*/
function __firefox(){
HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);
window.constructor.prototype.__defineGetter__("event", __window_event);
Event.prototype.__defineGetter__("srcElement", __event_srcElement);
}
function __element_style(){
return this.style;
}
function __window_event(){
return __window_event_constructor();
}
function __event_srcElement(){
return this.target;
}
function __window_event_constructor(){
if(document.all){
return window.event;
}
var _caller = __window_event_constructor.caller;
while(_caller!=null){
var _argument = _caller.arguments[0];
if(_argument){
var _temp = _argument.constructor;
if(_temp.toString().indexOf("Event")!=-1){
return _argument;
}
}
_caller = _caller.caller;
}
return null;
}
if(window.addEventListener){
__firefox();
}
/*end firefox*/
function htmlFilter(str){
  return str.replace(/&/g, "&amp;")
    .replace(/</g, "&lt;")
    .replace(/>/g, "&gt;")
    .replace(/ /g, "&nbsp;")
    .replace(/\"/g, "&quot;");
}

function isNumber(str) {
  return str != "" && !isNaN(str);
}

function isPositiveInteger(str) {
  return isNumber(str) && parseInt(str) > 0;
}

function isNonnegativeInteger(str) {
  return isNumber(str) && parseInt(str) >= 0;
}

function checkEmail(str){
    if(isBlank(str)) {
      return true;
    }
    var reEmail =/[\w-.]+@{1}[\w-]+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig;
    if(reEmail.test(str)) {
        return true;
    }else {
       return false;
    }
}

function checkwebaddress(str){
	if(isBlank(str)) {
    return true;
  }
	var pattern=/^http:\/\/$/;
	if(!pattern.test(str.substring(0,7))){
		return false;
	}
	return true;
}

function checkInteger(str){
	var pattern=/[^0-9]/;
	if(pattern.test(str)){
		return false;
	}
	return true;
}

function isBlank(s) {
    var re = /^\s*$/g;
    return re.test(s);
}

/**
 * Disable or enable all buttons and selectors in all forms.
 */
function disableAllFormButtons(disabled) {
  for (var i = 0, n = document.forms.length; i < n; i++) {
    var objForm = document.forms[i];

    // Run through elements and disable buttons
    for (var j = 0, m = objForm.length; j < m; j++) {
      var objElement = objForm.elements[j];
      var strElementType = objElement.type.toLowerCase();
      if (strElementType == "submit" || strElementType == "button"
          || strElementType == "select-one") {
        objElement.disabled = disabled;
      }
    }
  }
}

/**
 * 选择"全选"的checkbox.
 */
function checkAll(singleCheckboxName, allCheckboxObj) {
  var singleCheckboxes = document.getElementsByName(singleCheckboxName);
  for (i = 0; i < singleCheckboxes.length; i++) {
    singleCheckboxes[i].checked = allCheckboxObj.checked;
  }
}

/**
 * 选择其中一个checkbox.
 */
function checkOne(singleCheckboxObj, allCheckboxId) {
  var selectAll = document.getElementById(allCheckboxId);
  if (!singleCheckboxObj.disabled && !singleCheckboxObj.checked && selectAll.checked) {
    selectAll.checked = false;
    return;
  }

  var selectOne = document.getElementsByName(singleCheckboxObj.name);
  var i = 0;
  var length = selectOne.length;
  for (; i < length; i++) {
    if (!selectOne[i].checked) {
      break;
    }
  }

  if (i >= length) {
    selectAll.checked = true;
  }
}

function view(url) {
  location.href = url;
}

function statWordCount(field) {
  var stat = document.getElementById(field.name + "Stat");
  if (stat) {
    stat.innerHTML = getAbsoluteLength(field.value);
  }
}

function getAbsoluteLength(str) {
  var len = 0;
  for (var i = 0; i < str.length; i++) {
    str.charCodeAt(i) > 255 ? len += 2 : len++;
  }
  return len;
}

function setElementValue(elementId, value) {
  var e = document.getElementById(elementId);
  if (!e) {
    return;
  }

  var type = e.type.toLowerCase();
  if (type == "select-one") {
    for (var i = 0, n = e.length; i < n; i++) {
      if (e[i].value == value) {
        e[i].selected = true;
        break;
      }
    }
  }
  else if (type == "checkbox" || type == "radio") {
    if (e.value == value) {
        e.checked = true;
    }
  }
}

// 设为首页
function setHome(a, url) {
	if(document.all){
		a.style.behavior = "url(#default#homepage)";
		a.setHomePage(url);
	}else{
	  	if(window.netscape)  {
	        try {
	          netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
	        }
	        catch (e)
	        {
	          alert("此操作被浏览器拒绝！\n请在浏览器地址栏输入“about:config”并回车\n然后将[signed.applets.codebase_principal_support]设置为'true'");
	        }
	  	}

	  	var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
	  	prefs.setCharPref('browser.startup.homepage',url);
  	}
}

// 加入收藏夹
function addFavorite(title) {
  window.external.AddFavorite(window.document.location, title);
}

// 加入收藏夹
function addFavorite(url, title) {
	if (document.all){window.external.AddFavorite(url, title);}else if (window.sidebar){window.sidebar.addPanel(title, url, "") ;}
}

function windowColse() {
    if(navigator.appVersion.indexOf("MSIE 6.0") != -1){
        if(confirm('您确定要关闭此页面吗？')){
            window.close();
        }
    }
    else{
        window.close();
    }
}


function trim(str) {
	if(str !='' && str != null){
		return str.replace(/(^\s*)|(\s*$)/g, "");
	}
	return str;
}

function isChecked(checkboxName){
	var sign = false;
	var objs = document.getElementsByName(checkboxName);
	for(i=0;i<objs.length;i++){
		if(objs[i].checked ) {
			sign=true;
		}
	}
	if(!sign){
		return false;
	}

	return true;
}


String.prototype.len=function(){
return this.replace(/[^\x00-\xff]/g,"**").length;
}

//Set maxlength for multiline TextBox
function setMaxLength(object,length)
{
    var controlid = document.selection.createRange().parentElement().id;
    var controlValue = document.selection.createRange().text;
    var tempString=object.value;
    if(tempString.len()>length) {
        tempString=tempString.substr(0,length);
    	object.value=tempString;
    }

}

//Check maxlength for multiline TextBox when paste
function limitPaste(object,length)
{
        var tempLength = 0;
        if(document.selection)
        {
            if(document.selection.createRange().parentElement().id == object.id)
            {
                tempLength = document.selection.createRange().text.len();
            }
        }
        var tempValue = window.clipboardData.getData("Text");
        tempLength = object.value.len() + tempValue.len() - tempLength;

        if (tempLength > length)
        {
            tempLength -= length;
            var tt="";
            for(var i=0;i<tempValue.len()-tempLength;i++)
                {
                    if(tt.len()<(tempValue.len()-tempLength)){tt=tempValue.substr(0,i+1);} else {
                      break;
                    }
                }
            if(tt.len()<=0)
            {
                window.event.returnValue=false;

            }
            else
            {
                tempValue=tt;
                window.clipboardData.setData("Text", tempValue);
                window.event.returnValue = true;
            }
        }


}

function PressLength()
{

    if(event.srcElement.type=="text" || event.srcElement.type=="textarea" )
    {
        if(event.srcElement.length!=null){setMaxLength(event.srcElement,event.srcElement.length);}
    }
}

function LimitLength()
{
    if(event.srcElement.type=="text" || event.srcElement.type=="textarea" )
    {
        if(event.srcElement.length!=null){limitPaste(event.srcElement,event.srcElement.length);}
    }
}

document.onkeyup = function(oEvent){
  if(window.event){oEvent=window.event;}
  if(oEvent.keyCode < 33 || oEvent.keyCode >47){
  PressLength();
  }
  };



