﻿<!--

// popup workplace window
var popWindows;

function popMainWin() 
{
  leftpos = screen.width - 600;
  para='toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no,width=598,height=448,left = '+leftpos+',top = 15';
  url='aswmain.html';
  
  if(popWindows==null || popWindows.closed)
  {	 
     popWindows = window.open(url, 1 ,para);
     if(popWindows!=null)
     	 return true;
  }
  else
  {	  
  	  popWindows.location.href= url;
  	  popWindows.focus();
  	  return true;
  }
}


// ---- slide panel effect ani control

var deltaCount=0;
var mobj1;
var mobj2;

function setHiddenPosition(obj)
{
     var mobj=document.all[obj];
	
	 mobj.style.left = 638
}

function moveLeft(obj1,obj2)
{
	mobj1=document.all[obj1];
	mobj2=document.all[obj2];
	aniMoveLeft();
}

function aniMoveLeft()
{
	
	deltaCount++;
	
	mobj1.style.left = mobj1.offsetLeft -20* Math.sin(1.57-1.57*(40-deltaCount)/40);
	mobj2.style.left = mobj2.offsetLeft -20* Math.sin(1.57-1.57*(40-deltaCount)/40);
	
	if(mobj2.offsetLeft<=52)
	{
		mobj1.style.left = -563;
		mobj2.style.left = 37;
	    deltaCount=0;
	    protectButton=0;
	    
	    
	    // setup right button
        if(currentPageType[currentStep]==1)
        {
           document.all['waiting'].style.display = 'none';
           
	       document.all['naviright'].style.display = 'block';
        }
        else if(currentPageType[currentStep]==2)
        {
           document.all['waiting'].style.display = 'none';
           
	       document.all['confirm'].style.display = 'block';
        }
        else if(currentPageType[currentStep]==3)
        {
           document.all['waiting'].style.display = 'none';
           
	       //document.all['complete'].style.display = 'block';
        }
        
	    return;
	}
	else
	{
	   setTimeout('aniMoveLeft()',5);
	}
}


function moveRight(obj1,obj2)
{
	mobj1=document.all[obj1];
	mobj2=document.all[obj2];
	aniMoveRight();
}

function aniMoveRight()
{
	
	deltaCount++;
	
	mobj1.style.left = mobj1.offsetLeft +20* Math.sin(1.57-1.57*(40-deltaCount)/40);
	mobj2.style.left = mobj2.offsetLeft +20* Math.sin(1.57-1.57*(40-deltaCount)/40);
	
	if(mobj2.offsetLeft>=37)
	{
	    mobj1.style.left = 637;
		mobj2.style.left = 37;
	    deltaCount=0;
	    protectButton=0;
	    
	    if(defaultNextPage[currentStep].length > 0)
          setNextPage(defaultNextPage[currentStep]);
	    
	    return;
	}
	else
	{
	   setTimeout('aniMoveRight()',5);
	}
}

// ===========----- ajax page generator and control functions  ---------------------====

var currentStep=0;
var lastStep=0;
var urlPrefix = "http://gaea.ecoast.idv.tw/asw-vkproject/xmlpages/"
var protectButton =0;

var nextPageUrl="";
var nextPagePara="";
var nextPageUrl4abort="";
var nextPagePara4abort="";

var currentUrl="main";
var preUrl="";
var prePreUrl="";
var cachedUrl="";
	
var currentVerify = new Array(20);
currentVerify[0] = "";

var currentPageType = new Array(20);
currentPageType[0] = 1;

// new fix for defaultNextPage
var defaultNextPage = new Array(20);
defaultNextPage[0] = "";

var noVerify = false;

var sendPara = false;
var sendParaPre = false;

var paraStackPos = new Array(20);
var paraStackIds = new Array(200);
var paraStackTop =0;
var paraStackPt =0;
paraStackPos[0]= 0;
paraStackPos[1]= 'X';
paraStackIds[0]= 'X';

function loadNextPage(url,para)
{

    
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    //http_request.overrideMimeType('text/xml');
    
    url=urlPrefix+url;
    
    // prepare parament
	if(sendPara)
	{    
	    var para='';
	    //alert(currentStep+":"+paraStackPos[currentStep]+" "+(currentStep+1)+":"+paraStackPos[currentStep+1]);
	    
	    if(paraStackPos[currentStep+1]=='X')
	    	stackSize = paraStackTop;
	    else
	        stackSize =paraStackPos[currentStep+1];
	    
	    //alert(currentStep+":"+stackSize);
	    for(var i=0;i<stackSize;i++)
	    {
	    	if(i!=0)
	    		para = para + '&';
	    	
	    	if(paraStackIds[i]!='X' & document.getElementById(paraStackIds[i]) !=null)
	    	  para = para + paraStackIds[i]+"="+document.getElementById(paraStackIds[i]).value.replace(/^[\s]*/gi,"").replace(/[\s]*$/gi,"");
	    }

	    //alert(para);
	}
	else
		para='';
	
	var networkTimer;
	
	networkTimer = setTimeout(function() { http_request.abort(); abortNextPage(); alert("很抱歉，暫時無法與伺服器連線，請您稍後一會，檢查網路連線。\n您不需關閉訂購視窗重新來過，只需重新按下「下一步」按鈕，\n即可繼續您的訂購。造成您的不便，敬請見諒。");},15000);
		
    http_request.onreadystatechange = function(){
      if (http_request.readyState == 4) {
            if (http_request.status == 200) {
            	
            	clearTimeout(networkTimer);
            		
                var xmldoc = http_request.responseXML;
                var itemList = xmldoc.getElementsByTagName("page");
                	

                
                paraStackPt=0;
                currentVerify[currentStep+1] = "";
                defaultNextPage[currentStep+1] = "";
                                
                //alert(http_request.responseText );
                //alert(itemList.length);
                
                sendParaPre = sendPara;
                sendPara = false;
                                
                for (var i = 0; i < itemList.length ; i++) 
                { 
                	var nodeList = itemList.item(i).childNodes;
                	
                	for (var j = 0; j < nodeList.length ; j++) 
                	{
                        var node = nodeList.item(j);
                        if (node.nodeName == "type")
                        	currentPageType[currentStep+1] = node.firstChild.nodeValue;
                        
                        if (node.nodeName == "html")
                        	var html = node.firstChild.nodeValue;
                        
                        if (node.nodeName == "nextpage")  // recommend for type 2
                        	defaultNextPage[currentStep+1] = node.firstChild.nodeValue;
                        
                        if (node.nodeName == "verify")
                        	currentVerify[currentStep+1] = node.firstChild.nodeValue;
                        
                        if (node.nodeName == "sendParaOn")
                        	sendPara = true;
                        
                        // add to para stack --
                        if(node.nodeName == "parameters")
                        {
                        	if(currentUrl!=cachedUrl)
                        	{
                        		if(paraStackPos[currentStep+1]=='X' & paraStackPt==0)
                        		{
                        	      paraStackPos[currentStep+1] = paraStackTop;
                        	      paraStackPos[currentStep+2] = "X";
                        		}	
                        		
                        		if(paraStackPos[currentStep+1]!='X' & paraStackPt==0)
                        		{
                        		  paraStackTop = paraStackPos[currentStep+1];
                        		}
                        		
                        		paraStackIds[paraStackTop] = node.firstChild.nodeValue;
                                paraStackTop++;
                                paraStackPt++;
                        		paraStackIds[paraStackTop] = "X";
                        		
                        	}
                        }
                    }
                    
                    if(paraStackPt==0)
                    {
                    	paraStackPos[currentStep+1]= paraStackTop;
                    	paraStackPos[currentStep+2] ='X';
                    }

                }
                
                // add div
                var objname1= 'condiv-'+currentStep;
                currentStep++;
                addElement(currentStep,html,url);
                setHiddenPosition('condiv-'+currentStep);
                
                var objname2= 'condiv-'+currentStep;
                moveLeft(objname1,objname2);
                
                // setup left button
                if(currentPageType[currentStep]==1 || currentPageType[currentStep]==2)
                {
                  document.all['navileft'].style.opacity = .75;
                  document.all['navileft'].style.filter = "alpha(opacity=75)";
                }
                else if(currentPageType[currentStep]==3)
                {
                   document.all['navileft'].style.opacity = .3;
                   document.all['navileft'].style.filter = "alpha(opacity=30)";
                }
               	

                
                // set default nextpage, recommend for type 2
                if(defaultNextPage[currentStep].length > 0)
                   setNextPage(defaultNextPage[currentStep]);
                	          	
            } else {
                abortNextPage();
            }
        }
    };
    
    http_request.open('POST', url, true);
    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http_request.send(para);
     
}

function init()
{
    document.all['navileft'].style.opacity = .3;
    document.all['navileft'].style.filter = "alpha(opacity=30)";

    document.all['naviright'].style.opacity = .3;
    document.all['naviright'].style.filter = "alpha(opacity=30)";
    
    document.all['waiting'].style.display = 'none';
    document.all['confirm'].style.display = 'none';
    
}

function setNextPage(url)
{
    document.all['naviright'].style.opacity = .75;
    document.all['naviright'].style.filter = "alpha(opacity=75)";
    
	nextPageUrl = url;
}

function setSendPara()
{
	sendPara = true;
}

function setNoVerify()
{
	noVerify = true;
}

function submitOrder()
{
	//alert('Hi');
	setSendPara();
	nextPage();
}

function abortNextPage()
{
   
   protectButton=0;
	
   currentUrl = preUrl;
   preUrl = prePreUrl;
       
   nextPageUrl=nextPageUrl4abort;
   nextPagePara=nextPagePara4abort;
   
   document.all['waiting'].style.display = 'none';
      
   if(currentPageType[currentStep]==2)
   {
      document.all['confirm'].style.display = 'block';
      document.all['naviright'].style.display = 'none';
   }
   else
   {
      document.all['naviright'].style.display = 'block';
      document.all['naviright'].style.opacity = .75;
      document.all['naviright'].style.filter = "alpha(opacity=75)";
      document.all['confirm'].style.display = 'none';
   }
   
}
	
function nextPage()
{
	if(nextPageUrl.length!=0 & protectButton==0)
	{
		if(currentVerify[currentStep].length>0 & noVerify == false)
		{
			if(!eval(currentVerify[currentStep]))
			{
				alert("資料不完整，請檢查後重新輸入。");
				return;
			}
		}
		
		protectButton=1;
	    
	    prePreUrl = preUrl;
	    preUrl=currentUrl;
	    currentUrl=nextPageUrl;
	    
	    loadNextPage(nextPageUrl);
	    
	    noVerify = false;
	    
	    nextPageUrl4abort=nextPageUrl;
        nextPagePara4abort=nextPagePara;
   
	    nextPageUrl="";
        nextPagePara="";
        document.all['naviright'].style.opacity = .3;
        document.all['naviright'].style.filter = "alpha(opacity=30)";
        
        document.all['naviright'].style.display = 'none';
        document.all['confirm'].style.display = 'none';
        document.all['waiting'].style.display = 'block';
	}

}

function prePage()
{
	if(protectButton==1)
	   return;
	    
	if(currentStep==0)
		return;
	
	if(currentPageType[currentStep]==3)
		return;
		        
	protectButton =1;
	cachedUrl=currentUrl;
	sendPara = sendParaPre;
	
	var preDiv =currentStep-1;
	moveRight('condiv-'+currentStep,'condiv-'+preDiv);
	
	currentStep--;
	
	nextPageUrl="";
    nextPagePara="";
    document.all['naviright'].style.opacity = .3;
    document.all['naviright'].style.filter = "alpha(opacity=30)";
        
	if(currentStep==0)
	{
        document.all['navileft'].style.opacity = .3;
        document.all['navileft'].style.filter = "alpha(opacity=30)";
    }
    
    document.all['waiting'].style.display = 'none';
    document.all['confirm'].style.display = 'none';
    document.all['naviright'].style.display = 'block';
    

}

function addElement(k,html,url) {
  var ni = document.getElementById('divcontainer');
  var divIdName = 'condiv-'+k;
  
  if(document.all[divIdName]==null)
  {
      var newdiv = document.createElement('div');
      newdiv.setAttribute('id',divIdName);
      newdiv.className = 'contentdiv';
      ni.appendChild(newdiv);
  }
  else
  	  var newdiv = document.all[divIdName];
  
  if(currentUrl!=cachedUrl || sendPara == true)
     document.all[divIdName].innerHTML = '<div class="contentdivinner" id="condivin-'+k+'">'+ html +'</div>';

}

//-- 輸入元件互動 functions

function setQt(obj, target)
{
	if(obj.checked)
		document.getElementById(target).value="1";
	else
		document.getElementById(target).value="0";
}

function setHiddenValue(target, value)
{
	document.getElementById(target).value= value;
}

function get_radio_value(name)
{
	var value;
    for (var i=0; eval('i < document.'+name+'.length'); i++)
   {
   if (eval('document.'+name+'[i].checked'))
      {
        eval('value= document.'+name+'[i].value');
      }
   }
   return value;
}

// only for vkproject

function clearAllCombo()
{
   document.getElementById('ctb1').checked=false;
   document.getElementById('ctb2').checked=false;
   document.getElementById('ctb3').checked=false;
   document.getElementById('ctb4').checked=false;
   document.getElementById('ctb5').checked=false;
   
   document.getElementById('ctb6').checked=false;
   document.getElementById('ctb6-1').checked=false;
   
   document.getElementById('ctb7').checked=false;
   document.getElementById('ctb8').checked=false;
   document.getElementById('ctb9').checked=false;
   document.getElementById('ctb10').checked=false;
   
   document.getElementById('ctb11').checked=false;
   document.getElementById('ctb12').checked=false;
   document.getElementById('ctb13').checked=false;
   document.getElementById('ctb14').checked=false;
   document.getElementById('ctb15').checked=false;
   
   document.getElementById('ctb16').checked=false;

   setHiddenValue('ctnumber1-1','0');
   
   setHiddenValue('ctnumber2-1','0');
   setHiddenValue('ctnumber2-2','0');
   setHiddenValue('ctnumber2-3','0');
   setHiddenValue('ctnumber2-4','0');
   setHiddenValue('ctnumber2-5','0');
   setHiddenValue('ctnumber2-6','0');
   
   setHiddenValue('ctnumber3-1','0');
   setHiddenValue('ctnumber3-2','0');
   setHiddenValue('ctnumber3-3','0');
   setHiddenValue('ctnumber3-4','0');
   setHiddenValue('ctnumber3-5','0');
   	   
   setHiddenValue('ctnumber4-1','0');
   setHiddenValue('ctnumber4-2','0');
   setHiddenValue('ctnumber4-3','0');
   setHiddenValue('ctnumber4-4','0');
   setHiddenValue('ctnumber4-5','0');
   
}
//-->