var $$ = function(_id){
	return document.getElementById(_id);
}

var getElementsByClassName = function(_classname) {
	var arr = [];
	var elems = document.getElementsByTagName("*");
	for(var i=0; i<elems.length; i++){
		if(elems[i].className.indexOf(_classname) >= 0){
			arr.push(elems[i]);
		}
	}
	return arr;
}

var Ajax = {	
	createXHR: function(){
		var xhr;
		if(window.ActiveXObject){
			xhr = new ActiveXObject("Microsoft.XMLHttp");
		}else if(window.XMLHttpRequest){
			xhr = new XMLHttpRequest();
		}
		return xhr;
	}
}

/**************************************************/
var myPreference = function(_btnid, _contid){
	var btn = $$(_btnid);
	var cont = $$(_contid);
	
	btn.onclick = function(){return false;}
	btn.onmouseover = function(){
		cont.style.display = "block";
	}
	document.documentElement.onclick = function(){
		cont.style.display = "none";
	};
}

var TableRowEffect = function(_id, _overcolor, _outcolor){
	var trs = $$(_id).getElementsByTagName("TBODY")[0].getElementsByTagName("TR");
	for(var i=0; i<trs.length; i++){
		trs[i].onmouseover = function(){
			this.style.background = _overcolor;
		}
		trs[i].onmouseout = function(){
			this.style.background = _outcolor;
		}
	}
}


var copyToClipboard = function(txt) {
	if(window.clipboardData) {
		window.clipboardData.clearData();
		window.clipboardData.setData("Text", txt);
	} else if(navigator.userAgent.indexOf("Opera") != -1) {
		window.location = txt;
	} else if (window.netscape) {
		try {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
		} catch (e) {
			alert("Your browser security settings don't permit the button to automatically execute copying operations. Please use the keyboard for that (Ctrl+C).");
			return false;
		}
		var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip)
			return;
		var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		if (!trans)
			return;
		trans.addDataFlavor('text/unicode');
		var str = new Object();
		var len = new Object();
		var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
		var copytext = txt;
		str.data = copytext;
		trans.setTransferData("text/unicode",str,copytext.length*2);
		var clipid = Components.interfaces.nsIClipboard;
		if (!clip)
			return false;
		clip.setData(trans,null,clipid.kGlobalClipboard);
	}
}


var updateActivity = function(_url){
	var container = $$("activity");
	var url = _url + "?datestamp=" + new Date().getTime();
	
	function request(_url){
		var xhr = Ajax.createXHR();
		xhr.open("GET", _url, true);
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 1){
				container.innerHTML = container.innerHTML + '<p class="info">loading...</p>';
			}
			if(xhr.readyState == 4 && xhr.status == 200){
				container.innerHTML = xhr.responseText;
				setTimeout(mouseEvent, 200);
				setTimeout(selectEvent, 1000);
			}
		};
		xhr.send(null);
	}

	function selectEvent(){
		var yearselect = $$("yearselect");
		var monthselect = $$("monthselect");
	
		yearselect.onchange = function(){
			var datetime = this.value + monthselect.value;
			request("/dateactivity?datetime=" + datetime + "&datestamp=" + new Date().getTime());
		}
		monthselect.onchange = function(){
			var datetime = yearselect.value + this.value;
			request("/dateactivity?datetime=" + datetime + "&datestamp=" + new Date().getTime());
		}
		
	}
	
	function mouseEvent(){
		var content = getElementsByClassName("content");
		var showCont = getElementsByClassName("hidden");
		for(var i=0; i<content.length; i++){
			content[i].parentNode.flag = i;
			content[i].parentNode.onmouseover = function(){
				showCont[this.flag].className = "show";
			}
			content[i].parentNode.onmouseout = function(){
				showCont[this.flag].className = "hidden";
			}
			showCont[i].onmouseover = function(){
				this.className = "show";
			}
			showCont[i].onmouseout = function(){
				this.className = "hidden";
			}
		}
	}
		
	request(url);
	
}






var Marquee = function (_marqueeId, _speed){
	this.marqueeDiv = $$(_marqueeId);
	this.conts = this.marqueeDiv.getElementsByTagName("UL")[0];
	
	this.contsWidth;
	this.speed = _speed;
	this.moveDist = 0;

	this.myMarquee;
	
	if(this.conts.getElementsByTagName("li").length > 1)
	this.init();	
	
}

Marquee.prototype.init = function(){
	this.parseWidth();
	this.doMarquee();
	this.addEvent();
}

Marquee.prototype.parseWidth = function(){
	var lis = this.conts.getElementsByTagName("li");
	var numlis = lis.length;
	var temp = [];
	var contsw = 0;
	
	for(var i=0; i<numlis; i++){
		contsw += parseInt(lis[i].offsetWidth);
		temp.push(lis[i].cloneNode(true));
	}
	this.contsWidth = contsw;
	for(var i=0; i<numlis; i++){
		this.conts.appendChild(temp[i]);
	}
}

Marquee.prototype.addEvent = function(){
	this.marqueeDiv.obj = this;
	this.marqueeDiv.onmouseover=function(){
		clearInterval(this.obj.myMarquee);
	};
	this.marqueeDiv.onmouseout=function(){
		this.obj.doMarquee();
	};
}

Marquee.prototype.doMarquee = function(){
	var self = this;
	var tempWidth = self.contsWidth;
	
	this.myMarquee = setInterval(function(){
		self.marqueeDiv.scrollLeft = (0 + self.moveDist);
		self.moveDist ++;
		if(self.moveDist > tempWidth){
			self.moveDist = 0;
		}
	}, this.speed);

}



var SlideVertical = function(_slideId, _speed){
	this.slideshow = $$(_slideId);
	this.showe = this.slideshow.getElementsByTagName("UL")[0];
	
	this.speed = _speed;
	this.autoAction;
	if(this.showe.getElementsByTagName("LI")[0])
		this.init();
}

SlideVertical.prototype.forward = function(_self){
	var self = _self;
	
	var moveDist = 5;
	var timer = setInterval(function(){
		self.showe.style.top = ( 0 - moveDist ) + "px";
		moveDist += 5;
		if(moveDist > 22){
			clearInterval(timer);
			for(var i=0; i<1; i++){
				var temp = self.showe.getElementsByTagName("LI")[0];
				self.showe.removeChild(temp);
				self.showe.appendChild(temp);
			}
			self.showe.style.top = 0 + "px";
		}
	}, 20);
}


SlideVertical.prototype.addEvent = function(){
	var self = this;
	this.slideshow.onmouseover = function(){
		clearInterval(self.autoAction);
	};
	this.slideshow.onmouseout = function(){
		function temp(){
			self.forward(self);
		}
		self.autoAction = setInterval(temp, self.speed);
	};
}


SlideVertical.prototype.init = function(){
	var self = this;
	this.addEvent();
	function temp(){
		self.forward(self);
	}
	this.autoAction = setInterval(temp, this.speed);
}



var AdaptSize =  function(_picclassname, _size){
	this.pics = this.getimg(_picclassname);
	this.num = this.pics.length;
	
	this.adapt(_size);
}

AdaptSize.prototype.getimg = function(_picclassname){
	var elems = getElementsByClassName(_picclassname);
	var pics = [];
	
	for(var i=0; i<elems.length; i++){
		var imgs = elems[i].getElementsByTagName("IMG");
		for(var j=0; j<imgs.length; j++){
			pics.push(imgs[j]);
		}
	}
	return pics;
}

AdaptSize.prototype.adapt = function(_size){
	var pics = this.pics;
	for(var i=0; i<this.num; i++){
		var width = parseInt(pics[i].clientWidth);
		var height = parseInt(pics[i].clientHeight);
		if(width > _size || height > _size){
			if(width >= height){
				pics[i].style.width = _size + "px";
			}else{
				pics[i].style.height = _size + "px";
			}
		}
	}
}


var AdaptSize2 = function(_picclassname, _size){
	this.pics = this.getimg(_picclassname);
	this.num = this.pics.length;
	
	this.adapt(_size);
}

AdaptSize2.prototype.getimg = function(_picclassname){
	var elems = getElementsByClassName(_picclassname);
	var pics = [];
	
	for(var i=0; i<elems.length; i++){
		var imgs = elems[i].getElementsByTagName("IMG");
		for(var j=0; j<imgs.length; j++){
			pics.push(imgs[j]);
		}
	}
	return pics;
}

AdaptSize2.prototype.adapt = function(_size){
	var pics = this.pics;
	for(var i=0; i<this.num; i++){
		var width = parseInt(pics[i].clientWidth);
		if(width > _size){
			pics[i].style.width = _size + "px";
		}
	}
}



function TabContentAjax(_tab, _content){
	var tabs = $$(_tab).getElementsByTagName("A");
	var content = $$(_content);
	
	var url;
	var temp;
	
	init();
	
	function addEvent(){
		for(var i=0; i<tabs.length; i++){
			tabs[i].onclick = function(){
				if(this.parentNode.className == ""){
					this.parentNode.className = "on";
					temp.className = "";
				}
	
				temp = this.parentNode;
				this.blur();
				url = this.href;
				callContent();
				return false;
			}
		}
	}
	
	function callContent(){
		var xhr = Ajax.createXHR();
		xhr.open("GET", url, true);
		
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 1){
				content.innerHTML = "<img src='http://static.mmoabc.com/www/sys/images/indicator_medium.gif' />";
			}
			if(xhr.readyState == 4){
				if(xhr.status == 200){
					content.innerHTML = xhr.responseText;
				}
			}
		};
		xhr.send(null);
	}
	
	function init(){
		addEvent();
		temp = tabs[0].parentNode;
		temp.className = "on";
		tabs[0].blur();
		url = tabs[0].href;
		callContent();
	}
	
}


function TabContentNoAjax(_tab, _content){
	var tabs = [];
	var contents = [];
	var last = -1;
	init();
	
	function addEvent(){
		for(var i=0; i<tabs.length; i++){
			tabs[i].flag = i;
			tabs[i].onclick = function(){
				shiftContent(this.flag);
				return false;
			}
		}
	}
	
	function shiftContent(current){	
		if(last >=0){
			tabs[last].parentNode.className = "";
			contents[last].style.display = "none";
		}
		tabs[current].parentNode.className = "on";
		tabs[current].blur();
		contents[current].style.display = "block";
		last = current;
			
	}
	
	function init(){
		tabs = $$(_tab).getElementsByTagName("A");
		var elems = $$(_content).childNodes;
		for(var i=0; i<elems.length; i++){
			if(elems[i].nodeType == 1){
				elems[i].style.display = "none";
				contents.push(elems[i]);
			}
		}
		addEvent();
		
		shiftContent(0);
	}
	
}




function layout(_containers, _template){
	var containers = _containers;
	var blockPool = toBlockPool();
	
	var template = _template;
	
	/*
	var temp = "";
	for(block in blockPool){
		temp += block.toString() + " ; ";
	}
	alert(temp);
	*/
	
	function toBlockPool(){
		var blockPool = {};
		for(var n=0; n<containers.length; n++){
			for(var i=0; i<containers[n].childNodes.length; i++){
				if(containers[n].childNodes[i].nodeType == 1 && containers[n].childNodes[i].className){
					var blockName = containers[n].childNodes[i].className;
					blockPool[blockName] = containers[n].childNodes[i];
				}	
			}
		}
		return blockPool;
	}
	
	function rearrangement(){
		for(var i=0; i<template.length; i++){
			for(var j=0; j<template[i].length; j++){
				var blockName = template[i][j];
				containers[i].appendChild(blockPool[blockName]);
			}
		}
	}
	
	rearrangement();
}

/**************************************************/

function ActiveTab(_tab, _content, isAjax, eventType){
	this.tabs = [];
	this.contents = [];
	this.tabsDiv = $$(_tab);
	this.contDiv = $$(_content);
	this.last = -1;
	this.isAjax = isAjax || false;
	this.eventType = eventType || "click";
	this.init(_tab, _content);
	this.timer;
}

ActiveTab.prototype = {
	addEvent: function(){
		var tabs = this.tabs;
		for(var i=0; i<tabs.length; i++){
			tabs[i].flag = i;
			tabs[i].self = this;
			switch(this.eventType){
				case "click":
					tabs[i].onclick = function(){
						this.self.shiftContent(this.flag);
						return false;
					}
					break;
				case "mouseover":
					tabs[i].onmouseover = function(){
						this.self.shiftContent(this.flag);
						return false;
					}
					break;
			}
		}
	},
	
	shiftContent: function(current){	
		if(this.last >=0){
			this.tabs[this.last].parentNode.className = "";
			this.contents[this.last].style.display = "none";
		}
		this.tabs[current].parentNode.className = "on";
		this.contents[current].style.display = "block";
		if(this.isAjax){
			Ajax.hiddenLoading();
			this.callContent(this.tabs[current].href, this.contents[current]);
		}
		this.last = current;
			
	},
	
	callContent: function(_url, _targetNode){
		var xhr = Ajax.createXHR();
		xhr.open("GET", _url, true);
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 1){
				Ajax.showLoading();
			}
			if(xhr.readyState == 4){
				if(xhr.status == 200){
					_targetNode.innerHTML = xhr.responseText;
					Ajax.hiddenLoading();
				}
			}
		};
		xhr.send(null);
	},
	
	init: function(_tab, _content){
		this.tabs = this.tabsDiv.getElementsByTagName("A");
		var elems = this.contDiv.childNodes;
		for(var i=0; i<elems.length; i++){
			if(elems[i].nodeType == 1){
				elems[i].style.display = "none";
				this.contents.push(elems[i]);
			}
		}
		this.addEvent();
		this.shiftContent(0);
	},
	
	autoActive: function(_time){
		var self = this;
		this.start(_time);
		this.tabsDiv.onmouseover = this.contDiv.onmouseover = function(){
			self.stop();
		}
		this.tabsDiv.onmouseout = this.contDiv.onmouseout = function(){
			self.start(_time);
		}
	},
	start: function(_time){
		var self = this;
		this.timer = setInterval(function(){
			var current = self.last + 1;
			if(current >= self.tabs.length) current = 0;
			self.shiftContent(current);
		}, _time);
	},
	stop: function(){
		clearInterval(this.timer);
	}
	
}


window.onload = function(){
	if($$("bulletins_of_system_div"))
	var bulletins_of_system_div = new Marquee("bulletins_of_system_div", 20);		
}

/*****Copy Page Url******/
function fade(show_or_hide){
  with(dd){
      filters.blendTrans.apply();
      style.visibility=show_or_hide?'':'hidden';
      filters.blendTrans.play();
  }
}

function oCopy(obj){  
	obj.select();  
	js=obj.createTextRange();  
	js.execCommand("Copy")  
}





