
/* no right click */
$(document).ready(function(){
	$(document).bind("contextmenu",function(e){
		return false;
	});
});


/* 画像保護 engine */

var imgProtecter = {
	conf : {
		dummyImage : '../images/spacer.gif',
		targetClass : 'protectimage',// ターゲットのクラス名(リンクがあるときはaタグに入れる)
		dummyStyle : 'margin:0; padding:0; border:none; position:absolute; z-index:10;',// ダミー画像に適用されるstyle
		linkStyle : 'margin:0; padding:0; display:block; text-decoration:none; position:absolute; z-index:100;',// アンカーに適用されるstyle
		debugMode : false,// デバッグモード(true：デバッグモード / false：通常モード)
		rClick : true,// マウス右クリック(true：使用可 / false：禁止)
		imagetoolbar : false// WindowsXPのイメージツールバー(true：使用可 / false：禁止)
	},	
	/* IE判定 */
	isIE : function() {
		if ( IE='\v'=='v' ) {
			return true;
		} else {
			return false;
		}
	},
	/* IE8判定 */
	isIE8 : function() {
		if ( imgProtecter.isIE() && document.documentMode ) {
			return true;
		} else {
			return false;
		}
	},	
	init : function() {
		imgProtecter.addEvent(window, 'load', imgProtecter.set);
		imgProtecter.addEvent(window, 'load', imgProtecter.setImg);
		if ( !imgProtecter.conf.rClick ){
			imgProtecter.addEvent(document.body, 'contextmenu', function(){return false;});
		}
		if ( !imgProtecter.conf.imagetoolbar ){
			var head = document.getElementsByTagName('head');
			var m = document.createElement('meta');
			if (imgProtecter.isIE() && !imgProtecter.isIE8()) {
				m.setAttribute('httpEquiv','imagetoolbar');
			} else {
				m.setAttribute('http-equiv','imagetoolbar');
			}
			m.setAttribute('content','no');
			head.item(0).appendChild(m);
		}
	},
	/* ダミー画像のセット (アンカーあり) */
	set : function() {
		var elm = imgProtecter.getElementsByTagAndClassName('A', imgProtecter.conf.targetClass);
		var length = elm.length;
		for (var i = 0; i < length; i++) {
			var h = elm[i].firstChild.getAttribute('height');
			var w = elm[i].firstChild.getAttribute('width');
			var pos = imgProtecter.getElementPosition(elm[i].firstChild);
			var elmLink = elm[i].href;
			var elmTarget = elm[i].target;
			var img = document.createElement('img');
			var anc = document.createElement('a');
			anc.href = elmLink;
			anc.target = elmTarget;
			img.setAttribute('src', imgProtecter.conf.dummyImage);
			if ( h ) {
				img.setAttribute('height', h);
			}
			if ( w ) {
				img.setAttribute('width', w);
			}
			var lstyle = imgProtecter.conf.linkStyle + ' top:' + pos.top + 'px; left:' + pos.left + 'px; height:' + h + 'px; width:' + w + 'px;';
			if ( imgProtecter.conf.debugMode ) {
				style = style + ' background-color:#FFB2D8;';
			}
			if ( imgProtecter.isIE() && !imgProtecter.isIE8() ) {
				anc.style.cssText = lstyle;
			} else {
				anc.setAttribute('style', lstyle);
			}
			document.body.appendChild(anc);
			anc.appendChild(img);
		}
	},
	/* ダミー画像のセット (画像のみ) */
	setImg : function() {
		var elm = imgProtecter.getElementsByTagAndClassName('IMG', imgProtecter.conf.targetClass);
		var length = elm.length;
		for (var i = 0; i < length; i++) {
			var h = elm[i].getAttribute('height');
			var w = elm[i].getAttribute('width');
			var pos = imgProtecter.getElementPosition(elm[i]);
			var img = document.createElement('img');
			img.setAttribute('src', imgProtecter.conf.dummyImage);
			if ( h ) {
				img.setAttribute('height', h);
			}
			if ( w ) {
				img.setAttribute('width', w);
			}
			var style = imgProtecter.conf.dummyStyle + ' top:' + pos.top + 'px; left:' + pos.left + 'px;';
			if ( imgProtecter.conf.debugMode ) {
				style = style + ' background-color:#FFB2D8;';
			}
			if ( imgProtecter.isIE() && !imgProtecter.isIE8() ) {
				img.style.cssText = style;
			} else {
				img.setAttribute('style', style);
			}
			document.body.appendChild(img);
		}
	},
	getElementsByTagAndClassName : function( tag, cls ) {
		var elements = new Array();
		var targetElements = document.getElementsByTagName(tag);
		var length = targetElements.length;
		for (var i = 0; i < length; i++) {
			if (targetElements[i].className.match(cls)) {
				elements[elements.length] = targetElements[i];
			}
		}
		return elements;
	},
	getElementPosition : function( elm ) {
		var offsetTrail = (typeof elm == 'string') ? doc.getElementById(elm): elm;
		var x = 0; var y = 0;
		while (offsetTrail) {
			x += offsetTrail.offsetLeft;
			y += offsetTrail.offsetTop;
			offsetTrail = offsetTrail.offsetParent;
		}
		/*if (navigator.userAgent.indexOf('Mac') != -1 && typeof doc.body.leftMargin != "undefined") {
			x += doc.body.leftMargin;
			y += doc.body.topMargin;
		}*/
		return ({ "left": x, "top": y });
	},
	addEvent : function( elm, event, func ) {
		try {
			elm.addEventListener(event, func, false);
		} catch (e) {
			elm.attachEvent('on' + event, func);
		}
	}
}
imgProtecter.init();

/* 画像保護 engine end */
