// Admin

$(function(){
	
	Rollover.initrolloverimages();
	
	// {$ROOT}にあたるパスを取得
	$(':hidden[name=root]').each(function(){
		Ut.ROOT = $(this).val();
	});

	if ($(':hidden[name=login_failure]').length>0) {
		alert('正しいログインIDもしくはパスワードを入力して下さい。');
	}
	
	$(':text[name=mglf_loginid]').each(function(){
		var parents = $(this).parents();
		for (var i=0; i<parents.length; i++) {
			if (parents[i].nodeName.toLowerCase()=='form') {
				$(parents[i]).submit(function(){
					if ($(':text[name=mglf_loginid]',parents[i]).val()=='') {
						alert('ログインIDが入力されていません。');
						return false;
					} else if ($(':password[name=mglf_password]',parents[i]).val()=='') {
						alert('パスワードが入力されていません。');
						return false;
					}
					return true;
				});
				break;
			}
		}
	});
	
});



/**
 * ポップアップウィンドウクラス
 * 
 * 使用例 (1)<br />
 * var pop1 = new PopupWindow('popup.html');
 * pop1.open({width:500,height:400});
 *
 * 使用例 (2)<br />
 * <a href="popup.html" onclick="(new PopupWindow(this.href)).open({width:200,height:'max'});">open</a>
 * 
 */
var PopupWindow = function(url) {
	if (url)
		this.url = url;
	this.popupwindow = null;
	this.scrollbars = 'yes';
	this.resizable = 'yes';
	this.copyhistory = 'yes';
	this.width = null;
	this.height = null;
	this.left = 'center';
	this.top = 'center';
};

PopupWindow.prototype.open = function(argv) {
	
	var option = {};
	
	if (!argv)
		argv = {};
	
	var lurl = (argv.url) ? argv.url : this.url;
	
	option.width = (argv.width) ? argv.width : this.width;
	option.height = (argv.height) ? argv.height : this.height;
	
	if (option.width && option.width == 'max') 
		option.width = screen.width;
	if (option.height && option.height == 'max') 
		option.height = screen.height;
	
	option.scrollbars = (argv.scrollbars) ? argv.scrollbars : this.scrollbars;
	option.resizable = (argv.resizable) ? argv.resizable : this.resizable;
	option.copyhistory = (argv.copyhistory) ? argv.copyhistory : this.copyhistory;
	
	option.left = (argv.left!=undefined) ? argv.left : this.left;
	if (option.left == 'center')
		option.left = (!isNaN(option.width)) ? (screen.width - option.width) / 2 : null;
		
	option.top = (argv.top!=undefined) ? argv.top : this.top;
	if (option.top == 'center')
		option.top = (!isNaN(option.height)) ? (screen.height - option.height) / 2 : null;
	
	if (option.left)
		option.screenX = option.left;
	if (option.top)
		option.screenY = option.top;
	
	if (this.popupwindow && !this.popupwindow.closed) {
		this.popupwindow.close();
	}
	
	var optionStr = '';
	for (var key in option) {
		if (option[key]!=null)
			optionStr += key+'='+option[key]+',';
	}
	
	// Output to console
	if (window.console) {
		window.console.log(optionStr);
		window.console.log('popup::'+lurl);
	}
	
	this.popupwindow = window.open(lurl, PopupWindow.getNewWindowName(), optionStr);
	return this.popupwindow;
	
};

PopupWindow.sequence = 0;
PopupWindow.getNewWindowName = function(){
	return 'win'+(PopupWindow.sequence++);
};


/**
 * ロールオーバー
 *
 * img要素のclass属性に「rollover」を指定すると、指定されたファイル名に「_over」の接尾語をつけたファイル名がロールオーバーで入れ替わる
 * 
 * 使用例
 * <img src="images/image.jpg" alt="" class="rollover" />
 *
 */
var Rollover = function () {};

Rollover.suffix = '_over';
Rollover.preloadimages = [];
Rollover.overflag = [];

Rollover.overimage = function (obj) {
	if (obj.src && obj.src.indexOf('.') != -1) {
		obj.src = Rollover.getrolloverimagefile(obj.src);
		this.overflag.push(obj);
	}
}
	
Rollover.normalimage = function (obj) {
	var flag = false;
	for (var i in this.overflag) {
		if (this.overflag[i] == obj) {
			flag = true;
			this.overflag[i] = null;
			break;
		}
	}
	if (flag && obj.src && obj.src.indexOf('.') != -1) {
		obj.src = Rollover.getoriginalimagefile(obj.src);
	}
}
	
Rollover.getrolloverimagefile = function (path) {
	var filename = path.substring(0, path.lastIndexOf('.'));
	var extention = path.substring(path.lastIndexOf('.'), path.length);
	return filename + Rollover.suffix + extention;
}
	
Rollover.getoriginalimagefile = function (path) {
	var filename = path.substring(0, path.lastIndexOf('.')-Rollover.suffix.length);
	var extention = path.substring(path.lastIndexOf('.'), path.length);
	return filename + extention;
}

Rollover.initrolloverimages = function() {
	var images = document.getElementsByTagName('img');
	for (var i=0; i<images.length; i++) {
		var classValue = null;
		if (images[i].getAttribute('className'))
			classValue = images[i].getAttribute('className');
		else if (images[i].getAttribute('class'))
			classValue = images[i].getAttribute('class');
		if (classValue != null && classValue.indexOf('rollover') != -1 && images[i].src) {
			images[i].onmouseover = function() {
				Rollover.overimage(this);
			};
			images[i].onmouseout = function() {
				Rollover.normalimage(this);
			};
			Rollover.preloadimages[i] = new Image();
			Rollover.preloadimages[i].src = Rollover.getrolloverimagefile(images[i].src);
		}
	}
};




/**
 * Utilities
 */
var Ut = function(){};

Ut.KEY_ESC = 27;
Ut.ROOT = null;


/**
 * 要素を取得
 * @param string elementname 要素名
 * @param Object 属性
 * @return Object
 */
Ut.getElement = function(elementname, attrs){
	var element = $(document.createElement(elementname));
	for (var label in attrs) {
		if (label=='class')
			element.addClass(attrs[label]);
		else if (label=='text')
			element.text(attrs[label]);
		else
			element.attr(label, attrs[label]);
	}
	return element;
};
