/*
	hbr.js
*/

function IBEnvironment() {
	var d  = document;
	var de = d.documentElement;
	var ua = navigator.userAgent;
	this.ua = {};
	this.ua.isGecko      = ua.match(/Gecko\//);
	this.ua.isSafari     = ua.match(/AppleWebKit/);
	this.ua.isOpera      = window.opera;
	this.ua.isIE         = (d.all && !this.ua.isGecko && !this.ua.isSafari && !this.ua.isOpera);
	this.ua.isIE40       = (this.ua.isIE && ua.match(/MSIE 4\.0/));     // IE 4.0x
	this.ua.isIE45       = (this.ua.isIE && ua.match(/MSIE 4\.5/));     // IE 4.5x
	this.ua.isIE50       = (this.ua.isIE && ua.match(/MSIE 5\.0/));     // IE 5.0x
	this.ua.isIE55       = (this.ua.isIE && ua.match(/MSIE 5\.5/));     // IE 5.5x
	this.ua.isIE60       = (this.ua.isIE && ua.match(/MSIE 6\.0/));     // IE 6.0x
	this.ua.isIE70       = (this.ua.isIE && ua.match(/MSIE 7\.0/));     // IE 7.0x
	this.ua.isIE80       = (this.ua.isIE && ua.match(/MSIE 8\.0/));     // IE 8.0x
	this.ua.isNN4        = d.layers;                                    // NN 4.x
	this.ua.isMac        = ua.match(/Mac/);
	this.ua.isWin        = ua.match(/Win/);
	this.ua.isWinIE      = this.ua.isWin && this.ua.isIE;
	this.ua.isMacIE      = this.ua.isMac && this.ua.isIE;
	this.ua.productSub   = navigator.productSub;
	this.ua.revision     = (this.ua.isIE    ) ? parseFloat(ua.match(/MSIE ([\d\.]+)/)[1])         :
	                       (this.ua.isGecko ) ? parseFloat(ua.match(/; rv:([\d\.]+)/)[1])         :
	                       (this.ua.isSafari) ? parseFloat(ua.match(/AppleWebKit\/([\d\.]+)/)[1]) :
	                       (this.ua.isOpera ) ? parseFloat(ua.match(/Opera.([\d\.]+)/)[1])        :
	                                            0;
}

$id = function(ids){
	var d = document;
	if(d.getElementById(ids)) return d.getElementById(ids);
	return false;
}

$class = document.getElementsByClassName = function(className, tagName) {
	if(!tagName) tagName = "*";
	var d = document;
	var children = d.getElementsByTagName(tagName) || d.all;
	if(!children) return;
	var elements = new Array();
	var childrenlength = children.length;
  
	for (var i = 0; i < childrenlength; i++) {
		var child = children[i];
		var classNames = child.className.split(' ');
		var classNameslength = classNames.length;
		for (var j = 0; j < classNameslength; j++) {
			if (classNames[j] == className) {
				elements.push(child);
				break;
			}
		}
	}
	return elements;
}


var Class = {
	create: function() {
		return function() {
			this.initialize.apply(this, arguments);
		}
	}
}
/*	CLASS	*/


var importer = Class.create();
importer.prototype = {
	initialize: function(){},
	js: function(url, char){
		var head = document.getElementsByTagName( 'head' );
		var script=document.createElement( 'script' );
		script.type="text/javascript";
		script.src= url;
		(char)? script.charset=char : 0;
		head[0].appendChild( script );
	},
	css: function(url){
		var head = document.getElementsByTagName( 'head' );
		var link=document.createElement( 'link' );
		link.media="all";
		link.rel="stylesheet";
		link.type="text/css";
		link.href= url;
		head[0].appendChild( link );
	}
}


var rollOver = Class.create();
rollOver.prototype = {
	initialize: function(){
		var roAry = $class('rollover', 'img');
		if(!roAry) return;
		var extentionList = new Array(	'jpg',
						'jpeg',
						'jpe',
						'gif',
						'bmp',
						'png');
		var pleLoadImagesUrl = new Array();
		for(i in roAry){
			var obj = new Object();
			var urlString = new String();
				urlString = roAry[i].src;
					for(j in extentionList){
						if(urlString.match(extentionList[j])){
							urlString = urlString.split("."+extentionList[j]);
							urlString = urlString[0].split("_n.");
							urlString = urlString[0] + "_o." + extentionList[j];
						}
					}
				obj.onmouseover = this.onMouseOver;
				obj.onmouseout = this.onMouseOut;
				obj.src_n = roAry[i].src;
				obj.src_o = urlString;

			roAry[i].src_o = obj.src_o;
			roAry[i].src_n = obj.src_n;
			roAry[i].onmouseover = obj.onmouseover;
			roAry[i].onmouseout = obj.onmouseout;
		pleLoadImagesUrl.unshift(obj.src_o);
		}
		this.preLoadImages(pleLoadImagesUrl);
	},
	onMouseOver: function(){
		this.src = this.src_o;
	},
	onMouseOut: function(){
		this.src = this.src_n;
	},
	preLoadImages: function(){
		if(arguments[0]){
		preImgAry = new Array();
			for(i in arguments[0]){
				var preImgs = new Image();
				preImgs.src = arguments[0][i];
				preImgAry[i] = preImgs.src;
			}
		}
	}
}

function addEvent(elm, type, event) {
	if(elm.addEventListener) {
		elm.addEventListener(type, event, false);
	} else if(elm.attachEvent) {
		elm.attachEvent('on'+type, event);
	} else {
		elm['on'+type] = event;
	}
}

function hbrAutoRun(){
	var bro = new IBEnvironment();
	if(!bro.ua.isMac && !bro.ua.isIE50){
		$('body *:first-child').addClass('first-child');
		$('body *:last-child').addClass('last-child');
		$('div#main h2 + h3').addClass('h2+');
		$('div#main h3 + h4').addClass('h3+');
		$('div#main h2 + p').addClass('h2p');
		$('div#main h3 + p').addClass('h3p');
		$('div#main h4 + p').addClass('h4p');
		$('div#main h5 + p').addClass('h5p');
		$('div#main h6 + p').addClass('h6p');
	}
		new rollOver();
}

addEvent(window, 'load', function(){
	hbrAutoRun();
});


