

//
// Ajax Code
//
window.console = window.console || { assert:function(){ }, log:function(){} };

var GabowzCore = {
	timer : null,
	
	initialize : function(){
		this.slidemenu_init();
		this.ticker_init();
		this.changemenu.initialize();
		this.flickarea.initialize();
		this.dissolve.initialize();
		this.timer = setInterval('GabowzCore.action()',100);
	},
	
	action : function (){
		if(GabowzCore.slidemenu.status) GabowzCore.slidemenu.paint();
		if(GabowzCore.flickarea.status) GabowzCore.flickarea.paint();
		if(GabowzCore.ticker.status) GabowzCore.ticker.paint();
		if(GabowzCore.dissolve.paint) GabowzCore.dissolve.paint();
	},


//	slidemenu

	slidemenu : {},
	slidemenu_init : function(){
		this.slidemenu.area = document.getElementById("gc_slidemenu");
		this.slidemenu.status = !!(this.slidemenu.area);
		if(! this.slidemenu.status) return;
		this.slidemenu.paras = this.slidemenu.area.getElementsByTagName("li");
		this.slidemenu.selected = 0;
		this.slidemenu.target = [];
		this.slidemenu.height = [];
		this.slidemenu.area.style.overflow = 'hidden';
		this.slidemenu.paint = function(){
			if(! GabowzCore.slidemenu.status) return;
			var point = -120;
		//	var point = -200;
			for(var i=0; i<GabowzCore.slidemenu.paras.length; i++){
				point += (GabowzCore.slidemenu.selected == i ? 120 : 65);
			//	point += (GabowzCore.slidemenu.selected == i ? 200 : 70);
				GabowzCore.slidemenu.target[i] = Math.floor((point + GabowzCore.slidemenu.target[i] ) / 2);
				GabowzCore.slidemenu.paras[i].style.top = GabowzCore.slidemenu.target[i] + "px";
			}
		};
		this.slidemenu.select = function(event){
			try {
				GabowzCore.slidemenu.selected = event.target.smno;
			}catch(e){
				GabowzCore.slidemenu.selected = event.srcElement.smno;
			}
		}
		
		for(var i=0; i<this.slidemenu.paras.length; i++){
			var elems = (this.slidemenu.paras[i].all || this.slidemenu.paras[i].getElementsByTagName("*"));
			for(var j=0; j<elems.length; j++){
				if(elems[j].className.indexOf('handle') > -1){
					this.slidemenu.height[i] = elems[j].clientHeight;
		        }
				if(elems[j].className.indexOf('gc_hitpoint') > -1){
					try {
						elems[j].addEventListener('mouseover', GabowzCore.slidemenu.select, true);
						if(this.Browser.Opera) elems[j].onmouseover = GabowzCore.slidemenu.select;
					}catch(e){
						elems[j].attachEvent('onmouseover', GabowzCore.slidemenu.select);
					}
					elems[j].smno = i;
				}
			}
			this.slidemenu.paras[i].style.zIndex = this.slidemenu.paras.length-i;
			this.slidemenu.target[i] = 0;
		}
	},
	


//	changemenu
	
	changemenu : {
		status : false,
		index : '',
		unknown: '',
		data : new Array(),
		initialize : function(){
			
			this.unknown = 'Home';
			this.data['Home'] =		'gc_changemenu_Home';
			this.data['CableTV'] =	'gc_changemenu_CableTV';
			this.data['Internet'] =	'gc_changemenu_Internet';
			this.data['Phone'] =	'gc_changemenu_Phone';
			this.data['Support'] =	'gc_changemenu_Support';
			this.data['Application'] =	'gc_changemenu_Application';
			this.data['Recruit'] =	'gc_changemenu_Recruit';
			
			this.data['aitaiHome'] =		'gc_changemenu_aitaiHome';
			this.data['aitaiInternet'] =	'gc_changemenu_aitaiInternet';
			this.data['aitaiSupport'] =		'gc_changemenu_aitaiSupport';
			
			var cururl = document.location.href;
			this.set(cururl.indexOf('#') > 0 ? cururl.substr(cururl.indexOf('#')+1) : this.unknown);
		},
		set : function(id){
			this.status = !!(document.getElementById(GabowzCore.changemenu.data[id]));
			
			GabowzCore.changemenu.index = id;
			GabowzCore.changemenu.paint();
		},
		paint : function(){
			var curid = GabowzCore.changemenu.index;
			if(! GabowzCore.changemenu.status) return;
			if(! GabowzCore.changemenu.data[curid]) return;
			
			for( key in GabowzCore.changemenu.data){
				var curmenu = document.getElementById(GabowzCore.changemenu.data[key]);
				if(! curmenu) continue;
				curmenu.style.display = (key == curid ? 'block' : 'none');
			}
		}
	},
	
	flickarea : {
		area : null,
		status : false,
		painted : false,
		url : '',
		width : 0, 
		height : 0,
		index : '',
		unknown: '',
		data : new Array(),
		initialize : function(){
			this.area = document.getElementById('gc_flickarea'),
			this.status = !!(this.area);
			
			this.unknown = 'Home';
			this.data['Home'] =			['page.jsp?id=1826',	'100%',		'175px'];
			this.data['CableTV'] =		['page.jsp?id=1825',	'100%',		'300px'];
			this.data['Internet'] =		['page.jsp?id=1827',	'100%',		'235px'];
			this.data['Phone'] =		['page.jsp?id=1828',	'100%',		'405px'];
			this.data['Support'] =		['page.jsp?id=1829',	'100%',		'875px'];
			this.data['Application'] =	['page.jsp?id=1830',	'100%',		'400px'];
			this.data['Recruit'] =		['page.jsp?id=1831',	'100%',		'205px'];
			
			this.data['aitaiHome'] =			['page.jsp?id=1837',	'100%',		'175px'];
			this.data['aitaiInternet'] =		['page.jsp?id=1835',	'100%',		'300px'];
			this.data['aitaiSupport'] =			['page.jsp?id=1836',	'100%',		'525px'];
			
			var cururl = document.location.href;
			this.index = cururl.indexOf('#') > 0 ? cururl.substr(cururl.indexOf('#')+1) : this.unknown;
			this.set(this.index);
		},
		set : function(id){
			var curid = (GabowzCore.flickarea.data[id]) ? id : GabowzCore.flickarea.unknown;
			if(! GabowzCore.flickarea.status) return;
			if(! GabowzCore.flickarea.data[curid]) return;
			var curdata = GabowzCore.flickarea.data[curid];
			GabowzCore.flickarea.url = curdata[0];
			GabowzCore.flickarea.width = curdata[1];
			GabowzCore.flickarea.height = curdata[2];
			GabowzCore.flickarea.painted = false;
			GabowzCore.flickarea.area.innerHTML = '';
		},
		paint : function(){
			if(! GabowzCore.flickarea.status || GabowzCore.flickarea.painted) return;
			if(GabowzCore.Browser.AppleWebKit) if(document.readyState != 'complete') return;
			
			GabowzCore.flickarea.area.style.width = GabowzCore.flickarea.width;
			GabowzCore.flickarea.area.style.height = GabowzCore.flickarea.height;
			GabowzCore.flickarea.area.innerHTML = '<iframe src="'+GabowzCore.flickarea.url+'" name="gc_flickarea" width="'+GabowzCore.flickarea.width+'" height="'+GabowzCore.flickarea.height+'" scrolling="no" frameborder="0"></iframe>';
			GabowzCore.flickarea.painted = true;
		}
	},
	
	ticker : {},
	ticker_init : function(){
		this.ticker.area = document.getElementById("gc_ticker");
		this.ticker.status = !!(this.ticker.area);
		if(! this.ticker.status) return;
		
		this.ticker.index = 0;
		this.ticker.stage = 0;
		this.ticker.waiting = 0;
		this.ticker.paras = this.ticker.area.getElementsByTagName("li");
		this.ticker.paint = function(){
			var index = GabowzCore.ticker.index;
			var stage = GabowzCore.ticker.stage;
			var waiting = GabowzCore.ticker.waiting;
			var alpha = 0;
			var pitch = [15,5,15,20];
			var display = 'list-item';
			
			if(GabowzCore.Browser.MSIE) alpha = GabowzCore.ticker.paras[index].filters.alpha.opacity;
			else if(GabowzCore.Browser.Gecko) alpha = GabowzCore.ticker.paras[index].style.MozOpacity * 100;
			else if(GabowzCore.Browser.AppleWebKit) alpha = GabowzCore.ticker.paras[index].style.opacity * 100;
			else if(GabowzCore.Browser.Opera) alpha = GabowzCore.ticker.paras[index].style.opacity * 100;
			
			switch(stage){
				case 0: alpha = waiting; break;
				case 1: alpha = 100;  break;
				case 2: alpha = 100-waiting; break;
				case 3: alpha = 0; break;
			}
			waiting += pitch[stage];
			
			// set css values
			if(waiting >= 100){
				waiting = 0; stage += 1;
				if(stage > 3){
					stage = 0;
					GabowzCore.ticker.paras[index].style.display = 'none';
					index += 1;
					if(GabowzCore.ticker.paras.length <= index ){
						index = 0;
						GabowzCore.ticker.paras[index].style.display = 'list-item';
					}
				}
			}
			// alpha
			if(alpha<=0) alpha = 1;
			if(alpha>=100) alpha = 99;
			if(GabowzCore.Browser.MSIE) GabowzCore.ticker.paras[index].filters.alpha.opacity = alpha;
			else if(GabowzCore.Browser.Gecko) GabowzCore.ticker.paras[index].style.MozOpacity = alpha / 100;
			else if(GabowzCore.Browser.AppleWebKit) GabowzCore.ticker.paras[index].style.opacity = alpha / 100;
			else if(GabowzCore.Browser.Opera) GabowzCore.ticker.paras[index].style.opacity = alpha / 100;
			
			GabowzCore.ticker.paras[index].style.display = 'list-item';
			GabowzCore.ticker.index = index;
			GabowzCore.ticker.stage= stage;
			GabowzCore.ticker.waiting= waiting;
		};
	
	},
	
/*
	dissolve: {
		area : null,
		status : false,
		index : 0,
		stage : 0,
		waiting : 500,
		paras : [],
		initialize : function(){
			this.area = document.getElementById("gc_dissolve");
			this.status = !!(this.area);
			if(! this.status) return;
			
			var elems = (this.area.all || this.area.getElementsByTagName("*"));
			for(var i=0; i<elems.length; i++){
				if(elems[i].className.indexOf('gc_dissolve') > -1 && elems[i].tagName == "DIV"){
					this.paras.push(elems[i]);
					elems[i].style.display = 'none';
//					if(GabowzCore.Browser.MSIE) elems[i].style({zoom: 1});
				}
			}
		},
		
		paint : function(){
			if(! GabowzCore.dissolve.status) return;
			
			var index = GabowzCore.dissolve.index;
			var stage = GabowzCore.dissolve.stage;
			var waiting = GabowzCore.dissolve.waiting;
			var alpha = 0;
			var pitch = [15,1,15,20];
			var display = 'block';
			
//			var db = '>>';
//			for( key in GabowzCore.dissolve.paras[index].style){
//				db += "["+key+']:'+GabowzCore.dissolve.paras[index].style[key]+"\n";
//			}
//			alert(index+':'+ db);

			if(GabowzCore.Browser.MSIE) alpha = GabowzCore.dissolve.paras[index].filters.alpha.opacity;
			else if(GabowzCore.Browser.Gecko) alpha = GabowzCore.dissolve.paras[index].style.MozOpacity * 100;
			else if(GabowzCore.Browser.AppleWebKit) alpha = GabowzCore.dissolve.paras[index].style.opacity * 100;
			else if(GabowzCore.Browser.Opera) alpha = GabowzCore.dissolve.paras[index].style.opacity * 100;
			
			switch(stage){
				case 0: alpha = waiting; break;
				case 1: alpha = 100;  break;
				case 2: alpha = 100-waiting; break;
				case 3: alpha = 0; display = 'none';  break;
			}
			waiting += pitch[stage];
			
			if(waiting >= 100){
				waiting = 0; stage += 1;
				if(stage > 3){ stage = 0;
					index += 1; if(GabowzCore.dissolve.paras.length <= index ) index = 0;
				}
			}
			
			if(GabowzCore.Browser.MSIE) GabowzCore.dissolve.paras[index].filters.alpha.opacity = alpha;
			else if(GabowzCore.Browser.Gecko) GabowzCore.dissolve.paras[index].style.MozOpacity = alpha / 100;
			else if(GabowzCore.Browser.AppleWebKit) GabowzCore.dissolve.paras[index].style.opacity = alpha / 100;
			else if(GabowzCore.Browser.Opera) GabowzCore.dissolve.paras[index].style.opacity = alpha / 100;
			
			GabowzCore.dissolve.paras[index].style.display = display;
			GabowzCore.dissolve.index = index;
			GabowzCore.dissolve.stage = stage;
			GabowzCore.dissolve.waiting= waiting;
		}
	},
*/

	dissolve: {
		area : null,
		status : false,
		index : 0,
		stage : 0,
		waiting : 0,
		paras : [],
		initialize : function(){
			this.area = document.getElementById("gc_dissolve");
			this.status = !!(this.area);
			if(! this.status) return;
			
			var elems = (this.area.all || this.area.getElementsByTagName("*"));
			for(var i=0; i<elems.length; i++){
				if(elems[i].className.indexOf('gc_dissolve') > -1 && elems[i].tagName == "DIV"){
					this.paras.push(elems[i]);
					elems[i].style.display = 'none';
//					if(GabowzCore.Browser.MSIE) elems[i].style({zoom: 1});
				}
			}
		},
		
		paint : function(){
			if(! GabowzCore.dissolve.status) return;
			
			var index = GabowzCore.dissolve.index;
			var stage = GabowzCore.dissolve.stage;
			var waiting = GabowzCore.dissolve.waiting;
			var alpha = 0;
			var pitch = [15,1,15,20];
			var display = 'block';
			
//			var db = '>>';
//			for( key in GabowzCore.dissolve.paras[index].style){
//				db += "["+key+']:'+GabowzCore.dissolve.paras[index].style[key]+"\n";
//			}
//			alert(index+':'+ db);

			if(GabowzCore.Browser.MSIE) alpha = GabowzCore.dissolve.paras[index].filters.alpha.opacity;
			else if(GabowzCore.Browser.Gecko) alpha = GabowzCore.dissolve.paras[index].style.MozOpacity * 100;
			else if(GabowzCore.Browser.AppleWebKit) alpha = GabowzCore.dissolve.paras[index].style.opacity * 100;
			else if(GabowzCore.Browser.Opera) alpha = GabowzCore.dissolve.paras[index].style.opacity * 100;
			
			switch(stage){
				case 0: alpha = waiting; break;
				case 1: alpha = 100;  break;
				case 2: alpha = 100-waiting; break;
				case 3: alpha = 0; display = 'none';  break;
			}
			waiting += pitch[stage];
			
			if(waiting >= 100){
				waiting = 0; stage += 1;
				if(stage > 3){ stage = 0;
					index += 1; if(GabowzCore.dissolve.paras.length <= index ) index = 0;
				}
			}
			
			
			if(GabowzCore.Browser.MSIE) GabowzCore.dissolve.paras[index].filters.alpha.opacity = alpha;
			else if(GabowzCore.Browser.Gecko) GabowzCore.dissolve.paras[index].style.MozOpacity = alpha / 100;
			else if(GabowzCore.Browser.AppleWebKit) GabowzCore.dissolve.paras[index].style.opacity = alpha / 100;
			else if(GabowzCore.Browser.Opera) GabowzCore.dissolve.paras[index].style.opacity = alpha / 100;
			
			GabowzCore.dissolve.paras[index].style.display = display;
			GabowzCore.dissolve.index = index;
			GabowzCore.dissolve.stage = stage;
			GabowzCore.dissolve.waiting= waiting;
		}
	},
	
	Ajax : {
		status : false,
		
		display : function(){
			var urlRequest = urlBase;
			aj_prcRequest( urlRequest );
			return true;
		},
		
		request : function(aUrl){
			httpObj = createXMLHttpRequest();
			if( httpObj ){
				httpObj.open("GET",aUrl,true);
				httpObj.onreadystatechange = function(){
					if( httpObj.readyState == 4 ){
						if( httpObj.status == 200 ){
							aj_getData( httpObj.responseText );
						}else{
							
						}
					}
			    };
				httpObj.send(null);
			}
			return true;
		},
		
		createXMLHttpRequest : function(){
			var ajax = false;
			if( window.XMLHttpRequest ){
				ajax = new XMLHttpRequest();
			}else if( window.ActiveXObject ){
				try{
					ajax = new ActiveXObject("Msxml2.XMLHTTP");
				}catch(e){
					ajax = new ActiveXObject("Microsoft.XMLHTTP");
				}
			}
			return ajax;
		}
	},
	
	Browser: {
		MSIE: !!(window.attachEvent && !window.opera),
		Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
		AppleWebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
		Opera: !!(window.opera)
	},
	
	Version: '0.0.1'
};


// 
try {
	window.addEventListener('load', function(){GabowzCore.initialize();}, false);
}catch(e){
	window.attachEvent('onload', function(){GabowzCore.initialize();});
}





//
// Window Close
//


function CloseWin(){
    window.close();
}


//
// Scroll Back
//

ps2 = new function()
{

    // 初期設定 --> START
    
    this.scrollLength   = 10;   // [ number ] スクロールさせる距離の間隔 
                                // 1-100 ( 単位 : % ) 推奨値 5-10
                                
    this.scrollSpeed    = 15;   // [ number ] スクロールさせる時間の間隔
                                // 推奨値 10-100 ( 単位 : 1000 = 1秒 )
                                
    this.clickCheck     = 1;    // [ bool ]
                                // リンクの監視 ( 1 -> Yes, 0 -> No )
    
    var useMoziHiVer    = 1;    // [ bool ]
                                // 最近の Gecko でも動作させる ( 1 -> Yes, 0 -> No )
                                
    // 初期設定 <-- END
    
    
    
    
    
    var _this           = this;
    var isIE            = !!(document.all && !window.opera);
    var isDOM           = !!document.getElementById;
    var isMHVer         = navigator.product == "Gecko" &&
                          navigator.productSub > 20040000;
    var ancz            = new Array();
    var f_scroll        = "scroller";
    var initFlag        = false;
    var ancLen          = 0;
    var timeId;
    var winHeight;
    var docHeight;
    var pTopPos;
    var pLeftPos;
    var tgtTopPos;
    var upFlag;
    var isEvent;
    var getAnchorNodes = function()
    {
        var ac = document.anchors;
        if (initFlag || ac.length == ancLen) return;
        for (var i=ancLen; i<ac.length; i++) {
            if (ac[i].name.length > 1) ancz[ac[i].name] = ac[ancLen = i];
        }
    }
    var fPath = function(_p) { return (_p.charAt(0) != "/")? "/"+ _p: _p }
    
    var getPosition = function()
    {
        if (isIE) { with (document.body)
        {
            winHeight   = clientHeight;
            docHeight   = scrollHeight;
            pTopPos     = scrollTop;
            pLeftPos    = scrollLeft;
        } }
        else
        {
            winHeight   = window.innerHeight;
            docHeight   = document.height || document.body.scrollHeight;
            pTopPos     = window.pageYOffset;
            pLeftPos    = window.pageXOffset;
        }
    }
    
    this[f_scroll] = function(_node, _e, _hash)
    {
        var targetName;
        var oTarget;
        if (timeId) timeId = clearInterval(timeId);
        if (_hash) targetName = _hash.charAt(0) == "#"? _hash.substr(1): _hash;
        else if (_node && _node.hash) targetName = _node.hash.substr(1);
 
        if (!targetName) return true;
        getAnchorNodes();
        getPosition();
   
        oTarget = ancz[targetName];  
        if (!oTarget || !docHeight) return true;
        tgtTopPos   = oTarget.offsetTop;
        udFlag      = !!(tgtTopPos < _node.offsetTop);
        timeId      = setInterval( _this.pScrolling, this.scrollSpeed );
        if (_e)
        {
            if (isIE) event.cancelBubble = true;
            else if (_e.stopPropagation) _e.stopPropagation();
        }
        return false;
    }
    if (isIE)
    var getPageTopOffset = new Function(" return document.body.scrollTop ");
    else
    var getPageTopOffset = new Function(" return window.pageYOffset ");
    
    this.pScrolling = function()
    {
        var tempPTop = getPageTopOffset();
        var endFlag=0;
       
        if (!udFlag) {
            pTopPos += Math.ceil((tgtTopPos- tempPTop) * (_this.scrollLength/100));
            if (tgtTopPos <= pTopPos) endFlag = 1;
        }
        else {
            pTopPos -= Math.ceil((tempPTop- tgtTopPos)* (_this.scrollLength/100));
            if (tgtTopPos >= pTopPos) endFlag = 1;
        }
        
        if (endFlag) {
            pTopPos = tgtTopPos;
            timeId  = clearInterval(timeId);
        }
        scrollTo( pLeftPos, pTopPos );
    }
    
    this.init = function()
    {
        if (initFlag) return;
        
        getAnchorNodes();
        initFlag = 1;
        autoScroll();
        
        if (_this.clickCheck) {
        document.onclick = document.onclick? new checkClick: checkClick;
        document.onkeyup = document.onkeyup? new checkClick: checkClick;
        }
    }
    var autoScroll = function()
    {
        var aName = location.hash;
        if (aName.length > 1)
        _this[f_scroll]({
            hash        : aName,
            offsetTop   : getPageTopOffset()
            });
    }
    
    var checkClick = function(_e)
    {
        
        if (timeId) timeId = clearInterval(timeId);
        if (_e) {
            _e = _e.target;
            if (_e.nodeType && _e.nodeType != 1) _e = _e.parentNode;
        }
        else 
            _e = event.srcElement;
        
        if (_e && _e.tagName == "A")
        {   
            if (_e.hash.length > 1 && fPath(location.pathname) == fPath(_e.pathname) )
                return _this[f_scroll](_e);
            else
                return true;
        }
    }
    
    if ( !(isIE || isDOM) || (!useMoziHiVer && isMHVer) )
    {
        this[f_scroll]  = new Function(" return true ");
        this.init       = new Function("");
    }
    
    if (isIE || isDOM)
    {
        if (window.onload) window.onload = new this.init;
        else window.onload = this.init;
        
        if (window.onerror) window.onerror = new this.init;
        else window.onerror = this.init;
    }
}

