
bw = new browserCheck;
MOUSE_EVENT_Init(bw);

var balloonObj =new Object();

function balloonInit(){

	/*var childObj = document.getElementsByClassName('balloon');
	if(childObj.length>1){
		for(j=0; j < childObj.length; j++) {
			childObj[j].style.position = 'absolute';
			childObj[j].style.visibility = 'hidden';
		}
	}*/

	myBody = document.getElementsByTagName('body')[0];
	balloon = document.createElement('div');
	balloon.id = 'mouseBalloon';
	myBody.appendChild(balloon);
	
	
	balloonObj = getDiv('mouseBalloon');
	balloonObj.offsetX = balloonObj.offsetX = 0;
	balloonObj.mouseX = balloonObj.mouseY = 0;
	balloonObj.openFlag= 0;

	balloonObj.style.position='absolute';
	balloonObj.style.visibility='hidden';
	balloonObj.style.zIndex=9999;
	balloonObj.className='balloon';
	balloonObj.setup='ok';
}



function openBalloon(text, ax, ay,w,h){

	if(!balloonObj.setup){
		return false;
	}
	var sx=0;
	var sy=0;
	if(bw.ie){
		sx = getScrollLeft();
		sy = getScrollTop();
	}
	balloonObj.style.position='absolute';
	balloonObj.style.visibility='visible';

	balloonObj.style.left = mx+ax+sx;
	balloonObj.style.top = my+ay+sy;
	
	if(document.all){
		document.all(balloonObj.id).innerHTML = text;
	}else if(document.getElementById){
		document.getElementById(balloonObj.id).innerHTML = text;
	}
	balloonObj.style.width = w?w:'auto';
	balloonObj.style.height = h?h:'auto';
	//alert(balloonObj.offsetWidth);
}
function balloonMove(evt){
	if(!balloonObj.setup){
		return false;
	}
	if(bw.ns){		
		mx = evt.pageX;
		my = evt.pageY;
	}else{
		mx = event.clientX;
		my = event.clientY;
	}
	
	balloonObj.mouseX=mx;
	balloonObj.mouseY=my;
}

function closeBalloon(){
	if(!balloonObj.setup){
		return false;
	}
	balloonObj.style.visibility='hidden';
	balloonObj.openFlag = 0;

}


//暫定
bw = new browserCheck;
MOUSE_EVENT_Init(bw);

var contextObj =new Object();


function contextInit() {
	value=0;
	cxBox = document.getElementsByClassName('cxOn');
	for(i = 0; i < cxBox.length; i++) {
		cxBox[i].style.position = 'absolute';
		cxBox[i].style.visibility = 'hidden';

		cxBox[i].style.opacity =0;
		cxBox[i].style.filter = 'alpha(opacity=' + value *10 + ')';
		cxBox[i].style.zIndex =0;
		if(bw.ie){
			//cxBox[i].style.width='150px';
			//cxBox[i].style.height='300px';
		}else{
			//cxBox[i].style.width='150px';
			//cxBox[i].style.height='300px';

		}
	}
	contextObj.targetID =null;
	contextObj.targetObj = null;
	contextObj.closeID = null;
	contextObj.closeObj = null;
	contextObj.offsetX = contextObj.offsetY = 0;
	contextObj.mouseX = contextObj.mouseY = 0;
	contextObj.checkX = contextObj.checkY = 0;
	
	contextObj.openFlag= false;	
	contextObj.closeFlag= false;
	contextObj.lock= false;

}

var debug=0;
function closeContext(id){
	if(contextObj.openFlag){
		if(contextObj.lock) return;
		if(debug)openBalloon('close1',30,20,100);
		contextObj.closeID = id+'Context';
		contextObj.closeObj = getDiv(contextObj.closeID);

		if(contextObj.targetID == contextObj.closeID){
			if(debug)openBalloon("contextObj.targetID == contextObj.closeID",30,20,100);
			//Spry.Effect.AppearFade(contextObj.closeID, { duration:500, from:100, to:0, toggle:false, finish:endClose});
		}else{
			contextObj.openFlag=false;
			contextObj.closeFlag=false;
			contextObj.closeObj.style.opacity =0;
			contextObj.closeObj.style.filter = 'alpha(opacity=' + value *10 + ')';
			contextObj.closeObj.style.visibility='hidden';
			contextObj.closeObj.style.zIndex=0;
		}
	}else{
		contextObj.closeFlag=true;
	}
}
function endClose(){
	if(debug)openBalloon('endClose',30,20,100);
	contextObj.openFlag=false;
	contextObj.closeFlag=false;
	contextObj.targetObj.style.visibility='hidden';
}

function resetContext(){
	if(contextObj.targetObj){
		contextObj.openFlag=false;
		contextObj.closeFlag=false;
		contextObj.targetObj.style.opacity =0;
		contextObj.targetObj.style.filter = 'alpha(opacity=' + value *10 + ')';
		contextObj.targetObj.style.visibility='hidden';
		contextObj.targetObj.style.zIndex=0;
	}
}

function cancelContext(){
	contextObj.closeFlag=false;	
}

function openContext(id){
	if(!contextObj.openFlag && !contextObj.closeFlag){
		if(debug)openBalloon('open1',30,20,100);
		contextObj.targetID= id+'Context';
		var timerID = setTimeout('openContext2()',500);
	}else{
		cancelContext();
	}
}


function openContext2(){

	if(!contextObj.openFlag &&!contextObj.closeFlag){
		if(debug)openBalloon('open2',30,20,100);
		resetContext();

		contextObj.openFlag=true;
		contextObj.targetObj = getDiv(contextObj.targetID);

		var sx=0;
		var sy=0;
		if(bw.ie){
			sx = getScrollLeft();
			sy = getScrollTop();
		}
		
		contextObj.width= contextObj.targetObj.offsetWidth;
		contextObj.height= contextObj.targetObj.offsetHeight;
		abx = absoluteX('mainCont');
		aby = absoluteY('mainCont');


		contextObj.checkX=contextObj.mouseX;
		contextObj.checkY=contextObj.mouseY;
		contextObj.targetObj.style.visibility='visible';
		contextObj.targetObj.style.position='absolute';
		contextObj.targetObj.style.left = contextObj.mouseX-contextObj.width/2-abx+sx;
		contextObj.targetObj.style.top = contextObj.mouseY-contextObj.height/2-aby+sy;
		contextObj.targetObj.style.zIndex=300;
		contextObj.lock= true;
		//Spry.Effect.AppearFade(contextObj.targetID, { duration:500, from:0, to:100, toggle:false, finish:endOpen });
	}else{
		cancelContext();
	}
}
function endOpen(){
	contextObj.lock= false;
}


function contextCheck(){
	//エリア外か確認
	if(
		contextObj.checkX-contextObj.width/2 > contextObj.mouseX || contextObj.checkX+contextObj.width/2 < contextObj.mouseX || 
		contextObj.checkY-contextObj.height/2 > contextObj.mouseY || contextObj.checkY+contextObj.height/2 < contextObj.mouseY
	){
		if(contextObj.openFlag){
			contextObj.lock=false;
			value=0;
			contextObj.closeID =contextObj.targetObj.id;
			contextObj.closeObj = getDiv(contextObj.closeID);
			contextObj.openFlag=false;
			contextObj.closeFlag=false;
			contextObj.closeObj.style.opacity =0;
			contextObj.closeObj.style.filter = 'alpha(opacity=' + value *10 + ')';
			contextObj.closeObj.style.visibility='hidden';
			contextObj.closeObj.style.zIndex=0;

		}
	}
}

function contextMove(evt){
	if(bw.ns){
		contextObj.mouseX = evt.pageX;
		contextObj.mouseY = evt.pageY;
	}else{
		contextObj.mouseX = event.clientX;
		contextObj.mouseY = event.clientY;
	}
	contextCheck();
}
//暫定
bw = new browserCheck;
MOUSE_EVENT_Init(bw);

var explainObj =new Object();


function explainInit() {
	value=0;
	exBox = document.getElementsByClassName('exOn');
	for(i = 0; i < exBox.length; i++) {
		exBox[i].style.position = 'absolute';
		exBox[i].style.opacity =0;
		exBox[i].style.filter = 'alpha(opacity=' + value *10 + ')';
		exBox[i].style.zIndex =0;
		if(bw.ie){
			exBox[i].style.width='540px';
		}else{
			exBox[i].style.width='528px';
		}
	}
	explainObj.targetID =null;
	explainObj.targetObj = null;
	explainObj.closeID = null;
	explainObj.closeObj = null;
	explainObj.offsetX = explainObj.offsetY = 0;
	explainObj.mouseX = explainObj.mouseY = 0;
	explainObj.checkX = explainObj.checkY = 0;
	
	explainObj.openFlag= false;	
	explainObj.closeFlag= false;
	explainObj.lock= false;

}

var debug=0;
function closeExplain(id){
	if(explainObj.openFlag){
		if(explainObj.lock) return;
		if(debug)openBalloon('close1',30,20,100);
		explainObj.closeID = id+'Explain';
		explainObj.closeObj = getDiv(explainObj.closeID);

		if(explainObj.targetID == explainObj.closeID){
			if(debug)openBalloon("explainObj.targetID == explainObj.closeID",30,20,100);
			//Spry.Effect.AppearFade(explainObj.closeID, { duration:500, from:100, to:0, toggle:false, finish:endClose});
		}else{
			explainObj.openFlag=false;
			explainObj.closeFlag=false;
			explainObj.closeObj.style.opacity =0;
			explainObj.closeObj.style.filter = 'alpha(opacity=' + value *10 + ')';
			explainObj.closeObj.style.visibility='hidden';
			explainObj.closeObj.style.zIndex=0;
		}
	}else{
		explainObj.closeFlag=true;
	}
}
function endClose(){
	if(debug)openBalloon('endClose',30,20,100);
	explainObj.openFlag=false;
	explainObj.closeFlag=false;
	explainObj.targetObj.style.visibility='hidden';
}

function resetExplain(){
	if(explainObj.targetObj){
		explainObj.openFlag=false;
		explainObj.closeFlag=false;
		explainObj.targetObj.style.opacity =0;
		explainObj.targetObj.style.filter = 'alpha(opacity=' + value *10 + ')';
		explainObj.targetObj.style.visibility='hidden';
		explainObj.targetObj.style.zIndex=0;
	}
}

function cancelExplain(){
	explainObj.closeFlag=false;
}

function openExplain(id){
	if(!explainObj.openFlag && !explainObj.closeFlag){
		if(debug)openBalloon('open1',30,20,100);
		explainObj.targetID= id+'Explain';
		var timerID = setTimeout('openExplain2()',500);
	}else{
		cancelExplain();
	}
}


function openExplain2(){

	if(!explainObj.openFlag &&!explainObj.closeFlag){
		if(debug)openBalloon('open2',30,20,100);
		resetExplain();

		explainObj.openFlag=true;
		explainObj.targetObj = getDiv(explainObj.targetID);

		var sx=0;
		var sy=0;
		if(bw.ie){
			sx = getScrollLeft();
			sy = getScrollTop();
		}
		explainObj.checkX=explainObj.mouseX;
		explainObj.checkY=explainObj.mouseY;
		
		explainObj.targetObj.style.visibility='visible';
		explainObj.targetObj.style.position='absolute';
		explainObj.targetObj.style.zIndex=300;
		explainObj.targetObj.style.top = explainObj.mouseY+sy;
		explainObj.lock= true;
		//Spry.Effect.AppearFade(explainObj.targetID, { duration:500, from:0, to:100, toggle:false, finish:endOpen });
	}else{
		cancelExplain();
	}
}
function endOpen(){
	explainObj.lock= false;
}


function explainCheck(){
	//エリア外か確認
	if(
		explainObj.checkX-100 > explainObj.mouseX || explainObj.checkX+100 < explainObj.mouseX || 
		explainObj.checkY-100 > explainObj.mouseY || explainObj.checkY+100 < explainObj.mouseY
	){
		if(explainObj.openFlag){
			explainObj.lock=false;
			value=0;
			explainObj.closeID =explainObj.targetObj.id;
			explainObj.closeObj = getDiv(explainObj.closeID);
			explainObj.openFlag=false;
			explainObj.closeFlag=false;
			explainObj.closeObj.style.opacity =0;
			explainObj.closeObj.style.filter = 'alpha(opacity=' + value *10 + ')';
			explainObj.closeObj.style.visibility='hidden';
			explainObj.closeObj.style.zIndex=0;

		}
	}
}

function explainMove(evt){
	if(bw.ns){
		explainObj.mouseX = evt.pageX;
		explainObj.mouseY = evt.pageY;
	}else{
		explainObj.mouseX = event.clientX;
		explainObj.mouseY = event.clientY;
	}
	explainCheck();
}
bw = new browserCheck;


var selectObj;
var selectHeadObj;
var selectBodyObj;

	
var parentZindexMax=9999;
var parentZindexMin=100;

function initSelect(id){


	selectObj=new Object();
	selectHeadObj=new Object();
	selectBodyObj =new Object();
	selectObj.openFlag =0;

	selectObj.ajustX=0;
	selectObj.ajustY=0;
	selectObj.targetID=id;
	selectHeadObj.minX = selectHeadObj.maxX =0;
	selectHeadObj.minY = selectHeadObj.maxY =0;
	selectBodyObj.minX = selectBodyObj.maxX =0;
	selectBodyObj.minY = selectBodyObj.maxY =0;
	//selectBodyObj = document.getElementsByClassName('selectBody');
}


//セレクトを表示する
function openSelect(id){
	initSelect(id);
	selectHeadObj = getDiv(id+'SelectHead');
	selectBodyObj = getDiv(id+'SelectBody');
	
	var sx=0;
	var sy=0;
	if(bw.ie){
		sx= getScrollLeft();
		sy= getScrollTop();
	}


	//親の絶対位置
	//var pobj = selectHeadObj.parentNode;
	//alert(pobj);
	selectObj.ajustX=absoluteX(selectHeadObj.offsetParent.id)-sx;
	selectObj.ajustY=absoluteY(selectHeadObj.offsetParent.id)-sy;


	parentObj = getDiv(selectHeadObj.offsetParent.id);

//alert(selectHeadObj.offsetParent.id);
//alert(parentObj.style.zIndex);




	parentObj.style.zIndex=parentZindexMax;


	selectHeadObj.minX  = selectHeadObj.offsetLeft;
	selectHeadObj.minY  = selectHeadObj.offsetTop;
	selectHeadObj.maxX  = selectHeadObj.offsetLeft+selectHeadObj.offsetWidth;
	selectHeadObj.maxY  = selectHeadObj.offsetTop+selectHeadObj.offsetHeight;

	selectBodyObj.minX  = selectHeadObj.offsetLeft;
	selectBodyObj.minY  = selectHeadObj.offsetTop+selectHeadObj.offsetHeight;
	selectBodyObj.maxX  = selectBodyObj.minX+selectBodyObj.offsetWidth;
	selectBodyObj.maxY  = selectBodyObj.minY+selectBodyObj.offsetHeight;
	//selectBodyObj.style.width=selectHeadObj.offsetWidth;

	selectBodyObj.style.left = selectBodyObj.minX;
	selectBodyObj.style.top = selectBodyObj.minY;

	selectBodyObj.style.position='absolute';
	selectBodyObj.style.visibility='visible';
	selectBodyObj.style.zIndex=99999;



	//スクロール
	if(id=='carMaker' || id == 'carName'){
		selectBodyObj.style.overflow='auto';
	}

	selectObj.openFlag =1;

}

function closeSelect(name){

	selectHeadObj = getDiv(name+'SelectHead');
	selectBodyObj = getDiv(name+'SelectBody');

	if(selectHeadObj){
		parentObj = getDiv(selectHeadObj.offsetParent.id);
		//parentObj.style.zIndex=parentZindexMin;
	}
	if(selectBodyObj){
		selectBodyObj.style.position='absolute';
		selectBodyObj.style.visibility='hidden';
		selectBodyObj.style.overflow='hidden';
		selectBodyObj.style.zIndex=0;
		selectBodyObj.style.top=0;
	}
	selectObj.openFlag=0;
	selectObj.targetID='';
	cursorChange('auto');

}

function selectMove(evt){
	if(selectObj){
		if(bw.ns){		
			selectObj.mouseX = evt.pageX;
			selectObj.mouseY = evt.pageY;
		}else{
			selectObj.mouseX = event.clientX;
			selectObj.mouseY = event.clientY;
		}




		if(selectObj.openFlag && selectObj.targetID && selectHeadObj && selectBodyObj){
		//エリア外か確認
			if(
				selectHeadObj.minX+selectObj.ajustX-3 > selectObj.mouseX || selectBodyObj.maxX+selectObj.ajustX+3 < selectObj.mouseX || 
				selectHeadObj.minY+selectObj.ajustY-3 > selectObj.mouseY || selectBodyObj.maxY+selectObj.ajustY+3 < selectObj.mouseY
			){
				closeSelect(selectObj.targetID);
			}
		}
	}
}


