// version 1.1.1 - FICC inc.

var jqueryhelper = Object();

jqueryhelper.rolloverSuffix = '_on';

jqueryhelper.current = new Array();
jqueryhelper.currentSuffix = '_on';

$(document).ready(function(){
	initCurrent();
	initRollover();
	initRolloverGroup();
	initGoto();
	initFirstChild();
	initLastChild();
	initOdd();
	initEven();
	initAdjustHeight();
	initAdjustChildHeight();
	initToolTipLite();
});

function initRollover(){
	$('.rollover').hover(function(){
		toggleRolloverImage($(this));
	},function(){
		toggleRolloverImage($(this));
	});
	
	jQuery.each($('.rollover'), function(){
		if($(this).get(0).tagName == 'IMG' || $(this).attr('type') == 'image'){
			var src = $(this).attr('src');
			var pos = src.lastIndexOf('.');
			var overImg = src.substring(0,src.lastIndexOf('.')) + jqueryhelper.rolloverSuffix + src.substring(src.lastIndexOf('.'),src.length);
			preloadImage(overImg);
		}
		else{
			var src = $(this).css('background-image');
			var pos = src.lastIndexOf('.');
			var overImg = src.substring(0,src.lastIndexOf('.')) + jqueryhelper.rolloverSuffix + src.substring(src.lastIndexOf('.'),src.length);
			preloadImage(overImg.substring(5,overImg.length-2));
		}
	});
}

function initRolloverGroup(){
	$('.rolloverGroup > .rollover').unbind("mouseenter").unbind("mouseleave");
	$('.rolloverGroup').hover(function(){
		var items = $(this).children("[class*='rollover']");
		jQuery.each(items, function(){ toggleRolloverImage($(this)); });
	},function(){
		var items = $(this).children("[class*='rollover']");
		jQuery.each(items, function(){ toggleRolloverImage($(this)); });
	});
}

function toggleRolloverImage(btn){
	if(btn.get(0).tagName == 'IMG' || btn.attr('type') == 'image'){
		var src = btn.attr('src');
		if( src.indexOf(jqueryhelper.rolloverSuffix) == -1 ){
			btn.attr('src', src.substring(0,src.lastIndexOf('.')) + jqueryhelper.rolloverSuffix + src.substring(src.lastIndexOf('.'),src.length));
		} else {
			btn.attr('src', btn.attr('src').replace(jqueryhelper.rolloverSuffix, ''));
		}
	}
	else{
		var src = btn.css('background-image');
		if( src.indexOf(jqueryhelper.rolloverSuffix) == -1 ){
			btn.css('background-image',src.substring(0,src.lastIndexOf('.')) + jqueryhelper.rolloverSuffix + src.substring(src.lastIndexOf('.'),src.length));
		} else {
			btn.css('background-image', btn.css('background-image').replace(jqueryhelper.rolloverSuffix, ''));
		}
	}
}

function initCurrent(){
	for(var i in jqueryhelper.current){
		var id = jqueryhelper.current[i];
		$(id).removeClass('rollover');
		if($(id).get(0).tagName == 'IMG'){
			var src = $(id).attr('src');
			var pos = src.lastIndexOf('.');
			$(id).attr('src', src.substring(0,src.lastIndexOf('.')) + jqueryhelper.currentSuffix + src.substring(src.lastIndexOf('.'),src.length));
			$(id).addClass('current');
		}/*else {
			var src = $(id).css('background-image');
			var pos = src.lastIndexOf('.');
			$(id).css('background-image',src.substring(0,src.lastIndexOf('.')) + jqueryhelper.currentSuffix + src.substring(src.lastIndexOf('.'),src.length));
			$(id).addClass('current');
		}*/
	}
}

function initGoto(){
	$("a[href^='#'], area[href^='#']").bind('click', function(event){
		if(event){ event.preventDefault(); }else if(window.event){ window.event.returnValue = false; }
		var targetId = $(this).attr('href');
		var pos = $(targetId).offset();
		var ty = Math.min(pos.top, ($(document).height() - $(window).height()));
		$('html,body').animate({ scrollTop: ty }, 500, 'swing');
	})
}

function initFirstChild(){
	var tmp = $("*[class*='setFirstChild']");
	if (tmp.length == 0) { return; };
	jQuery.each(tmp, function(){
		$(this).children(':first-child').addClass('firstChild');
	});
}

function initLastChild(){
	var tmp = $("*[class*='setLastChild']");
	if (tmp.length == 0) { return; };
	jQuery.each(tmp, function(){
		$(this).children(':last-child').addClass('lastChild');
	});
}

function initOdd(){
	$("*[class*='setOdd']").children(':odd').addClass('odd');
}

function initEven(){
	$("*[class*='setEven']").children(':even').addClass('even');
}

var groupArray = {};
function initAdjustHeight()
{
	var	tmp = $("[class*='adjustHeight']");
	if (tmp.length == 0) { return; };
	jQuery.each(tmp, function() {
		var classes = $(this).attr("class").split(" ");
		var cont = $(this);
		jQuery.each(classes, function() {
			if (this.substr(0, 12) == 'adjustHeight') {
				var	no = this.substr(13,this.length-13);
				if(!groupArray[String(no)])
					groupArray[String(no)] = new Array();
				groupArray[String(no)].push(cont);
			};
		});
	});
	adjustHeight();
}

function adjustHeight(){
	jQuery.each(groupArray, function() {
		var highestHeight;
		jQuery.each($(this), function() {
			if(!highestHeight || $(this).height() > highestHeight)
				highestHeight = $(this).height();
		});
		jQuery.each($(this), function() {
			$(this).height(highestHeight);
		});
	});
}

function initAdjustChildHeight()
{
	var tmp = $('.adjustChildHeight');
	if (tmp.length == 0) { return; };
	jQuery.each(tmp, function() {
		var highestHeight;
		var childArray = new Array();
		jQuery.each($(this).children(), function() {
			if(!highestHeight || $(this).height() > highestHeight)
				highestHeight = $(this).height();
			childArray.push($(this));
		});
		jQuery.each(childArray, function() {
			$(this).height(highestHeight);
		});
	});
}

function preloadImage(imgs){
	if(typeof imgs == 'array'){
		jQuery.each(imgs, function(){
			jQuery("<img>").attr("src", this);
		});
	}
	else if(typeof imgs == 'string'){
		jQuery("<img>").attr("src", imgs);
	};
}

var ttc;
function initToolTipLite()
{
	var tmp = $("*[class*='tooltip['],.tooltip");
	if (tmp.length == 0) { return; };
	
	var tt = $('body').append("<div id='toolTipContainer'></div>");
	ttc = $('#toolTipContainer')
    var cssObj = {
		position: "absolute",
		border: "0px solid #d47ba3",
        backgroundColor: "#d47ba3",
        fontSize: "10px",
        color: "#FFF",
		padding: "0px",
		opacity: 0
    }
	ttc.css(cssObj);
	ttc.hide();
	
	jQuery.each(tmp, function() {
		var txt = $(this).attr('title');
		if(txt){
			$(this).removeAttr('title');
			var args = $(this).attr('class').match(/tooltip\[?([^\]]+)\]?/);
			var arg = (args) ? args[1].split(',') : [];
			var intime = (arg[0]) ? arg[0] : 300;
			var outtime = (arg[1]) ? arg[1] : 0;
			var posX = (arg[2]) ? arg[2] : 20;
			var posY = (arg[3]) ? arg[3] : 5;
			$(this).bind("mouseover", {txt:txt, intime:intime, outtime:outtime, posX:posX, posY:posY}, showToolTip);
			$(this).bind("mouseout", {txt:txt, intime:intime, outtime:outtime, posX:posX, posY:posY}, hideToolTip);
		}
	});
}

function showToolTip(event)
{
	ttc.empty();
	ttc.append(event.data.txt);
	ttc.stop();
	if(event.data.intime != 0){
		ttc.show();
		ttc.fadeTo(event.data.intime, 1);
	}
	else{
		ttc.css('opacity', 1);
		ttc.show();
	}
	
	$(this).bind("mousemove", event.data, moveToolTip);
}

function moveToolTip(event)
{
	ttc.css('top',event.pageY + event.data.posX);
	ttc.css('left',event.pageX + event.data.posY);
}

function hideToolTip(event)
{
	$(this).unbind("mousemove", moveToolTip);
	ttc.stop();
	if(event.data.outtime == 0){
		ttc.css('opacity', 0);
		ttc.hide();
	}
	else{
		ttc.fadeTo(event.data.outtime, 0, function(){ttc.hide();});
	}
}
