navigator.kenrel = (function()
{
	var ua = navigator.userAgent.toLowerCase();
	return ua.indexOf('msie')!=-1 ? 'ie' : 
		ua.indexOf('khtml')!=-1 ? 'khtml' : 
		ua.indexOf('gecko')!=-1 ? 'gecko' : 
		ua.indexOf('opera')!=-1 ? 'opera' : 'unknown';
})();
document.DE = document.compatMode=='CSS1Compat' ? document.documentElement : document.body;
window.getWidth = function()
{
	return document.DE.clientWidth;
};
window.getHeight = function()
{
	return document.DE.clientHeight;
};
document.getWidth = function()
{
	return Math.max( document.DE.scrollWidth, document.DE.clientWidth );
};
document.getHeight = function()
{
	return Math.max( document.DE.scrollHeight, document.DE.clientHeight );
};
document.getElementPosition = function(ele)
{
	var pos = {
		'left' : ele.offsetLeft,
		'top' : ele.offsetTop,
		'x' : 0,
		'y' : 0
	};
	var _parent = ele;
	while(_parent = _parent.offsetParent)
	{
		pos.left += _parent.offsetLeft;
		pos.top += _parent.offsetTop;
	}
	pos.x = pos.left - document.DE.scrollLeft;
	pos.y = pos.top - document.DE.scrollTop;
	return pos;
};
document.getElementLayerParent = function(ele)
{
	while(ele && ele!=document.body && ele.currentStyle && ele.currentStyle.position=='absolute')
		ele = ele.parentNode;
	return ele;
};
var ExtEvent = function(e)
{
	e = e || window.event;
	if(navigator.kenrel=='ie')
	{
		e.target = e.srcElement;
		e.pageX = e.clientX + document.DE.scrollLeft;
		e.pageY = e.clientY + document.DE.scrollTop;
		e.relatedTarget = e.type=='mouseover' ? e.fromElement : e.type=='mouseout' ? e.toElement : '';
		e.stopPropagation = function(){ this.cancelBubble = true; };
		if(e.target)
		{
			var layerParent = document.getElementLayerParent(e.target);
			var pos = document.getElementPosition(layerParent);
			e.layerX = e.pageX - pos.left;
			e.layerY = e.pageY - pos.top;
		}
	}
	else if(navigator.kenrel=='opera' && e.target)
	{
		var layerParent = document.getElementLayerParent(e.target);
		var pos = document.getElementPosition(layerParent);
		e.layerX = e.pageX - pos.left;
		e.layerY = e.pageY - pos.top;
	}
	else if(navigator.kenrel=='gecko' && e.target)
	{
		var pos = document.getElementPosition(e.target);
		e.offsetX = e.pageX - pos.left;
		e.offsetY = e.pageY - pos.top;
	}
	return e;
};

function get_element_position(ele)
{
	var obj = {left:ele.offsetLeft,top:ele.offsetTop,x:0,y:0};
	var parent = ele;
	while(parent = parent.offsetParent)
	{
		obj.left += parent.offsetLeft;
		obj.top += parent.offsetTop;
	}
	obj.x = obj.left - (document.documentElement.scrollLeft==0 ? document.body.scrollLeft : document.documentElement.scrollLeft);
	obj.y = obj.top - (document.documentElement.scrollTop==0 ? document.body.scrollTop : document.documentElement.scrollTop);
	return obj;
}

function bind_event(object,eventType,eventHandle)
{
	var ie = document.all ? true : false;
	if(ie) object.attachEvent("on"+eventType,eventHandle);
	else object.addEventListener(eventType,eventHandle,false);
}

function O(id){return document.getElementById(id);}

document.domain = '10000life.com';

bind_event(window,'load',function(){
	create_layers();
	var ajax = new rAjax('GET','http://10000life.com/index_ajax.php',load_nav_data,'TEXT',null);
	ajax.exec();
	bind_event(O('nav_shopping_cart_btn'),'click',nav_shopping_cart_btn_toggle);
	bind_event(O('nav_recent_view'),'click',nav_recent_view_btn_toggle);
});
function nav_shopping_cart_btn_toggle()
{
	if(O('nav_shopping_cart_btn').src.indexOf('nav_menu_show.gif')!=-1)
	{
		O('nav_shopping_cart_btn').src = 'wp-content/themes/10000life/images/nav_menu_hide.gif';
		fade_in('nav_shopping_cart_menu');
	}
	else
	{
		O('nav_shopping_cart_btn').src = 'wp-content/themes/10000life/images/nav_menu_show.gif';
		fade_out('nav_shopping_cart_menu');
	}
}
function nav_recent_view_btn_toggle()
{
	if(O('nav_recent_view_btn').src.indexOf('nav_menu_show.gif')!=-1)
	{
		O('nav_recent_view_btn').src = 'wp-content/themes/10000life/images/nav_menu_hide.gif';
		fade_in('nav_recent_view_menu');
	}
	else
	{
		O('nav_recent_view_btn').src = 'wp-content/themes/10000life/images/nav_menu_show.gif';
		fade_out('nav_recent_view_menu');
	}
}
function create_layers()
{
	var css = 'display:none;border:1px solid #666666;position:absolute;width:200px;background-color:#FFFFFF;';
	var shopping_cart_offset = get_element_position(O('nav_shopping_cart'));
	var recent_view_offset = get_element_position(O('nav_recent_view'));
	
	var shopping_cart = document.createElement('DIV');
	shopping_cart.style.cssText = css;
	shopping_cart.id = 'nav_shopping_cart_menu';
	shopping_cart.style.left = shopping_cart_offset.left + O('nav_shopping_cart').offsetWidth - 200 + 'px';
	shopping_cart.style.top = shopping_cart_offset.top + O('nav_shopping_cart').offsetHeight + 'px';
	document.body.appendChild(shopping_cart);
	
	var recent_view = document.createElement('DIV');
	recent_view.style.cssText = css;
	recent_view.id = 'nav_recent_view_menu';
	recent_view.style.left = recent_view_offset.left + O('nav_recent_view').offsetWidth - 200 + 'px';
	recent_view.style.top = recent_view_offset.top + O('nav_recent_view').offsetHeight + 'px';
	document.body.appendChild(recent_view);
}
function json_decode(str_json) {
    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
    var j;
    var text = str_json;

    cx.lastIndex = 0;
    if (cx.test(text)) {
        text = text.replace(cx, function (a) {
            return '\\u' +
            ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
        });
    }

    if (/^[\],:{}\s]*$/.
        test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
            replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
            replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {

        j = eval('(' + text + ')');

        return j;
    }

    throw new SyntaxError('json_decode');
}
function load_nav_data(result)
{
	try
	{
		window._cache_nav_data = json_decode(result);
	}
	catch(e)
	{
		0;
	}

	if(window._cache_nav_data['shopping_cart'])
		document.getElementById('nav_shopping_cart_menu').innerHTML = window._cache_nav_data['shopping_cart'];
	if(window._cache_nav_data['recent_view'])
		document.getElementById('nav_recent_view_menu').innerHTML = window._cache_nav_data['recent_view'];
}
function fade_in(id)
{
	var step_ie = 5;
	var delay = 25;
	var step = step_ie/100;
	var ele = O(id);
	if(navigator.kenrel=='ie')
	{
		if(!ele.filters['alpha'])
		{
			ele.style.cssText += ';filter:alpha(opacity=0);';
			setTimeout('fade_in("' + id + '")',delay);
		}
		else
		{
			var opa = parseInt(ele.filters['alpha'].opacity);
			opa = opa+step_ie>100 ? 100 : opa+step_ie;
			ele.filters['alpha'].opacity = opa;
			if(opa < 100) setTimeout('fade_in("' + id + '")',delay);
		}
	}
	else if(typeof(ele.style.opacity)!='undefined')
	{
		if(ele.style.opacity=='')
		{
			ele.style.opacity = 0;
			setTimeout('fade_in("' + id + '")',delay);
		}
		else
		{
			var opa = parseFloat(ele.style.opacity);
			opa = opa+step>1 ? 1 : opa+step;
			ele.style.opacity = opa;
			if(opa < 1) setTimeout('fade_in("' + id + '")',delay);
		}
	}
	if(ele.style.display=='none') ele.style.display = '';
}
function fade_out(id)
{
	var step_ie = 5;
	var delay = 25;
	var step = step_ie/100;
	var ele = O(id);
	if(navigator.kenrel=='ie')
	{
		if(!ele.filters['alpha'])
		{
			ele.style.cssText += ';fileter:alpha(opacity=100);';
			setTimeout('fade_out("' + id + '")',delay);
		}
		else
		{
			var opa = parseInt(ele.filters['alpha'].opacity);
			opa = opa-step_ie<0 ? 0 : opa-step_ie;
			ele.filters['alpha'].opacity = opa;
			if(opa > 0) setTimeout('fade_out("' + id + '")',delay);
			else ele.style.display = 'none';
		}
	}
	else if(typeof(ele.style.opacity)!='undefined')
	{
		if(ele.style.opacity=='')
		{
			ele.style.opacity = 1;
			setTimeout('fade_out("' + id + '")',delay);
		}
		else
		{
			var opa = parseFloat(ele.style.opacity);
			opa = opa-step<0 ? 0 : opa-step;
			ele.style.opacity = opa;
			if(opa > 0) setTimeout('fade_out("' + id + '")',delay);
			else ele.style.display = 'none';
		}
	}
	else ele.style.display = 'none';
}
