// open window
function openWindow( _url, _name, _init ) {
  window.open( _url, _name, _init );
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

// simply preload images
function preloadImages() {
	var cnt = arguments.length;
	if( cnt > 0 ){
		window.onload = function(){
			var i = 0;
			while ( i < cnt ){
				(new Image).src = arguments[i++];
			}
		};
	}
}

// simply swap image
function swapimage( _img ){
	var _src = _img.src;
	var suffix = "_over";
	var filename = _src.substring( 0, _src.lastIndexOf(".") );
	var extension = _src.substring( _src.lastIndexOf(".") );
	if( filename.search( /_over$/) < 0 ){
		_src = filename + suffix + extension;
	} else {
		_src = filename.substring( 0, filename.length - suffix.length ) + extension;
	}
	_img.src = _src;
}

// preload and swap images
function initRollOvers() {
	var suffix = "_over";		// suffix for image filename
	var target_class = "ro";	// target class name
	var d_attr = "dsrc";		// attribute for default image source
	var s_attr = "ssrc";		// attribute for swap image source

	if( !document.getElementById ) {
		return;
	}

	// get image objects
	var preLoads = new Array();
	var allImages = document.getElementsByTagName( "img" );

	for( var i = 0; i < allImages.length; i++ ) {
		if( allImages[i].className == target_class ) {
			var src = allImages[i].getAttribute( "src" );
			var extension = src.substring(src.lastIndexOf( "." ), src.length );
			var oSrc = src.replace( extension, suffix + extension );

			// set default image and swap image
			allImages[i].setAttribute( d_attr, src );
			allImages[i].setAttribute( s_attr, oSrc );

			// preload swap images
			preLoads[i] = new Image();
			preLoads[i].src = oSrc;

			// register eventhandler
			allImages[i].onmouseover = function() {
				this.setAttribute("src", this.getAttribute( s_attr ));
			}
			allImages[i].onmouseout = function() {
				this.setAttribute("src", this.getAttribute( d_attr ));
			}
		}
	}
}

// _____________________________________________________________________________
//                                                    switch cascade style sheet

function setActiveStyleSheet(title) {
	var i, a, main;
	var type = new Array("small", "middle", "large");

	if( title == "" || title == null || title == "null" ){
		title = "middle";
	}

	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
			a.disabled = true;
			if(a.getAttribute("title") == title) a.disabled = false;
		}
	}

	// initialize images
	var _src;
	var filename;
	var extension;
	var prefix = "charactor_";
	var objImg = null;
	for(i=0; i<type.length; i++){
		objImg = document.getElementById("size_"+type[i]);
		if( objImg != null && objImg != "" ){
			_src = objImg.src;
			filename = _src.substring( 0, _src.lastIndexOf(".") );
			extension = _src.substring( _src.lastIndexOf(".") );
			filename = filename.substring( 0, filename.lastIndexOf("/")+1 );
			objImg.src = filename + prefix + type[i] + extension;
		}
		objImg = null;
	}

	// set active Image
	if( title != "" && title != null && title != "null" ){
		objImg = document.getElementById("size_"+title);
		if( objImg != null && objImg != "" ){
			_src = objImg.src;
			filename = _src.substring( 0, _src.lastIndexOf(".") );
			extension = _src.substring( _src.lastIndexOf(".") );
			filename = filename.substring( 0, filename.lastIndexOf("/")+1 );
			objImg.src = filename + prefix + title + "_over" + extension;
		}
	} else {
		objImg = document.getElementById("size_middle");
		if( objImg != null && objImg != "" ){
			_src = objImg.src;
			filename = _src.substring( 0, _src.lastIndexOf(".") );
			extension = _src.substring( _src.lastIndexOf(".") );
			filename = filename.substring( 0, filename.lastIndexOf("/")+1 );
			objImg.src = filename + prefix + "middle_over" + extension;
		}
	}
}

function getActiveStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
	}
	return null;
}

function getPreferredStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1
			 && a.getAttribute("rel").indexOf("alt") == -1
			 && a.getAttribute("title")
			 ) return a.getAttribute("title");
	}
	return null;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

// _____________________________________________________________________________
//                                                                   google maps

function writeGMap( intCLat, intCLon ) {

	if (GBrowserIsCompatible()) { 

		// for GMap
		var map = new GMap2( document.getElementById( "google_map" ) );	// Division Object - Google Maps
		var center = new GLatLng( intCLat, intCLon );					// GLatLng Object - map center
		var zoom = 14;													// Zoom Level

		// for GPointer
		var request = null;			// XML HTTP Object
		var objXml = null;			// XML DOM Objects
		var points = [];			// XML Objects
		var name = [];				// branch name
		var url = [];				// branch site url
		var adr = [];				// branch address
		var tel = [];				// branch tel
		var fax = [];				// branch fax
		var lat = [];				// branch lat
		var lon = [];				// branch lon
		var point;					// GLatLng Object
		var marker;					// GMarker Object

		// __________ centar Lat Lon and zoom-level
		map.setCenter( center, zoom );

		// __________ display control panel
		// map.addControl( new GLargeMapControl() );
		map.addControl( new GSmallMapControl() );

		// __________ display map-type control buttons
		// map.addControl( new GMapTypeControl() );
		map.addControl( new GMapTypeControl(), new GControlPosition( G_ANCHOR_TOP_RIGHT, new GSize( 5, 5 ) ) );

		// __________ display over-view window
		map.addControl( new GOverviewMapControl() );

		// ( G_NORMAL_MAP | G_SATELLITE_MAP | G_HYBRID_MAP )
		map.setMapType( G_NORMAL_MAP );

		// __________ double-click event Zoom-In/Out
		map.enableDoubleClickZoom();
		map.enableContinuousZoom();

		// __________ mouse wheel Zoom
		map.enableScrollWheelZoom();

		// __________ read XML
		request = GXmlHttp.create();
		request.open("GET", "../../js/points.xml?" + (new Date()).getTime(), true);
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				objXml = request.responseXML;
				points = objXml.documentElement.getElementsByTagName("point");

				for (var i = 0; i < points.length; i++) {
					name[i] = points[i].getAttribute("name");
					url[i] = points[i].getAttribute("url");
					adr[i] = points[i].getAttribute("address");
					tel[i] = points[i].getAttribute("tel");
					fax[i] = points[i].getAttribute("fax");
					lat[i] = parseFloat(points[i].getAttribute("lat"));
					lon[i] = parseFloat(points[i].getAttribute("lon"));

					if( lat[i] != "" && lon[i] != "" ){
						point = new GLatLng( lat[i], lon[i] );
						marker = new GMarker( point );
						marker.no = i;
						map.addOverlay( marker );

						GEvent.addListener( marker, 'click', function(){
							this.openInfoWindowHtml( '<dl style="width: 300px;"><dt style="margin-bottom: 5px; padding-bottom: 2px; border-bottom: 1px dotted #999; font-weight: bold;"><a href="' + url[this.no] +'">トヨタホーム愛知 ' + name[this.no] + '</a></dt><dd>住所:' + adr[this.no] + '</dd><dd>TEL:' + tel[this.no] + '</dd><dd>FAX:' + fax[this.no] + '</dd></dl>' );
						});
					}
				}
			}
		}
		request.send(null);
	}
}

// _____________________________________________________________________________
//                                                                 print preview

function printpreview() {
	if(window.ActiveXObject == null || document.body.insertAdjacentHTML == null) return;
	var sWebBrowserCode = '<object width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>'; 
	document.body.insertAdjacentHTML('beforeEnd', sWebBrowserCode); 
	var objWebBrowser = document.body.lastChild;
	if(objWebBrowser == null) return;
	objWebBrowser.ExecWB(7, 1);
	document.body.removeChild(objWebBrowser);
}

// _____________________________________________________________________________
//                                                                event listener

window.onload = function(e) {
	var cookie = readCookie("style");
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);

	initRollOvers();
}

window.onunload = function(e) {
	var title = getActiveStyleSheet();
	createCookie("style", title, 365);
}

// _____________________________________________________________________________
//                                                                              

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
