function gE(el) {return document.getElementById(el);}
function gT(parentElement,tag) { return gE(parentElement).getElementsByTagName(tag);}
function hideElement(el) {gE(el).style.display = "none";}
function showElement(el) {gE(el).style.display = "block";}
function getClassNameSeparator(style) {
	var classSeparator = " ";
	if (style.length == 0) {classSeparator = "";}	
	return classSeparator;
}
function elementAddClass(el,style) { el.className = el.className + getClassNameSeparator(el.className) + style; }
function elementRemoveClass(el,style) {
	var currClassNameArray = el.className.split(" ");
	var cleanedClassName = [];
	for(var i=0; i<currClassNameArray.length; i++) {
		if (currClassNameArray[i] != style) {cleanedClassName.push(currClassNameArray[i]);}
	}
	el.className = cleanedClassName.join(" ");
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else { obj["on"+type] = obj["e"+type+fn];}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){ listEvents.push(arguments);},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){ item[0].removeEventListener(item[1], item[2], item[3]); };
				if(item[1].substring(0, 2) != "on"){ item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){ item[0].detachEvent(item[1], item[2]); };
				item[0][item[1]] = null;
			};
		}
	};
}();

function initAddThisContainer() {
	var addThisElement   = gE("add_this_container");
	var addThisMouseOver = function(){return addthis_open(addThisElement, '', '[URL]', '[TITLE]');}
	var addThisMouseOut  = function(){setTimeout('addthis_close()',5000);}
	var addThisOnClick   = function(){return addthis_sendto();}
	addEvent(addThisElement,'mouseover',addThisMouseOver);
	addEvent(addThisElement,'mouseout',addThisMouseOut);
	addEvent(addThisElement,'click',addThisOnClick);
	
	addthis_pub             = 'tid.mteam';
	addthis_logo            = 'http://www.addthis.com/images/yourlogo.png';
	addthis_logo_background = 'EFEFFF';
	addthis_logo_color      = '666699';
	addthis_options         = 'favorites, email, digg, delicious, myspace, facebook, google, live, more';
}


function initSelectBox(parentElement) {
	var selectBoxContainer = gT(parentElement,"input")[0];
	var selectBoxInnerData = gT(parentElement,"ul")[0];
	var valueContainer = gT(parentElement,"span")[0];
	var selectedValues = selectBoxInnerData.getElementsByTagName("a");
	var currentHref = window.location.href;
	var ifCurrencyExist = window.location.href.match(/currency=/);
	var ifExistParams = currentHref.match(/\?/);
	var paramsSeparator = ifExistParams == null ? "?" : "&";

		if (parentElement == "curency-select" && ifCurrencyExist != null) {
			var theSelection = currentHref.split("currency=")[1].split("&")[0];
			for (var i = 0; i < selectedValues.length; i++) {
				var elSelected = selectedValues[i].id;
				var textSelected = selectedValues[i].innerHTML;
				if (theSelection == elSelected){
					valueContainer.innerHTML = textSelected;
				}
			}
		}
		
		addEvent(selectBoxContainer, 'click', function(){
			selectBoxInnerData.style.display = "block"; 
				for (var i = 0; i < selectedValues.length; i++) {
					addEvent(selectedValues[i], 'click', function(){
						valueContainer.innerHTML = this.innerHTML;
						if(parentElement == "curency-select") { 
							
								if (ifCurrencyExist != null) { 
									var currencyParam = currentHref.split("currency=")[1].split("&")[0];
									var currencyValue = "currency="+currencyParam;
									this.href = currentHref.replace(currencyValue,"currency="+this.id);
									
								}
								else { this.href = currentHref+paramsSeparator+"currency="+this.id; }
							
						}				
					});
			}
		});
		addEvent(selectBoxContainer, 'blur', function(){ setTimeout(function(){
			selectBoxInnerData.style.display = "none";
		}, 1000); });
}

function initInfoNavBar(parentElement){
	var firstliElements = gT(parentElement,"li")[0];
	var secondliElements = gT(parentElement,"li")[1];
	var thirdliElements = gT(parentElement,"li")[2];
	addEvent(firstliElements, 'click', function(){ 
		showElement("specs");
		hideElement("warranty");
		hideElement("shipping"); 
		elementAddClass(this,"selected");
		elementRemoveClass(secondliElements,"selected");
		elementRemoveClass(thirdliElements,"selected");
	});
	addEvent(secondliElements, 'click', function(){ 
		hideElement("specs");
		showElement("warranty");
		hideElement("shipping");
		elementAddClass(this,"selected");
		elementRemoveClass(firstliElements,"selected");
		elementRemoveClass(thirdliElements,"selected");
 	});
	addEvent(thirdliElements, 'click', function(){ 
		hideElement("specs"); 
		hideElement("warranty"); 
		showElement("shipping"); 
		elementAddClass(this,"selected");
		elementRemoveClass(firstliElements,"selected");
		elementRemoveClass(secondliElements,"selected");
	});
}
function initInfoNavigation(){
	initInfoNavBar("info-navigation");
}
function initJs(addThisEnabled){
	//console.log(addThisEnabled);
	addEvent(window,'unload',EventCache.flush);		
	if (addThisEnabled) initAddThisContainer();
}