
/*---------------Í¨ÓÃ±êÇ©ÇÐ»»½Å±¾---------------*/
function FrameGroup(groupName,groupList){
	this.groupName = groupName;
	this.groupList = groupList;
}

var FrameSet = {
	framePrefix: 'fra_',
	frameHeadPrefix: 'fra_head_',
	classBefore: 'classBefore',
	classAfter: 'classAfter',
	classCurrent: 'classCurrent',
	timeFlag: null,
	currentFrameHead: null,
	currentFrame: null,
	frames: new Array(),
	eventType: 'mouse',
	linkageEvent: function(){},
	initFlag: false,
	
	show: function(event){
		FrameSet.currentFrameHead = typeof(event) == 'string' ? event : Event.element(event).parentNode.id == "" ? Event.element(event).parentNode.parentNode.id : Event.element(event).parentNode.id;
		FrameSet.timeFlag = setTimeout('FrameSet.showFrame()',200);
	},
	
	show2: function(event){
		FrameSet.currentFrameHead = typeof(event) == 'string' ? event : Event.element(event).id == "" ? Event.element(event).parentNode.id : Event.element(event).id;
		FrameSet.showFrame();
	},
	
	_show: function(frameHead){
		FrameSet.currentFrameHead = frameHead;
		FrameSet.showFrame();
	},
	
	showFrame: function(){
		var frameHead = FrameSet.currentFrameHead;
		var groupName = frameHead.substring(FrameSet.frameHeadPrefix.length,frameHead.lastIndexOf("_"));
		var serial = frameHead.substring(frameHead.lastIndexOf("_")+1,frameHead.length); 
    
		var frameGroup = FrameSet.getFrameGroup(groupName);

		var frameHeadStyle = FrameSet.classBefore;
		
		for (var i = 0; i < frameGroup.groupList.length; i++)
		{
			frame = $(FrameSet.framePrefix + groupName + '_' + frameGroup.groupList[i]);
			frameHead = $(FrameSet.frameHeadPrefix + groupName + '_' + frameGroup.groupList[i]);
			
			if (frameGroup.groupList[i] == serial)
			{
				frame.style.display = 'inline';
				frameHead.className = FrameSet.classCurrent;
				frameHeadStyle = FrameSet.classAfter;
				FrameSet.currentFrame = frame;
			}
			else
			{
				frame.style.display = 'none';
				frameHead.className = frameHeadStyle;
			}
		}
		FrameSet.linkageEvent(serial);
	},
	
	timeClear: function(){
		window.clearTimeout(FrameSet.timeFlag);
	},
	
	getFrameGroup: function(groupName){
		var frameGroup = new Object();
		
		for (var i = 0; i < FrameSet.frames.length; i++)
		{
			frameGroup = FrameSet.frames[i];
			if (frameGroup.groupName == groupName) return frameGroup;
		}
	},
	
	init: function(){
		if (FrameSet.initFlag == false)
		{
			var frameIds = new Array();
			var frameSerial,frameName,frameHead;
			var frameHeads = document.getElementsByClassName("frame");
			for (var i = 0; i < frameHeads.length; i++)
			{
				var groupList = new Array();
				for(var j=0; j<frameHeads[i].childNodes.length; j++)
				{
					if (frameHeads[i].childNodes[j].nodeType == 1)
					{
						frameIds = frameHeads[i].childNodes[j].id.split("_");
						framePrefix = frameIds.shift();
						if (framePrefix + "_" == FrameSet.framePrefix)
						{
							frameSerial = frameIds.pop();
							frameName = frameIds.length>1 ? frameIds.join("_") : frameIds;
							frameHead = $(FrameSet.frameHeadPrefix + frameName + '_' + frameSerial);
							switch (FrameSet.eventType)
							{
								case 'click':
									Event.observe(frameHead,'click',FrameSet.show2,false);
									break;
								default:
									Event.observe(frameHead,'mouseover',FrameSet.show,false);
									Event.observe(frameHead,'mouseout',FrameSet.timeClear,false);
							}
							groupList.push(frameSerial);
						}
					}
				}
				var frameGroup = new FrameGroup(frameName,groupList);
				FrameSet.frames.push(frameGroup);
				var firstFrameHead = FrameSet.frameHeadPrefix + frameName + '_' + groupList.first();
				FrameSet._show(firstFrameHead);
			}
			FrameSet.initFlag = true;
		}
	}
	
}



