var isIE = document.all ? true: false;
var webRoot='/moma/';
var onLoadFuncs=[];

var icons=['aac','ace','ai','ain','amr','app','arj','asf','asp','aspx','av','avi','bin','bmp','cab','cad','cat','cdr','chm','com','css','cur','dat','db','dll','dmv','doc','dot','dps','dpt','dwg','dxf','emf','eps','et','ett','exe','fla','ftp','gif','hlp','htm','html','icl','ico','img','inf','ini','iso','jpeg','jpg','js','m3u','max','mdb','mde','mht','mid','midi','mov','mp3','mp4','mpeg','mpg','msi','nrg','ocx','ogg','ogm','pdf','png','pot','ppt','psd','pub','qt','ra','ram','rar','rm','rmvb','rtf','swf','tar','tiff','tif','tmp','txt','url','vbs','vsd','vss','vst','wave','wav','wma','wmd','wmf','wm','wmv','wps','wpt','xls','xlt','xml','zip'];

// Shortcut of document.getElementBy(str)
function _I(str)
{
	try{
	return document.getElementById(str);
	}catch(e){return false;}
}
// shortcut of document.getElementsByTagName(str)
function _TN(str){
	try{
    return document.getElementsByTagName(str);
	}catch(e){return false;}
}
function _N(str){
	try{
    return document.getElementsByName(str);
	}catch(e){return false;}
}

function _SVI (str) {
obj=_I(str);
try{
                //if(obj.tagName == 'select') 
                        return obj.options[obj.selectedIndex].value;
} catch (e) {
	alert (e);
}
}

// Get value of a form element.
function _V(obj)
{
	return _I(obj).value;
	/*
	try{
		if(obj.tagName == 'select') 
			return obj.options[obj.selectedIndex].value;
        else if((obj.tagName=='TEXTAREA')||(obj.tagName=='INPUT'))
            return obj.value;
		else if(obj.getAttribute('value') != null)
			return obj.getAttribute('value');
        else
            return obj.innerHTML;
	}
	catch(e){
		alert (e);
	}
	*/
}
// Contact of _I and _V
function _IV(str)
{
	return _V(_I(str));
}
/** return SELECT options array */
function _SV(obj){
    var _t=new Array();
    try{
    for(var i=0;i<obj.options.length;i++)
    {
        eval("var _j={text:'"+obj.options[i].text+"',value:'"+obj.options[i].value+"'}");
        _t.push(_j);
    }
    }catch(e){}
    return _t;
}
/* Get checked radio or checkbox value by name */
function _RV(str){
    var _t = _N(str);
    for(var i=0;i<_t.length;i++){
        if(_t[i].checked) return _t[i].value;
    }
    return false;
}
// Shorcut of document.createElement(str)
function _C(tag){
	return document.createElement(tag);
}
// Shorcut of document.createTextNode(str)
function _CT(text){
	return document.createTextNode(text);
}
/**
 * Remove a child from object obj by child
 */
function _RM(obj,child){
	try{obj.removeChild(child);}catch(e){}
}
/**
 * Remove all children from obj
 */
function _RA(obj){
    try{
	for(var i=(obj.childNodes.length-1); i>=0; i--)
		obj.removeChild(obj.childNodes[i]);
    }catch(e){}
}
/** Remove obj himself */
function _RH(obj){
    obj.parentNode.removeChild(obj);
}
/**
 *  _parent.appendChild(_child);
 */
function _A(p,c){
    p.appendChild(c);
}
/** 
 * Select a SELECT option by option value
 */
function _SSV(obj, vl){
    try{
    for(var i=0;i<obj.options.length;i++)
        if(obj.options[i].value == vl){obj.options[i].selected=true;break;}
    }catch(e){}
}
/**
 * Select a RADIO box by radio value
 */
function _SRV(obj, vl){
    for(var i=0;i<obj.length;i++)
        if(obj[i].value == vl){obj[i].checked=true;return true;}
}
/**
 * select all options
 */
function _SSA(obj){
    try{
        for(var i=0;i<obj.options.length;i++)
            obj.options[i].selected=true;
    }catch(e){}
}
/** append option to SELECT */
function _SA(obj,txt,vlu){
    try{obj.options.add(new Option(txt,vlu));}
    catch(e){}
}
/* return selected OPTION */
function _SO(obj){
    try{return obj.options[obj.selectedIndex]}
    catch(e){}
}


// 动态添加 JS CSS 文件 !
function dyn_add(path, type)
{
	try{
	var head = _TN('HEAD')[0];
	if(type == 'js')
	{
		var script = _C('SCRIPT');
		script.type = 'text/javascript';
		script.src  = path;
		head.appendChild(script);
	}
	else if(type == 'css')
	{
		var link = _C('LINK');
		link.type = 'text/css';
		link.rel  = 'stylesheet';
		link.href = path;
		head.appendChild(link);
	}
	}catch(e){}
}
function dyn_js(path){dyn_add(path,'js');}
function dyn_css(path){dyn_add(path,'css');}

/** change location to .. */
function _LT(str){
    location.href=str;
}

/**
 * Event BODY.onLoad
 *   evn_func function pointer
 */
function body_onload(evn_func)
{
	evn_func();
}


Array.prototype.inArray = function (value) 
// Returns true if the passed value is found in the 
// array.  Returns false if it is not. 
{
	var i;
	for (i=0; i < this.length; i++) {
		// Matches identical (===), not just similar (==).
		if (this[i] === value) {
			return true;
		}
	}
	return false;
}; 
// Set String.trim()
if(!String.trim)
	String.prototype.trim = function(){return this.replace(/(^\s*)|(\s*$)/g, "");}
// Set String.splitUnder()
if(!String.splitUnder)
	String.prototype.splitUnder = function(searched){
	return (-1== this.indexOf(searched)) ? false : this.substr(this.indexOf(searched)+searched.length);
}
/** split string width specified length & return array */
if(!String.splitByLength)
    String.prototype.splitByLength =function(_len){
      if(_len > this.length) return new Array(this);
      var _ar = new Array();
      for(var i=0;_len*i<this.length;i++){
        _ar.push(this.substr(i*_len,_len));
      }
      return _ar;
    }
/* change location.href by param */
if(!location.changeByParam)
    location.changeByParam = function(obj){
      if(typeof(obj) != "object") return false;
      var _l = '';
	  var _base=location.pathname;
      var _t = new Array;
      if(_l=location.href.splitUnder('?'))
      {
         _t = _l.split('&');
         for(var i=0;i<_t.length;i++){
           for(var j in obj)
            if(0== _t[i].indexOf(j+'=')){
              _t[i] = j+'='+obj[j];
              delete obj[j];
              break;
            }
         }
		 var _t1=new Array;
		 for(var i in _t)
		   if(_t[i]) _t1.push(_t[i]);
         var _t2 = new Array();
         for(var k in obj){
            _t2.push(k+"="+obj[k]);
         }
         location.href = _base+'?'+_t1.join("&") + '&'+_t2.join("&");
      }
      else
      {
         for(var i in obj)
            _t.push(i+'='+obj[i]);
         location.href += (_base+'?'+_t.join('&'));
      }
    }

function array_indexof(ary, item)
{
	for(var i=0;i<ary.length;i++)
		if(ary[i]==item)
			return i;
	return -1;
}

function sleep(ms){
	var s=(new Date()).valueOf();
	var sp=ms;
	while((new Date()).valueOf()-sp < s);
}

function ob_vars(obj){
	var s = '';
	s += '<html>\n<style>TR,TD{background:#FFFFFF;font-size:12px;}</style>\n<body style="margin:0;padding:0">\n';
	s += '<table border="0" align="center" width="98%" cellpadding="3" cellspacing="1" bgcolor="#ACACAC;">\n';
	s += '<tr>\n\t<th width="40%">Name</th>\n\t<th>Value</th>\n</tr>';
	for(var i in obj)
		s += '<tr>\n\t<td>' + i + '</td>\n\t<td>' + obj[i] + '</td>\n</tr>\n';
	s += '</table>\n</body></html>';
	var w = window.open('','dbg','left=680,top=300,width=320,height=400,scrollbars=1,status=0,resizable=1');
	w.document.write(s);
}

function getPosition(e)
{
    var left = 0;
    var top = 0;
    var scroll = e;
    
    while(e)
    {
        left += e.offsetLeft;
        top += e.offsetTop;
        e = e.offsetParent
    }
    
    while(scroll)
    {
        if (scroll.scrollLeft){left -= scroll.scrollLeft;}
        if (scroll.scrollTop){top -= scroll.scrollTop;}
        scroll = scroll.parentElement
    }
    return {x:left,y:top}
}

function print_page()
{
	if(isIE)
	{
		WebBrowser=_I('WebBrowser');
		if(!WebBrowser)
		{
			document.body.innerHTML += '<OBJECT id="WebBrowser" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" width="0"></OBJECT>';
			WebBrowser=_I('WebBrowser');
		}
		if(!WebBrowser)
			window.print();
		WebBrowser.ExecWB(7,1);
	}
	else
		window.print();
}

/* ajax Object */
function AjaxCon()
{
  var xmlhttp, bComplete = false, bSYN = true;
  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  catch (e) { try { xmlhttp = new XMLHttpRequest(); }
  catch (e) { xmlhttp = false; }}}
  if (!xmlhttp) return null;
  this.connect = function(sURL, sMethod, sVars, fnDone)
  {
    if (!xmlhttp) return false;
    bComplete = false;
    sMethod = sMethod.toUpperCase();
    try {
      if (sMethod == "GET")
      {
        if(sVars)
        {
            if(sURL.indexOf('?') !=-1)
                xmlhttp.open(sMethod, sURL+'&'+sVars, bSYN);
            else
                xmlhttp.open(sMethod, sURL+'?'+sVars, bSYN);
        }
        else
            xmlhttp.open(sMethod, sURL, bSYN);
        sVars = "";
      }
      else
      {
        xmlhttp.open(sMethod, sURL, bSYN);
        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
        xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      }
      xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && !bComplete)
        {
          bComplete = true;
          fnDone(xmlhttp);
        }};
      xmlhttp.send(sVars);
    }
    catch(z) { return false; }
    return true;
  };
  return this;
}
function ajax_get(url, pfunc, syn){
	var ajax = new AjaxCon;
	if(typeof(syn)!='undefined')
		ajax.bSYN = syn?true:false;
	ajax.connect(url,'get','',function(ajax){
		if(s=ajax_is_error(ajax.responseText))
		{
			alert(s);
			return ;
		}
		pfunc(ajax.responseText);
		});
}
function ajax_is_error(returnd)
{
	var t=returnd.match(/^ERROR:\n(.*)$/);
	if(!t)
		return false;
	return t[1];
}
function JHshNumberText()
{
if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) 
|| (window.event.keyCode == 13) || (window.event.keyCode == 46) 
|| (window.event.keyCode == 45)))
{
window.event.keyCode = 0 ;
}
} 

function show_size (size) {
	if (size > 1024*1024*1024)
		return parseInt (size*10/(1024*1024*1024))/10 + 'G';
	else if (size > 1024*1024)
		return parseInt (size*10/(1024*1024))/10 + 'M';
	else if (size > 1024)
		return parseInt (size*10/1024)/10 + 'K';
	else
		return size + 'b';
}

function icon_file (type) {
	var find=false;
	var ret='';
	
	for (var i=0;i<icons.length;i++) {
		if (type == icons[i]) {
			ret = type;
			find=true;
			break;
		}
	}
	if (!find)
		ret = 'unknown';
	
	ret=root+'image/filetype/'+ret+'.gif';
	return ret;
}

function add_array_item (array, item) {
	for (var i=0;i<array.length;i++) {
		if (array[i].id==item.id)
			return;
	}
	
	array.push (item);
}

function remove_array_item (array, item) {
	for (var i=0;i<array.length;i++) {
		if (array[i].id==item.id) {
			array.splice (i, 1);
			return;
		}
	}
}

function check_id (id) {
	if (!id)
		return false;
	if (id.length > 32 || id.length < 4) 
		return false;
	var p=/^[a-zA-Z]{1}[a-zA-Z0-9_]{3,31}$/;
	if (!p.exec (id)) 
		return false;
	return true;
}

function check_email (email) {
	if (!email)
		return false;
	var p=/^[a-zA-Z0-9]{1}[\w.-]+@[\w.-]+$/;
	if (!p.exec (email)) 
		return false;
	return true;
}

function add_onload_func (func) {
	onLoadFuncs.push(func);
}

window.onload = function(e) {
	for (var i=0;i<onLoadFuncs.length;i++)
		eval (onLoadFuncs[i]+'()');
	
}
