// JavaScript Document
$(document).ready(function(){
	$("img[src*='_off.']").rollOver();
	$("a.pn[href^='#']").smScroll( {easing:"easeInOutSine"} );
	$(".ar").alphaRo( {from:1, to:0.7} );
	$("a[rel='jMap']").anotherWin({width:850, height:650});
	$("a[rel='jTax']").anotherWin({width:660});
	$("a[rel='jBrand']").anotherWin({width:700});
});

jQuery.fn.extend({
	/*	RollOver
	-------------------------------------------------------------------------- */
	rollOver : function(findObj) {
		var _fObj = findObj;
		$(this).hover( rOver, rOut ).each( preLoad );
		function rOver() {
			var tgt = changeTgt($(this));
			tgt.attr("src", tgt.attr("src").replace("_off.", "_on."));
		}
		function rOut() {
			var tgt = changeTgt($(this));
			tgt.attr("src", tgt.attr("src").replace("_on.", "_off."));
		}
		function changeTgt(tgt) {
			return (_fObj != null) ? tgt.find(_fObj) : tgt;
		}
		function preLoad() {
			var tgt = changeTgt($(this));
			$("<img>").attr("src", tgt.attr("src").replace("_off.", "_on."));
		}
		return $(this);
	},
	/*	Alpha RollOver
	-------------------------------------------------------------------------- */
	alphaRo : function(opt) {
		if( !opt ) opt = new Object();
		var _from = opt.from!=null ? opt.from : 1;
		var _to = opt.to!=null ? opt.to : 0.8;
		var _f = opt.fade!=null ? opt.fade : false;
		var _s = opt.speed!=null ? opt.speed : "normal";
		$(this).css({"opacity":_from, display:"inline-block"}).bind("mouseenter", {toNum:_to}, toOpacity).bind("mouseleave", {toNum:_from}, toOpacity);
		function toOpacity(event) {
			var tgt = $(this);
			var rel = tgt.attr('rel');
			if( rel ) {
				tgt = $("*[rel='"+rel+"']");
			}
			( _f ) ? tgt.queue([]).fadeTo(_s, event.data.toNum) : tgt.css("opacity", event.data.toNum);
		}
		return $(this);
	},
	/*	Smooth Scroll
	-------------------------------------------------------------------------- */
	smScroll : function (opt) {
		var _hash, _h, _inH, _flag=true;
		var strUA = navigator.userAgent.toLowerCase();
		var _scrTgt = $('html');
		if( strUA.indexOf("safari") != -1 ) _scrTgt = $('body');
		if( !opt ) opt = new Object();
		var s = opt.speed!=null ? opt.speed : 700;
		var ease = opt.easing!=null ? opt.easing : '';
		$(this).click(function() {
			var tgt = $(this).attr('href').substr(1);
			_h = Math.max( document.body.clientHeight , document.body.scrollHeight );  
			_h = Math.max( _h , document.documentElement.scrollHeight );  
			_h = Math.max( _h , document.documentElement.clientHeight );
			_inH = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
			toPos(tgt);
			return false;
		});
		setInterval( function() {
			var sHash = getHash();
			toPosBrowse(sHash);
		}, 200 );
		function toPos(gHash) {
			if( _flag ) {
				_hash = gHash;
				_flag = false;
				_scrTgt.animate({scrollTop:toGetPoint()}, s, ease, setHash);
			}
		}
		function toPosBrowse(gHash) {
			if( _hash !== gHash && _flag ) {
				_hash = gHash;
				_scrTgt.queue([]).scrollTop(toGetPoint());
				flag = true;
			}
		}
		function toGetPoint() {
			var result = 0;
			if(_hash != '') {
				result = $("*[name='"+_hash+"']").offset().top;
				if(result+_inH > _h) result = _h-_inH;
			}
			return result;
		}
		function getHash() {
			if ( typeof window.location.hash !== 'undefined' ) {
				return window.location.hash.substr(1);
			} else {
				return location.hash.substr(1);
			}
		}
		function setHash() {
			if ( typeof window.location.hash !== 'undefined' ) {
				if ( window.location.hash !== _hash ) {
					window.location.hash = _hash;
				}
			} else if( location.hash !== _hash ) {
				location.hash = _hash;
			}
			_flag = true;
		}
		return $(this);
	},
	/*	Popup Window
	-------------------------------------------------------------------------- */
	anotherWin : function(opt) {
		if( !opt ) opt = new Object();
		var _w = opt.width!=null ? opt.width : 500;
		var _h = opt.height!=null ? opt.height : false;
		var _n = opt.name!=null ? opt.name : 'subWindow';
		var _s = opt.scrollbars!=null ? opt.scrollbars : 'yes';
		var _r = opt.resizable!=null ? opt.resizable : 'yes';
		var _m = opt.menubar!=null ? opt.menubar : 'yes';
		$(this).click( function() {
			var url = $(this).attr('href');
			var rule = 'width='+_w+',scrollbars='+_s+',resizable='+_r+',menubar='+_m;
			if( _h ) rule += ',height='+_h;
			window.open(url, _n, rule);
			return false;
		});
		return $(this);
	}
});

