﻿
//登录切换
function switchlogin(stateID){
    if(stateID==1){
        document.getElementById('logined').style.display="block";
        document.getElementById('login').style.display="none";
    }
    else{    
        document.getElementById('logined').style.display="none";
        document.getElementById('login').style.display="block";
    }    
}
//多列等高
//调用方法：window.onload = function z_align(){
//  alignHeight("col1","col2"); //只需将需要对齐的两个模块的id写在此处即可。
//  alignHeight("AAA","BBB") 可依此连续多组。
function alignHeight(eleA,eleB){
  if(!document.getElementById(eleA)){return false;}
  if(!document.getElementById(eleB)){return false;}
  var heightA = document.getElementById(eleA).clientHeight;
  var heightB = document.getElementById(eleB).clientHeight;
  if(heightA > heightB){
    document.getElementById(eleB).style.height = heightA + "px";
    document.getElementById(eleA).style.height = heightA + "px";
  }else{
    document.getElementById(eleA).style.height = heightB + "px";
    document.getElementById(eleB).style.height = heightB + "px";
  }
}

//课程查看切换选项卡
function switchtab1(stateID){
    var items=document.getElementById("classtab").getElementsByTagName("li").length;
    for(var i=0;i<items;i++){
        document.getElementById("c_tab"+i).style.display="none";        
    }
    document.getElementById("c_tab"+stateID).style.display="block";
    if(stateID==0){
            document.getElementById("c_tab1").style.display="block";
            document.getElementById("c_tab2").style.display="block";
            document.getElementById("c_tab3").style.display="block";
    }
    for(var m=0;m<items;m++){
        document.getElementById("classtab").getElementsByTagName("li")[m].className="";
        
    }
	document.getElementById("classtab").getElementsByTagName("li")[stateID].className="curtab";    
}

/*通用加载函数，页面中如果要用到onload函数在窗体一加载时就执行的代码，可以直接添加到这个函数，否则会引起多个onload函数的执行冲突
  带参数的调用方法：addLoadEvent(new Function("refurFrame('单词管理');"));
*/
function addLoadEvent(func){
	var oldonload=window.onload;
	if(typeof window.onload!='function'){
		window.onload=func;	
	}
	else{
		window.onload=function(){
			oldonload();
			func();
		}	
	}
}

/*判断是否有className的函数，调用例子为：o.className=o.addClass(o,"normal");*/
function hasClass(element, className) {  
	var reg = new RegExp('(\\s|^)'+className+'(\\s|$)');     
	return element.className.match(reg); 
} 
/*动态添加className的函数，调用例子为：addClass(document.getElementById("test"), "test");*/
function addClass(element, className) {  
	if (!this.hasClass(element, className)){   
		element.className += " "+className;/*如果有多个样式叠加，则用这种方式，如class="style1 style2"*/
		/*element.className = className; */  
	} 
}  
/*动态删除className的函数，调用例子为：removeClass(document.getElementById("test"), "test") */
function removeClass(element, className) {     
	if (hasClass(element, className)){         
		var reg = new RegExp('(\\s|^)'+className+'(\\s|$)');         
		element.className = element.className.replace(reg,' ');     
	} 
} 

/* 说明：准确获取指定元素 CSS 属性值
/* 此函数的两个参数，elem为要获取的对象，name为样式属性，如“backgroundColor”*/
function getStyle( elem, name )
{
	/*如果该属性存在于style[]中，则它最近被设置过(且就是当前的)*/
	if (elem.style[name])
	{
		return elem.style[name];
	}
	/*否则，尝试IE的方式*/
	else if (elem.currentStyle)
	{
		return elem.currentStyle[name];
	}
	/*或者W3C的方法，如果存在的话*/
	else if (document.defaultView && document.defaultView.getComputedStyle)
	{
		name = name.replace(/([A-Z])/g,"-$1");
		name = name.toLowerCase();
		/*获取style对象并取得属性的值(如果存在的话)*/
		var s = document.defaultView.getComputedStyle(elem,"");
		return s && s.getPropertyValue(name);
	    /*否则，就是在使用其它的浏览器*/
	}
	else
	{
		return null;
	}
}

/*根据类名获得对象*/
function getElementsByClassName(searchClass, node,tag){  
	if(document.getElementsByClassName){return  document.getElementsByClassName(searchClass)}
	else{        
		node = node || document;        
		tag = tag || "*";        
		var classes = searchClass.split(" "),        
		elements = (tag === "*" && node.all)? node.all : node.getElementsByTagName(tag),        
		patterns = [],         
		returnElements = [],        
		current,         
		match;        
		var i = classes.length;       
		while(--i >= 0){patterns.push(new RegExp("(^|\\s)" + classes[i] + "(\\s|$)"));}        
		var j = elements.length;       
		while(--j >= 0){            
			current = elements[j];           
			match = false;            
			for(var k=0, kl=patterns.length; k<kl; k++){                
				match = patterns[k].test(current.className);                
				if (!match)  break;           
			} 
			if (match)  returnElements.push(current);        
		}        
		return returnElements;   
	} 
}

/*此函数用来解决FF浏览器下超长字符串换行,注意要断行容器的类名加“wordbreak”*/
function fnBreakWordAll(o){
	var o = o || {},
	iWord = o.word || 13,
	sRe = o.re || '[a-zA-Z0-9]',
	bAll = o.all || false,
	sClassName = o.className || 'wordbreak',
	aEls = o.els || (function(){
	var aEls = [],
	  aAllEls = document.getElementsByTagName('*'),
	  re = new RegExp('(?:^|\\s+)' + sClassName + '(?:\\s+|$)');
	for(var i =0,iLen = aAllEls.length; i < iLen ; ++i){
	  if(re.test(aAllEls[i].className)){
	    aEls[aEls.length] = aAllEls[i]; 
	  }
	}
	return aEls;
	})() || [],
	fnBreakWord = function(oEl){ 
	if(!oEl || oEl.nodeType !== 1){
	  return false;
	} else if(oEl.currentStyle && typeof oEl.currentStyle.wordWrap === 'string'){
	  breakWord = function(oEl){
	    oEl.runtimeStyle.wordWrap = 'break-word';
	    return true;
	  }
	  return breakWord(oEl);
	}else if(document.createTreeWalker){
	  var trim = function  (str) {
	    str = str.replace(/^\s\s*/, '');
	    var ws = /\s/,
	    i = str.length;
	    while (ws.test(str.charAt(--i)));
	    return str.slice(0, i + 1);
	  }
	  breakWord = function(oEl){
	    var dWalker = document.createTreeWalker(oEl, NodeFilter.SHOW_TEXT, null, false);
	    var node,s,c = String.fromCharCode('8203'),
	      //re = /([a-zA-Z0-9]{0,13})/;
	      re = new RegExp('('+ sRe +'{0,' + iWord + '})');
	    while (dWalker.nextNode()){
	      node = dWalker.currentNode;
	      s = trim(node.nodeValue).split(re).join(c);
	      node.nodeValue = s;
	    }
	    return true;
	  }
	  return breakWord(oEl);
	}
	};
	for(var i=0,n=aEls.length; i<n; ++i){
	  var sUa = navigator.userAgent,sTn = aEls[i].tagName.toLowerCase() ;
	  if((/Opera/).test(sUa) || (/Firefox/).test(sUa) || ((/KHTML/).test(sUa) && (sTn === 'td' || sTn === 'th')) || bAll){
	    fnBreakWord(aEls[i]);
	  }
	}
}

/*表格班马线函数，排除第一行是th标题的。传入三个classname，分别代表奇数行，偶数行和当前选中行的样式*/
function changcolor(idname,css1,css2,css3) {
	var Ptr=document.getElementById(idname).getElementsByTagName("tr");
    var firsttr=getFirstChild(Ptr[0]);//ff下的差异所以用这个函数获取第一个节点对象
    var initindex=(firsttr="TH")?"1":"0";//排除第一个标题行是TH的
   
    for (i=initindex;i<Ptr.length;i++) { 
    	Ptr[i].className = (i%2>0)?css1:css2; 
    	/*
		Ptr[i].onmouseover=function(){
			this.tmpClass=this.className;
			this.className = css3;
		};		
		Ptr[i].onmouseout=function(){
			this.className=this.tmpClass;
		};
		*/
    }
}
/*表格班马线函数，没有th标题的。传入两个classname，分别代表奇数行，偶数行的样式*/
function changcolor1(idname,css1,css2) {
	var Ptr=document.getElementById(idname).getElementsByTagName("tr");   
    for (var i=0;i<Ptr.length;i++) { 
    	Ptr[i].className = (i%2>0)?css1:css2; 
    }
}
/*表格班马线函数ul--li列表方式。传入三个classname，分别代表奇数行，偶数行和当前选中行的样式*/
function changlicolor(idname,css1,css2,css3) {
	var Ptr=document.getElementById(idname).getElementsByTagName("li");
    for (var i=0;i<Ptr.length;i++) { 
    	Ptr[i].className = (i%2>0)?css1:css2; 
    	/*
		Ptr[i].onmouseover=function(){
			this.tmpClass=this.className;
			this.className = css3;
		};
		Ptr[i].onmouseout=function(){
			this.className=this.tmpClass;
		};
		*/
    }
}

/*获取第一个子节点的函数，兼容FF*/
function getFirstChild(obj){
	var firstDIV;
	for (i=0; i<obj.childNodes.length; i++){
		if (obj.childNodes[i].nodeType==1){
			firstDIV=obj.childNodes[i];
			return firstDIV;
		}
		else 
			continue;
	}
}
/*文字滚动函数*/
function scroll(){
    var box = document.getElementById("scroll"), can = true;
    if (box != null) {
        box.innerHTML += box.innerHTML;
        box.onmouseover = function() { can = false };
        box.onmouseout = function() { can = true };
        new function() {
            var stop = box.scrollTop % 48 == 0 && !can;
            if (!stop) box.scrollTop == parseInt(box.scrollHeight / 2) ? box.scrollTop = 0 : box.scrollTop++;
            setTimeout(arguments.callee, box.scrollTop % 48 ? 10 : 1500);
        };
    }
}
/*滑动显隐菜单列表*/
var temp;
function hoverlist(parentClass,subClass){ 
    var ArrLinks=getElementsByClassName(parentClass);//点击的链接对象的父容器,数组
    var ArrDivs=getElementsByClassName(subClass);//要隐藏的列表,数组
    for(var i=0;i<ArrDivs.length;i++){        
        var obj=getFirstChild(ArrLinks[i]);
        obj.index=i
        obj.onmouseover= function(){overme(this,ArrLinks,ArrDivs)};           
        obj.onmouseout=function(){outme(this,ArrLinks,ArrDivs)};
    }    
}
function overme(o,links,divs){
	if (temp!=o.index){
	    for(var i=0;i<links.length;i++){ 
	        divs[i].style.display="none";//隐藏所有列表  
            links[i].style.display="block"; 
	    }
	    divs[o.index].style.display="block";//隐藏所有列表  
        links[o.index].style.display="none"; 
        temp=o.index
    }
}
function outme(o,links,divs){
	if (temp!=o.index){
	    for(var i=0;i<links.length;i++){ 
	        divs[i].style.display="none";//隐藏所有列表  
            links[i].style.display="block"; 
	    }
	    divs[o.index].style.display="none";//隐藏所有列表  
        links[o.index].style.display="block"; 
	};
}
