//=============================================== javascript Library last update: 05/11/2009
//making by www.dtop.jp
//===================================================================== 效果函式的設定
//背景物件與建構式----------------------------------------------
//參數：
//回傳值：
function bgObject(){
	this.x;			//配置x座標
	this.y;			//配置y座標
	this.w;			//寬度
	this.h;			//高度
	this.element;	//背景元素
}
//背景物件的初始化方法
//參數：obj:顯示背景後所顯示的視窗元素
//回傳值：
bgObject.prototype.init = function(){
	//視窗已捲動的情況下修正x,y座標
	if(_MSIE){
		this.x = document.documentElement.scrollLeft;
		this.y = document.documentElement.scrollTop;
	}
	else{
		this.x = window.pageXOffset;
		this.y = window.pageYOffset;
	}
	
	//從視窗寬度與大小和捲動量算出的數值
	this.w = windowWidth()+this.x;
	this.h = windowHeight()+this.y;
	
	//建立覆蓋背景的div元素
	this.element = document.createElement('div');
	this.element.id = 'bgElement';
	this.element.style.width = this.w+'px';
	this.element.style.height = this.h+'px';
	
	//在顯示的body上顯示背景元素
	var addBodyElement = document.getElementsByTagName('body').item(0);
	addBodyElement.appendChild(this.element);
	
	//降低透明度
	alpha(this.element.id,70,30,'up',this);
}
//背景物件顯示後的處理
//參數：
//回傳值：
bgObject.prototype.next_Event = function(){
	//顯示背景後若想執行什麼時就在此撰寫
}

//視窗物件與建構式----------------------------------------------
//參數：w:視窗寬度　h:視窗高度　file:顯示的外部檔案
//回傳值：
function winObject(w,h,file){
	this.w = w;				//寬度
	this.h = h;				//高度
	this.element;			//視窗元素
	this.loadfile = file;	//顯示的外部檔案
}
//視窗物件的初始化方法
//參數：
//回傳值：
winObject.prototype.init = function(){
	var z = 4;
	var testW = this.w/z;
	var testH = this.h/z;
	
	if(testW<2) testW = 2;
	if(testH<2) testH = 2;

	this.element = document.createElement('div');
	this.element.id = 'winElement';
	this.element.style.width = testW+'px';
	this.element.style.height = testH+'px';
	
	var addBodyElement = document.getElementsByTagName('body').item(0);
	addBodyElement.appendChild(this.element);

	alpha(this.element.id,100,12,'same');
	zoom(this.element.id,z*100,12,'same',this);
}
//視窗物件顯示結束後的處理
//參數：
//回傳值：
winObject.prototype.next_Event = function(){
	//載入外部檔案
	httpOpen(this.loadfile,this);
}

//載入外部檔案的物件----------------------------------------------
function httpOpen(file,displayObj){
	//進行載入的httpRequest物件
	var httpObject;
	
	if(_MSIE){
		httpObject = new ActiveXObject("Msxml2.XMLHTTP");
	}
	else{
		httpObject = new XMLHttpRequest();
	}
	
	//設定載入狀態變化時所呼叫的動作
	httpObject.onreadystatechange = function(){
		//readyState完全載入的情況（４）
		if(httpObject.readyState == 4){
			//存放載入後的內容
			var filestr;
			
			switch(httpObject.status){
				//載入完成
				case 200:
					filestr = httpObject.responseText;
				break;
				//檔案不存在
				case 404:
					filestr = '找不到指定的檔案';
				break;
			}
			//顯示於視窗元素
			displayObj.element.innerHTML = '<div id="winTclose"><a href="#close" onclick="removeWindow();"><img src="http://www.namaste.com.tw/linkbox/winset/close.gif" alt="close" width="22" height="22" border="0" /></a></div><div id="winmain">'+filestr+'</div>';
		}
	}
	
	//開啓指定檔案
	httpObject.open('GET',file,true);
	httpObject.send(null);
}

//刪除物件與建構式----------------------------------------------
//參數：emID:欲刪除之元素id
//回傳值：
function delwinObject(emID){
	this.id = emID;									//欲刪除之元素id
	this.element = document.getElementById(emID);	//欲刪除的元素本身
}
//透過刪除物件執行
//參數：
//回傳值：
delwinObject.prototype.init = function(){
	alpha(this.id,0,8,'up',this);
}
//視窗物件透明度變成0之後的處理＞刪除元素
//參數：
//回傳值：
delwinObject.prototype.next_Event = function(){
	var parentid = this.element.parentNode;
	parentid.removeChild(this.element);
}

//執行---------------------------------------------------------------------------
//建立視窗
function win(w,h,file){
	var winDiv = new winObject(w,h,file);
	var bgDiv = new bgObject();
	bgDiv.init();
	winDiv.init();
}

//消除視窗
function removeWindow(){
	var id = new delwinObject('winElement');
	var idbg = new delwinObject('bgElement');
	
	id.init();
	idbg.init();
}


