//---------------------------------------------------[ INITIALIZE ]
addEvent(window, 'DOMContentLoaded', init);

function init()
{
	var userAgent = navigator.userAgent;
	var msIE7 = userAgent.indexOf('MSIE 7.0') != -1;
	var msIE6 = userAgent.indexOf('MSIE 6.0') != -1;
	var msIE55 = userAgent.indexOf('MSIE 5.5') != -1;
	
	if (msIE6 || msIE55)
	{
		fixDropDown('navi_links0');
		fixDropDown('navi_links1');
		fixLinkHoverFor('page_frame', 'link_block');
	}
	setDisplayOf('price_options', 'none', false);
	setDisplayOf('box_link', 'block', true);
	
}

//------------------------------------------------[ fix: LINK HOVER ]
function fixLinkHoverFor(parent, linkClass)
{
	var elementList = $(parent).descendants();
	if (elementList)
	{
		elementList.each( function(element)
		{
			element.onmouseover = function() { Element.addClassName(this, 'over'); }
			element.onmouseout = function() { Element.removeClassName(this, 'over'); }
		});
	}

	return true;
}


//----------------------------------------[ fix: navigation DROP DOWN for ie6 ]
function fixDropDown( elementID, regex )
{
	var elementList = $(elementID);
	
	if (elementList)
	{
		var listObjects = elementList.descendants();
		listObjects.each( function (element)
		{
			var regex = /dropdown\d?/
			if (regex.test(element.lastChild.className))
			{
				element.onmouseover = function() { Element.addClassName(this, 'over'); }
				element.onmouseout = function() { Element.removeClassName(this, 'over'); }			
			}
		});
	}
}

//------------------------------------------------[ display: THIS (ELEMENT, MODE=On/Off) ]
var currentElement;
function displayThis(element, mode)
{	
	if (currentElement) currentElement.hide();
	var element = $(element);
	(mode) ? element.show() : element.hide();
	currentElement = element;
}

//------------------------------------------------[ set: DISPLAY style OF (element, value) ]
function setDisplayOf(element, value, useClass)
{
	var obj = new Array();
	if (useClass)
	{
		obj = getClassElements(element)
	} else if ($(element)) {
	
		obj[0] = $(element);
	}

	if (obj.length)
	{
		obj.each( function (index)
		{
			index.setStyle({ display: value });
		});
	}

	return false;
}

//------------------------------------------------[ get: CLASS name ELEMENTS ]
function getClassElements(className)
{
	var pageElements = document.getElementsByClassName(className).collect();

	return pageElements;
}


//------------------------------------------------[ reveal: THIS (ELEMENT, MODE=On/Off) ]
var effectIsOn;
function revealThis(element, mode)
{
	if (effectIsOn == element) return;
	var element = $(element);
	if (mode)
	{
		if (element.style.display == 'none')
		{
			var reveal = new Effect.BlindDown(element, { duration: 0.4, afterFinish: onEffectCompleted });
			effectIsOn = reveal.element.id;
		}
	} else {
		if (element.style.display == 'block')
		{
			var reveal = new Effect.BlindUp(element, { duration: 0.4, afterFinish: onEffectCompleted });
			effectIsOn = reveal.element.id;
		}
	}
}

//------------------------------------------------[ event on: EFFECT COMPLETED ]
function onEffectCompleted()
{
	var frameDims = $('page_frame').getDimensions();
	var targetDims = $(effectIsOn).getDimensions();
	if (window.innerHeight < (frameDims.height - targetDims.height))
	{
		$(effectIsOn).scrollTo();
	}
	effectIsOn = null;
	return false;
}

//-------------------------[ SETUP: train connection from passed index value. ]
function mystery( indexValue, subjectText )
{
	var mystery ="109,97,105,108,116,111,58,"; // setup code.
	var train = "?subject=" + subjectText; // setup subject as string.
	var coming = "&body=";
	
	mystery += return2sender(indexValue * 1); // get required code.
	var decode = mystery.split(","); // setup array from encoded.
	mystery = ""; // setup source variable as string.
	for (var e = 0; e < decode.length; e++)
	{
		mystery += String.fromCharCode(decode[e]); // decode as string.
	}
	document.location = mystery + train + coming; // Write call.
}

