
// kunyam library
// headerMenu.js
// lastupdate 2009/12/09

var focus_int = 0;							// フォーカス位置
var active_int = 0;							// アクティブ位置
var nomal_array = new Array();	// ノーマル画像の情報
var over_array = new Array();		// オーバー（アクティブ）画像の情報
var isSub = false;							// サブメニュー判定
var ex = '';
var url_string = document.URL;	// URL
var url_array = new Array();		// 階層数取得用
var current_int;								// カレント階層数
var path_string = '';						// 相対パス
var resource_string = '';				// リソースパス

// 判定文字列
var solution_array = ['solution-accesscontrol', 'solution-camera', 'solution-ganz', 'solution-omnicast', 'solution-attendance', 'solution-analyze', 'solution-cctvasp', 'solution-concept'];
var casestudy_array = ['casestudy-office', 'casestudy-shop', 'casestudy-amusement', 'casestudy-building', 'casestudy-servicecounter'];
var product_array = ['product-suprema', 'product-camera', 'product-ipcamera', 'product-cms', 'product-vca', 'product-stabilizer', 'product-doorlock', 'product-followup'];
var campaign_array = ['campaign'];
var info_array = ['info'];


$(document).ready(function(){
	// URL処理
	url_string = document.URL;
	ex = '/';
	url_array = url_string.split('/');

	// 階層設定
	for(i = url_array.length - 1; i > 0; i--){
		if(url_array[i].match(RegExp('secureinc.co.jp'))){
			break;
		}
	}
	current_int = (url_array.length - 1) - i;
	for(i = 0; i < current_int - 1; i++){
		path_string += '../';
	}
	resource_string = path_string + 'menu/';
	
	// テンプレート読み込み
	$("#menu").load(resource_string + "template/menu.html", null, initMenu);
});

// 初期処理
function initMenu(){
	// パスの設定
	$('#menu img').each(function(){
		url_string = document.URL;
		url_array = url_string.split('/');
		url_array.pop();
		url_string = url_array.join('/');
		url_string += '/';
		
		$(this).attr('src', resource_string + $(this).attr('src').replace(url_string, ''));
	});
	$('#menu a').each(function(){
		url_string = document.URL;
		url_array = url_string.split('/');
		url_array.pop();
		url_string = url_array.join('/');
		url_string += '/';
		
		if(!$(this).attr('href').match(RegExp('javascript'))){
			$(this).attr('href', path_string + $(this).attr('href').replace(url_string, ''));
		}
	});

	// フォーカス位置設定
	$.each(solution_array, function(j){
		if(url_string.match(RegExp(ex + solution_array[j] + ex))){
			focus_int = 1;
			active_int = 1;
		}
	});
	$.each(casestudy_array, function(j){
		if(url_string.match(RegExp(ex + casestudy_array[j] + ex))){
			focus_int = 2;
			active_int = 2;
		}
	});
	$.each(product_array, function(j){
		if(url_string.match(RegExp(ex + product_array[j] + ex))){
			focus_int = 3;
			active_int = 3;
		}
	});
	$.each(campaign_array, function(j){
		if(url_string.match(RegExp(ex + campaign_array[j] + ex))){
			focus_int = 4;
			active_int = 4;
		}
	});
	$.each(info_array, function(j){
		if(url_string.match(RegExp(ex + info_array[j] + ex))){
			focus_int = 5;
			active_int = 5;
		}
	});

	// ボタンオブジェクトを取得
	$('#menuTab').children().each(function(i) {
		// イニシャライズ
		$(this).children().each(function() {
			if(this.nodeName == 'IMG'){
				var src = $(this).attr('src');
				var ftype = src.substring(src.lastIndexOf('.'), src.length);
				var hsrc = src.replace(ftype, '_on' + ftype);
				nomal_array[i] = src;
				over_array[i] = hsrc;
				if(focus_int == i){
			    $(this).attr('src', over_array[i]);
				}
			}
		});

		// ロールオーバー時の処理
		$(this).mouseover(function(event){
			if(event.target.nodeName == 'IMG'){
				if(focus_int != i && active_int != i){
			    $(event.target).attr('src', over_array[i]);
		    }
			}
		});
		
		// ロールアウト時の処理
		$(this).mouseout(function(event){
			if(event.target.nodeName == 'IMG'){
				if(focus_int != i && active_int != i){
			    $(event.target).attr('src', nomal_array[i]);
		    }
			}
		});

		// クリック時の処理
		$(this).click(function(event){
			if(event.target.nodeName == 'IMG'){
				if(isSub){
					// サブメニューの非表示
					hideMenuSub(active_int);
					
					if(active_int != i){
						if(i != 0){
							// サブメニューの表示
							showMenuSub(i);
							// メニューの更新
							showMenu(i);
							active_int = i;
						}else{
							//home
							location.href = path_string;
						}
					}else{
						// メニューの更新
						showMenu(focus_int);
						active_int = focus_int;
					}
				}else{
					if(i != 0){
						// サブメニューの表示
						showMenuSub(i);
					}else{
						//home
						location.href = path_string;
					}
					// メニューの更新
					showMenu(i);
					active_int = i;
				}
			}
		});
	});
}

// メニューの表示
function showMenu(_int){
	$('#menuTab').children().each(function(i) {
		// 初期化
		$(this).children().each(function() {
			if(this.nodeName == 'IMG'){
				if(focus_int == i || _int == i){
			    $(this).attr('src', over_array[i]);
				}else{
			    $(this).attr('src', nomal_array[i]);
				}
			}
		});
	});
}

// サブメニューの表示
function showMenuSub(_int){
	$('#menuSub').children().each(function(i) {
		if(this.nodeName == 'DIV'){
			if(_int == i){
				if(userSystem.osShortName == 'osx' && userSystem.browserShortName == 'ff' && getFlashPlayerVersion(true) == 9){
					$('#altContent').css('visibility', 'hidden');
				}
				$(this).show();
		  }
		}
	});
//	active_int = _int;
	isSub = true;
}

// サブメニューの非表示
function hideMenuSub(_int){
	$('#menuSub').children().each(function(i) {
		if(this.nodeName == 'DIV'){
			if(_int == i){
				if(userSystem.osShortName == 'osx' && userSystem.browserShortName == 'ff' && getFlashPlayerVersion(true) == 9){
					$('#altContent').css('visibility', 'visible');
				}
				$(this).hide();
			}
		}
	});
	isSub = false;
}

// サブメニューの非表示
function clickClose(_int){
	// サブメニューの非表示
	hideMenuSub(active_int);
	active_int = focus_int;
	// メニューの更新
	showMenu(active_int);
}

/* 
 * FlashPlayerのバージョンを取得します
 * @param	isMejorVersion:Boolean メジャーバージョンだけ取得する場合trueとしてください
 * @return	FlashPlayerのバージョンを返します。引数でtrueを渡していた場合（メジャーバージョンを取得するようにしていた場合）は、9、10などメジャーバージョン単体、そうでない場合は、9.0.45.0や、10.0 d536など、リビジョンを含めたバージョン情報を返します。
 */
function getFlashPlayerVersion(isMejorVersion)
{
	var flash = "application/x-shockwave-flash";
	var ver = 0;
	if (navigator.mimeTypes && navigator.mimeTypes[flash] && navigator.mimeTypes[flash].enabledPlugin)
	{
		for (var i=0; i<navigator.plugins.length; i++)
		{
			var pluginDescription = navigator.plugins[i].description;
			var flashIndex = pluginDescription.indexOf("Flash");
			if(flashIndex >= 0)
			{
				if(!isMejorVersion)
				{
					ver = pluginDescription.substring(flashIndex + 6);
				} else {
					ver = eval(pluginDescription.substring(flashIndex + 6, flashIndex + 9));
				}
			}
		}
	}
	return ver;
}

/*
  PICKUP USER SYSTEM
  Author : tak@
  URL    : http://plus-5.com
  Version: 1.0
	Update : 2004. 9.12
-------------------------------------------------*/

/*
  SETTING VARIABLES
-------------------------------------------------*/
function P5_getUserSystem() {
	var key, index, keyIndex, keyIndexEnd, versionKey, i, j;
	var uaString = P5_getUserSystem.arguments[0].toUpperCase();

	this.osLongName = "---";
	this.osShortName = "---";
	this.browserLongName = "---";
	this.browserShortName = "---";
	this.browserVersion = "---";

	var OSTYPE = new Object();
	OSTYPE['W95'] = new P5_setOS('Windows 95','win','WINDOWS 95,WIN95');
	OSTYPE['W98'] = new P5_setOS('Windows 98','win','WINDOWS 98,WIN98,Win 9x');
	OSTYPE['WCE'] = new P5_setOS('Windows CE','win','WINDOWS CE,WINCE');
	OSTYPE['WME'] = new P5_setOS('Windows Me','win','WINDOWS ME,WINME');
	OSTYPE['WNT'] = new P5_setOS('Windows NT','win','WINDOWS NT),WINDOWS NT 3,WINDOWS NT 4,WINDOWS NT;,WINNT');
	OSTYPE['W2K'] = new P5_setOS('Windows 2000','win','WINDOWS 2000,WINDOWS NT 5.0,WIN2000');
	OSTYPE['WXP'] = new P5_setOS('Windows XP','win','WINDOWS NT 5.1,WINDOWS NT 5.2,WINDOWS XP');
	OSTYPE['VST'] = new P5_setOS('Windows Vista','win','WINDOWS NT 6.0');
	OSTYPE['MAC'] = new P5_setOS('Macintosh','mac','MAC');
	OSTYPE['LNX'] = new P5_setOS('Linux','lnx','LINUX');
	OSTYPE['BSD'] = new P5_setOS('FreeBSD','bsd','FREEBSD');
	OSTYPE['X11'] = new P5_setOS('UNIX','x11','X11');
	OSTYPE['OSX'] = new P5_setOS('Mac OS X','osx','OS X');

	var BROWSERS = new Object();
	BROWSERS['MZ'] = new P5_setBrowser('Mozilla','mz','GECKO');
	BROWSERS['IE'] = new P5_setBrowser('Internet Explorer','ie','MSIE');
	BROWSERS['AO'] = new P5_setBrowser('AOL','ao','AOL');
	BROWSERS['SF'] = new P5_setBrowser('Safari','sf','SAFARI');
	BROWSERS['OP'] = new P5_setBrowser('Opera','op','OPERA');
	BROWSERS['OW'] = new P5_setBrowser('OmniWeb','ow','OMNIWEB');
	BROWSERS['IC'] = new P5_setBrowser('iCab','ic','ICAB');
	BROWSERS['NS'] = new P5_setBrowser('Netscape','ns','NETSCAPE,NETSCAPE6');
	BROWSERS['NN'] = new P5_setBrowser('Netscape Navigator','nn','MOZILLA');
	BROWSERS['FF'] = new P5_setBrowser('Firefox','ff','FIREFOX');
	
	var UNIXDETAIL = new Array("LNX","BSD");
	var checkVersionExp01 = new Array(' ', '/', '-', '');
	var checkVersionExp02 = new Array(';', ' ', '(', '[', ')', '+', '-', '/');

	uaString = " " + uaString + ";";
	
	index = 0;
	for (key in OSTYPE) {
		for (i=0; i<OSTYPE[key].keyword.length; i++) {
			keyIndex = uaString.indexOf(OSTYPE[key].keyword[i].toUpperCase());
			if (keyIndex > index) {
				this.osLongName = OSTYPE[key].longName;
				this.osShortName = OSTYPE[key].shortName;
				index = keyIndex;
			}
		}
	}

	// UNIX is reary?
	if (this.osShortName == "x11") {
		for (i=0; i<UNIXDETAIL.length; i++) {
			key = UNIXDETAIL[i];
			for (j=0; j<OSTYPE[key].keyword.length; j++) {
				if (uaString.indexOf(OSTYPE[key].keyword[j].toUpperCase()) > 0) {
					this.osLongName = OSTYPE[key].longName;
					this.osShortName = OSTYPE[key].shortName;
				}
			}
		}
	}

	// Mac OS is reary?
	if (this.osShortName == "mac") {
		var myPlugin = navigator.plugins;
		for (i=0; i<myPlugin.length; i++) {
			if(typeof(myPlugin[i].filename)!="undefined"){
				if (myPlugin[i].filename.indexOf(".plugin") != -1 || myPlugin[i].filename.indexOf(".app") != -1) {
					this.osLongName = OSTYPE["OSX"].longName;
					this.osShortName = OSTYPE["OSX"].shortName;
				}
			}
		}
		if (uaString.indexOf("MSIE 5.2") > 0) {
			this.osLongName = OSTYPE["OSX"].longName;
			this.osShortName = OSTYPE["OSX"].shortName;
		}
	}

	index = 0;
	for (key in BROWSERS) {
		for (i=0; i<BROWSERS[key].keyword.length; i++) {
			keyIndex = uaString.indexOf(BROWSERS[key].keyword[i].toUpperCase());
			if (keyIndex > index) {
				this.browserLongName = BROWSERS[key].longName;
				this.browserShortName = BROWSERS[key].shortName;
				versionKey = BROWSERS[key].keyword[i].toUpperCase();
				index = keyIndex;
			}
		}
	}

	// Navigator is reary?
	if (this.browserShortName == "nn" && uaString.indexOf("COMPATIBLE")>0) {
		this.browserLongName = "---";
		this.browserShortName = "---";
	}

	// Version Check
	if (this.browserLongName != "---") {
		for (i=0; i<checkVersionExp01.length; i++) {
			key = versionKey + checkVersionExp01[i];
			if ( ( keyIndex = uaString.indexOf(key) ) > 0 ) break;
		}
		// Mozilla
		if ( key == 'GECKO/' ) {
			key = 'RV:';
			keyIndex = uaString.indexOf(key);
		}
		keyIndex = keyIndex + key.length;
		index = uaString.length;
		for (i=0; i<checkVersionExp02.length; i++) {
			if ((key = uaString.indexOf(checkVersionExp02[i], keyIndex)) > 0) {
				if (key < index) {
					keyIndexEnd = key;
					index = keyIndexEnd;
				}
			}
		}
		this.browserVersion = uaString.substring(keyIndex, keyIndexEnd);
	}

}
/*
  SETTING OS LIST
-------------------------------------------------*/
function P5_setOS(longName,shortName,keyWord) {
	this.longName = longName;
	this.shortName = shortName;
	this.keyword = keyWord.split(",");
}
/*
  SETTING BROWSER LIST
-------------------------------------------------*/
function P5_setBrowser(longName,shortName,keyWord) {
	this.longName = longName;
	this.shortName = shortName;
	this.keyword = keyWord.split(",");
}

var userSystem = new P5_getUserSystem(navigator.userAgent);

