/* ---------------------------------------------------------------
	
	FUNCTION.JS -- FOURDIGIT JavaScript BASAE FUNCTIONS
	Copyright (c) FOURDIGIT Inc. All Rights Reserved.
		
--------------------------------------------------------------- */
/*
	EXTEND LIBRARY
*/

jQuery.fn.extend();

var rootPath = function(){
	return jQuery('script#coreJS')[0].src.split('script/js')[0];
}

/*
	AUTOMATION
*/
//FUNCTION initRollOvers
function initRollOvers(){
	if(!document.getElementById) return;

	var preImgArr = new Array();

	$('img.ahover').each(function(){
		var src = $(this).attr('src');
		var isov = src.substring(0,src.lastIndexOf('.'));
		if( isov.substring(isov.length-3, isov.length) != "_ov"
		 && isov.substring(isov.length-3, isov.length) != "_on"
		 && isov.substring(isov.length-4, isov.length) != "_off"
		){
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_ov'+ftype);
			var dsrc = src;
			$(this).attr('hsrc', hsrc);
			$(this).attr('dsrc', dsrc);

			preImgArr.push(new Image());
			preImgArr[preImgArr.length-1].src = hsrc;

			$(this).bind('mouseover', function(e){
				$(this).attr('src', $(this).attr('hsrc'));
				enablePNG (this);
			});
			$(this).bind('mouseout', function(e){
				$(this).attr('src', $(this).attr('dsrc'));
				enablePNG (this);
			});
			if ($.browser.safari) {
				$(this).bind('click', function(e){
					$(this).attr('src', $(this).attr('dsrc'));
					enablePNG (this);
				});
			}
		}
	});
}
//FUNCTION enableFlash (for IE6.5+ on winXP SP2 KB912945)
function enableFlash(){
	if(jQuery.browser.msie) {
		jQuery('object, applet, embed').each(function () {
			this.removeAttribute('data');
			this.outerHTML += "";
		});
	}
}
//FUNCTION enablePNG
function enablePNG (obj) {
	if(jQuery.browser.msie){
		if(obj && /\.png/.test(obj.src)) {
			var imgSource = obj.src;
			obj.src = rootPath()+'share_imgs/space.gif';
			obj.style.filter = 
				'progid:' +
				'DXImageTransform.Microsoft.AlphaImageLoader' +
				'(src="' + imgSource + '",' +
				'sizingMethod="scale")';
		}else{
			jQuery('img[@src*=png]').each(function () {
				var imgSource = this.src;
				this.src = rootPath()+'share_imgs/space.gif';
				this.style.filter = 
					'progid:' +
					'DXImageTransform.Microsoft.AlphaImageLoader' +
					'(src="' + imgSource + '",' +
					'sizingMethod="scale")';
			});
		}
	}
}
//FUNCTION enableCSSPNG
function enableCSSPNG (){
	if(jQuery.browser.msie){
		var styleSheets = document.styleSheets['masterCSS'].imports;
		//for (var i = 0; i < styleSheets.length; i++) {
		for (var i in styleSheets) {
			var styleSheet = styleSheets[i];
			var rules = styleSheet.rules || styleSheet.cssRules;
			//for (var j = 0; j < rules.length; j++) {
			for (var j in rules) {
				var rule = rules[j];
				var styles = rule.style;
				for (var property in styles) {
					var val = styles[property];
					if( !/png/.test(val) || !/backgroundImage/.test(property) ) continue;
					var regEx = new RegExp("[\.\.\/\]+(([^\"\'\'\"\)]*)\)","");
					var reg = val.match(regEx);
					var imgSrc = RegExp.$1;
					var filter = '' +
							'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' +
							rootPath() + imgSrc +
							'", sizingMethod="scale");';
					styleSheet.addRule(rule.selectorText, "background-image:none");
					styleSheet.addRule(rule.selectorText, filter);
				}
			}
		}
	}
}
//FUNCTION cssBrowserSelector
var cssBrowserSelector = function() {
	var
	ua = navigator.userAgent.toLowerCase(),
	is = function(t){ return ua.indexOf(t) != -1; },
	h = jQuery('body')[0],
	b =	(!(/opera|webtv/i.test(ua)) && /msie (\d)/.test(ua)) ? ('ie ie'+RegExp.$1)
			: is('gecko/') ? 'gecko'
			: is('opera/9') ? 'opera opera9'
			: /opera (\d)/.test(ua) ? 'opera opera'+RegExp.$1
			: is('konqueror') ? 'konqueror'
			: is('applewebkit/') ? 'webkit safari'
			: is('mozilla/') ? 'gecko'
			: '',
	o= (is('x11')||is('linux')) ?' linux'
			:is('mac') ? ' mac'
			:is('win') ? ' win'
			:'';
	var c = b+o+' js';
	h.className += h.className? ' '+c : c;
};
//FUNCTION smoothScroll
var actX;
var actY;
var tarY = 0;
var tarX = 0;
var scrollInt;
var smoothScroll = function () {
	jQuery('a').each(function(){
		var anc = this.href.split('#')[1];
		if( /#/.test(this.href)  && this.href.match(location.href) && jQuery('#'+anc)[0] ){
			this.href="javascript:void(0);";
			jQuery(this).bind('click', function  (){
				tarX = (jQuery(document).width() > jQuery('#'+anc).position().left + jQuery(window).width())
					? jQuery('#'+anc).position().left
					: jQuery(document).width() - jQuery(window).width();
				tarY = (jQuery(document).height() > jQuery('#'+anc).position().top + jQuery(window).height())
					? jQuery('#'+anc).position().top
					: jQuery(document).height() - jQuery(window).height();
			  actX = jQuery(document).scrollLeft();
			  actY = jQuery(document).scrollTop();
				clearInterval(scrollInt);
				scrollInt = setInterval('setScroll()', 20);
			});
		}
	});
}
function setScroll(){
	actY += (tarY - actY) / 6;
	actX += (tarX - actX) / 6;
	if(Math.abs(tarX - actX) < 2 && Math.abs(tarY - actY) < 2){
		clearInterval(scrollInt);
	}
	scrollTo( Math.round(actX), Math.round(actY));
}

function blankToPop () {
	jQuery('a.commonPop').each(function(){
		$(this).removeAttr("target");
		$(this).attr('popURL', this.href);
		( $(this).attr("rel") ? "" : $(this).attr("rel","") );
		this.href = "javascript:;";
		$(this).click(function () {
			eval("commonPop('"+$(this).attr("popURL")+"',"+$(this).attr("rel")+")");
		});
	});
}

/*
	USER FUNCTION
*/
//FUNCTION commonPop
//pFile = popup File
//pWidth = popup Width [optional]
//pHeight = popup Height [optional]
//pStatus = popup Features[optional]
function commonPop(pFile, pWidth, pHeight,pStatus){
	//var fName = pFile.substring(pFile.lastIndexOf('/')+1, pFile.length);
	var wName = "";
	if(pWidth == null){ pWidth = 700}
	if(pHeight == null){ pHeight = 600}
	if(pStatus == null){ pStatus = 'yes';}
	if(pWidth > screen.availWidth){
		pWidth = screen.availWidth;
		pStatus = 'yes';
	}
	if(pHeight > screen.availHeight-50){
		pHeight = screen.availHeight-50;
		pStatus = 'yes';
	}
	var wFeatures= 'menubar=no,scrollbars='+pStatus+',resizable='+pStatus+',width='+pWidth+',height='+pHeight;
	void(window.open(pFile, wName, wFeatures));
}
//FUNCTION moveOpener
//pFile = file
function moveOpener(pFile){
	if(opener){
		void(opener.location.href = pFile);
	}else{
		void(document.location.href = pFile);
	}
}
//FUNCTION AS externalInterface
function AS (str) {
	if(jQuery.browser.msie){
		return window[str];
	}else{
		return document[str];
	}
}

//FUNCTION blankLogToGoogle
function blankLogToGoogle (str) {
	jQuery("a[target='_blank']").each(function(){
		var expr = new RegExp("(.*)://(/?)(.*?)/");
		var h = this.href;
		var hArr = h.match(expr);
		var l = location.href;
		var lArr = l.match(expr);
		if(hArr[0] != lArr[0]) {
			var str = h.replace(/\?/g, "%3F");
			$(this).click(
				function(){ pageTracker._trackPageview('/blank/?'+str) }
			);
		}
	})
}