var gv_translateType = 0;
var gv_translatePosition = 0;
var gv_dragOn = false;
var gv_offsetX;
var gv_offsetY;
var gv_topSlide1 = false;
var gv_topSlide2 = false;

// XMLHttpRequestオブジェクト生成
function createHttpRequest() {
  var xmlhttp = null;
  if(window.ActiveXObject){
    try {
      // MSXML2以降用
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        // 旧MSXML用
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e2) {

      }
    }
  } else if(window.XMLHttpRequest){
    // Win Mac Linux m1,f1,o8 Mac s1 Linux k3用
    xmlhttp = new XMLHttpRequest();
  } else {

  }
  if (xmlhttp == null) {
    alert("Can not create an XMLHTTPRequest instance");
  }
  return xmlhttp;
} 

// ファイルにアクセスし受信内容を確認します
function sendRequest (method, url, data, async, callback) {
    // XMLHttpRequestオブジェクト生成
    var xmlhttp   = createHttpRequest();
    var safari    = navigator.userAgent.indexOf("Safari")!=-1;
    var konqueror = navigator.userAgent.indexOf("Konqueror")!=-1;
    var mozes     = ((a = navigator.userAgent.split("Gecko/")[1] )
                     ? a.split(" ")[0] : 0) >= 20011128 ;

    if(window.opera || safari || mozes){
        xmlhttp.onload = function ()
        {
            callback(xmlhttp);
        }
    } else {

        // 受信時に起動するイベント
    xmlhttp.onreadystatechange = function ()
        {
            // サーバーからの応答判定
            //   0 : 初期化されていません
            //   1 : 読み込み中です
            //   2 : 読み込み完了
            //   3 : 双方向に扱えます
            //   4 : すべて完了しました
            if (xmlhttp.readyState == 4) {
                
                // サーバーの応答コード判定
                //   200 : OK
                if (xmlhttp.status == 200) {
                    callback(xmlhttp);
                } else {
                    alert("There was a problem with the request.");
                }
            }
        }
    }
    
    // open メソッド
    xmlhttp.open(method, url, async);
    // 無いとPOSTデータが送れない
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    // send メソッド
    xmlhttp.send(data);
}

function getBrowserType(){
	//ブラウザチェック 
	var VarUsrAgt = navigator.userAgent.toLowerCase();//小文字
	isMac = (navigator.appVersion.indexOf("Mac") != -1);
	isWin = (navigator.appVersion.indexOf("Win") != -1);
	isX11 = (navigator.appVersion.indexOf("x11") != -1);
	isNS4 = (document.layers) ? 1 : 0;
	isNS6 = VarUsrAgt.indexOf("netscape6") != -1;
	isNS7 = VarUsrAgt.indexOf("netscape/7.") != -1;
	isIE5 = VarUsrAgt.indexOf("msie 5.") != -1;
	isIE6 = VarUsrAgt.indexOf("msie 6.") != -1;
	isOP6 = VarUsrAgt.indexOf("opera 6.") != -1 || VarUsrAgt.indexOf("opera/6.") != -1;
	isOP7 = VarUsrAgt.indexOf("opera 7.") != -1 || VarUsrAgt.indexOf("opera/7.") != -1;
	isMZ1 = navigator.appName.indexOf("Netscape") != -1 && navigator.appVersion.charAt(0) == 5;
	isFF1 = VarUsrAgt.indexOf("firefox/1") != -1;//Firefox1.0
	isFF2 = VarUsrAgt.indexOf("firefox/2") != -1;//Firefox2.0
	isSF2 = VarUsrAgt.indexOf("safari/4") != -1;//safari2.0
	isSF3 = VarUsrAgt.indexOf("safari/5") != -1;//safari3.0
	isIE7 = VarUsrAgt.indexOf("msie 7.") != -1;//winie7.0
	if ( VarUsrAgt.indexOf("msie") != -1 ) return true;
}

var getViewPort = function() {
 	var width, heiht;
 	if (self.innerHeight) {
		// all except Explorer
		width = self.innerWidth;
		height = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		// Explorer 6 Strict Mode
		width = document.documentElement.clientWidth;
		height = document.documentElement.clientHeight;
	} else if (document.body) {
		// other Explorers
		width = document.body.clientWidth;
		height = document.body.clientHeight;
	}
	return {width: width, height: height};
}

var setHeight = function( ) {
	cSize = getViewPort();
	document.getElementById('main_body').style.height = ( cSize.height - 41 ) + "px";
	document.getElementById('main_frame').style.height = ( cSize.height - 41 ) + "px";
}

var displayMCDialog = function( setWidth, setHeight, setUrl, setTitle ) {
	document.getElementById('dialog_window').src = setUrl;
	var cSize = getViewPort();
	document.getElementById('dialog_bg').style.width = cSize.width + "px";
	document.getElementById('dialog_bg').style.height = cSize.height + "px";
	if ( ( cSize.width - 100 ) < setWidth ) {
		setWidth = cSize.width - 100;
		setLeft = 50;
	} else {
		setLeft = Math.round( ( cSize.width - setWidth ) / 2 );
	}
	if ( ( cSize.height - 50 ) < setHeight ) {
		setHeight = cSize.height - 50;
		setTop = 22;
	} else {
		setTop = Math.round( ( cSize.height - setHeight ) / 2 ) - 18;
	}
	if ( setWidth < 100 ) { setLeft = 0; setWidth = 100; }
	if ( setHeight < 100 ) { setTop = 0; setHeight = 150; }
	document.getElementById('dialog_title').style.left = setLeft + "px";
	document.getElementById('dialog_window').style.left = setLeft + "px";
	document.getElementById('dialog_title').style.top = setTop + "px";
	document.getElementById('dialog_window').style.top = ( setTop + 22 ) + "px";
	document.getElementById('dialog_title').style.width = ( setWidth + 2 ) + "px";
	document.getElementById('dialog_window').style.width = setWidth + "px";
	document.getElementById('dialog_window').style.height = setHeight + "px";
	document.getElementById('dialog_window').style.height = setHeight + "px";
	document.getElementById('dialog_titlename').innerHTML = setTitle;
	gv_translateType = 1;
	gv_translatePosition = 0;
	document.getElementById('dialog_bg').style.filter = "alpha(style=0,opacity=" + gv_translatePosition + ")";
	document.getElementById('dialog_bg').style.MozOpacity = "0." + ( gv_translatePosition / 10 );
	document.getElementById('dialog_bg').style.MozOpacity = "0." + ( gv_translatePosition / 10 );
	document.getElementById('dialog_bg').style.opacity = "0." + ( gv_translatePosition / 10 );
	document.getElementById('dialog_bg').style.visibility = "visible";
	setTranslateAction();
}

var hideMCDialog = function() {
	gv_translateType = 2;
	setTranslateAction();
}

var setTranslateAction = function() {
	if ( gv_translateType == 1 || gv_translateType == 2 ) {
		//初期値確認
		if ( gv_translatePosition > 100 ) gv_translatePosition = 100;
		if ( gv_translatePosition < 0 ) gv_translatePosition = 0;
		if ( gv_translateType == 1 ) {
			//現れる
			if ( getBrowserType() ) {
				gv_translatePosition += 100;
			} else {
				gv_translatePosition += 20;
			}
		} else if ( gv_translateType == 2 ) {
			//消える
			if ( getBrowserType() ) {
				gv_translatePosition -= 100;
			} else {
				gv_translatePosition -= 10;
			}
		}
		if ( gv_translatePosition == 100 ) {
			document.getElementById('dialog_bg').style.filter = "alpha(style=0,opacity=100)";
			document.getElementById('dialog_bg').style.MozOpacity = "1";
			document.getElementById('dialog_bg').style.MozOpacity = "1";
			document.getElementById('dialog_bg').style.opacity = "1";
		} else {
			document.getElementById('dialog_bg').style.filter = "alpha(style=0,opacity=" + gv_translatePosition + ")";
			document.getElementById('dialog_bg').style.MozOpacity = "0." + ( gv_translatePosition / 10 );
			document.getElementById('dialog_bg').style.MozOpacity = "0." + ( gv_translatePosition / 10 );
			document.getElementById('dialog_bg').style.opacity = "0." + ( gv_translatePosition / 10 );
		}
		if ( ( gv_translateType == 1 && gv_translatePosition < 100 ) || ( gv_translateType == 2 && gv_translatePosition > 0 ) ) {
			setTimeout( setTranslateAction, 20 );
		} else {
			if ( gv_translateType == 2 ) {
				document.getElementById('dialog_window').src = "blank.html";
				document.getElementById('dialog_bg').style.visibility = "hidden";
				document.getElementById('dialog_title').style.width = "10px";
				document.getElementById('dialog_window').style.width = "10px";
				document.getElementById('dialog_window').style.height = "10px";
			}
			gv_translateType = 0;
		}
	} else {
		gv_translateType = 0;
		gv_translatePosition = 0;
	}
}

var displayImage = function( car_id, fileName, x, y ) {
	var cSize = getViewPort();
	if ( ( cSize.width - 100 ) < x || ( cSize.height - 90 ) < y ) {
		if ( ( ( cSize.width - 100 ) / x ) < ( ( cSize.height - 90 ) / y ) ) {
			//widthを基準
			y = Math.round( y * ( ( cSize.width - 100 ) / x ) );
			x = cSize.width - 100;
		} else {
			//heightを基準
			x = Math.round( x * ( ( cSize.height - 90 ) / y ) );
			y = ( cSize.height - 90 );
		}
	}
	displayMCDialog( x, y+40, "image.php?car_id=" + car_id + "&fname=" + fileName + "&x=" + x + "&y=" + y, "イメージ（画像をクリックすると画面を閉じます）" );
}

function dum ( dum ) { 
//	alert( dum.responseText );
}

var slideTopPageNext = function() {
	var i=2;
	var topId = false;
	if ( ! gv_topSlide1 ) {
		while ( document.getElementById('hotstock' + i) ) {
			if ( ! topId ) topId = ( i - 1 );
			if ( document.getElementById('hotstock' + i).style.zIndex > document.getElementById('hotstock' + topId).style.zIndex ) topId = i;
			i++;
		}
		if ( topId ) {
			//スライドを行う
			gv_topSlide1 = topId;
			document.getElementById('hotstock'+gv_topSlide1).style.left = "0px";
			slideKeepTopPage1();
		}
	}
}

var slideTopPagePrev = function() {
	var i=2;
	var topId = false;
	if ( ! gv_topSlide2 ) {
		while ( document.getElementById('hotstock' + i) ) {
			if ( ! topId ) topId = ( i - 1 );
			if ( document.getElementById('hotstock' + i).style.zIndex > document.getElementById('hotstock' + topId).style.zIndex ) topId = i;
			i++;
		}
		if ( topId ) {
			if ( document.getElementById('hotstock' + (topId-1)) ) {
				document.getElementById('hotstock' + (topId-1)).style.left = "-650px";
				document.getElementById('hotstock' + (topId-1)).style.zIndex = ( i-1 );
				gv_topSlide2 = (topId-1);
			} else {
				document.getElementById('hotstock' + (i-1)).style.left = "-650px";
				document.getElementById('hotstock' + (i-1)).style.zIndex = ( i-1 );
				gv_topSlide2 = (i-1);
			}
			pageNum = gv_topSlide2;
			for ( j=1; j<i; j++ ) {
				if ( ! document.getElementById('hotstock' + pageNum) ) pageNum = 1;
				document.getElementById('hotstock' + pageNum).style.zIndex = ( i - j );
				pageNum++;
			}
			//スライドを行う
			slideKeepTopPage2();
		}
	}
}

var slideKeepTopPage1 = function() {
	if ( gv_topSlide1 ) {
		setLeft = parseInt( document.getElementById('hotstock'+gv_topSlide1).style.left );
		setLeft -= 50;
		document.getElementById('hotstock'+gv_topSlide1).style.left = setLeft + "px";
		if ( setLeft <= -650 ) {
			maxCnt = 1;
			while ( document.getElementById('hotstock' + (maxCnt+1) ) ) maxCnt++;
			i = gv_topSlide1 + 1;
			for ( j=1; j<=maxCnt; j++ ) {
				if ( ! document.getElementById('hotstock' + i ) ) i = 1;
				document.getElementById('hotstock' + i ).style.zIndex = ( maxCnt - j + 1 );
				i++;
			}
			document.getElementById('hotstock'+gv_topSlide1).style.left = "0px";
			gv_topSlide1 = false;
		} else {
			setTimeout( slideKeepTopPage1, 10 );
		}
	}
}

var slideKeepTopPage2 = function() {
	if ( gv_topSlide2 ) {
		setLeft = parseInt( document.getElementById('hotstock'+gv_topSlide2).style.left );
		setLeft += 50;
		document.getElementById('hotstock'+gv_topSlide2).style.left = setLeft + "px";
		if ( setLeft >= 0 ) {
			document.getElementById('hotstock'+gv_topSlide2).style.left = "0px";
			gv_topSlide2 = false;
		} else {
			setTimeout( slideKeepTopPage2, 10 );
		}
	}
}

function insertClipping( num ) {
	var data = "type=1&id=" + num;
	sendRequest( "POST", "set_clipping.php", data, false, dummy );
}

function deleteClipping( num ) {
	var data = "type=2&id=" + num;
	sendRequest( "POST", "set_clipping.php", data, false, dummy );
}

function checkClipping() {
	var data = "";
	sendRequest( "POST", "inner_clipping.php", data, false, checkClipping_result );
}

function checkClipping_result( xmlhttp ) {
	var txt = "";
	var tmp = xmlhttp.responseText.split("\n");
	if ( tmp[1] == "OK" ) {
		txt += "<div class=\"mini_car_list\">\n";
		txt += "<div class=\"mini_car_list_title\">\n";
		txt += "<div class=\"mini_car_list1\">CLIPPING</div>\n";
		txt += "<div class=\"mini_car_list2\">クリッピング</div>\n";
		txt += "</div>\n";
		for ( i=2; i<tmp.length; i++ ) txt += tmp[i];
		txt += "<div style=\"padding:4px 0px 0px 20px;line-height:20px\"><a href=\"clipping.html\"><img src=\"images/clip.gif\" style=\"float:left;margin-right:4px\" />クリッピングを見る</div>";
		document.getElementById('clipping_area').innerHTML = txt;
	} else {
		document.getElementById('clipping_area').innerHTML = "";
	}
}

function dummy( xmlhttp ) {
	document.getElementById('clipping_area').innerHTML = xmlhttp.responseText;
	checkClipping();
}
