function Period() {
	this.id;
	this.name;
}

function Magazine() {
	this.item = new Array();
	this.id;
	this.name;
	//加入
	this.add = function(obj) {
		this.item[this.item.length] = obj;
	};
}

function MagazineConsole() {
	this.item = new Array();
	//加入
	this.add = function(id, name) {
		temp = new Magazine();
		temp.id = id;
		temp.name = name;
		this.item[this.item.length] = temp;
	};
	this.addPeriod = function(magazineID, id, name) {
		for(var i=0;i<this.item.length;i++) {
			if(this.item[i].id == magazineID) {
				temp = new Period();
				temp.id = id;
				temp.name = name;
				this.item[i].add(temp);
			}
		}
	};
	this.build = function(ob) {
		ob.options[0] = new Option("請選擇", "");
		for(var i=0;i<this.item.length;i++) {
			if(this.item[i].item.length>0) {
				ob.options[ob.options.length] = new Option(this.item[i].name, this.item[i].id);
			}
		}
	}
	this.getMagazine = function(magazineID) {
		for(var i=0;i<this.item.length;i++) {
			if(this.item[i].id == magazineID) {
				return this.item[i];
			}
		}
		return null;
	}
}


//雜誌
function MagazineActionEventConstruct() {
	this.item = new Array();
	this.referenceHTMLObject;
	this.parentActionEvent;
	this.change = function() {
		for(var i=0;i<this.item.length;i++) {
			this.item[i].notify();
		}
	}	
	this.addActionListener = function(listener) {
		listener.parentActionEvent = this;
		this.item[this.item.length] = listener;
	}
	this.setSelected = function(id) {
		try {
			for(var i=0;i<this.referenceHTMLObject.options.length;i++) {
				if(this.referenceHTMLObject.options[i].value == id) {
					this.referenceHTMLObject.options[i].selected=true;
					this.change();
				}
				
			}
		} catch(e) { alert(e.description); }
	}

}
function MagazineActionEvent(HTMLObject) {
	temp = new MagazineActionEventConstruct();
	HTMLObject.actionEvent = temp;
	temp.referenceHTMLObject = HTMLObject;
	return temp;
}


//期數
function PeriodActionEventConstruct() {
	this.item = new Array();
	this.referenceHTMLObject;
	this.parentActionEvent;
	this.addActionListener = function(listener) {
		listener.parentActionEvent = this;
		this.item[this.item.length] = listener;
	}
	this.change = function() {
		for(var i=0;i<this.item.length;i++) {
			this.item[i].notify();
		}
	}
	this.notify = function() {
		parentHTMLObject = this.parentActionEvent.referenceHTMLObject;
		//取得點選的索引
		var tempIndex = parentHTMLObject.options[parentHTMLObject.selectedIndex].value;
		magazineObj = magazineConsole.getMagazine(tempIndex);
		if(magazineObj!=null) {
			for(var i=0;i<magazineObj.item.length;i++) {
				this.referenceHTMLObject.options[i] = new Option(magazineObj.item[i].name, magazineObj.item[i].id);
			}
			this.referenceHTMLObject.options.length = magazineObj.item.length;
			//預設第一個是被選擇
			this.referenceHTMLObject.options[0].selected = true;
		} else {
			this.referenceHTMLObject.options.length = 0;
		}
		this.change();
	}
}
function PeriodActionEvent(HTMLObject) {
	temp = new PeriodActionEventConstruct();
	HTMLObject.actionEvent = temp;
	temp.referenceHTMLObject = HTMLObject;
	return temp;
}
