var iens6=document.all||document.getElementById;

var mX =0;
var mY =0;

function price_format(values,tail)
{
	values=""+values+"";
	var len=values.length;
	var mod=len % 3;
	if(mod==0) mod =3;
	var divided= len/3;
	divided=parseInt(divided);
	var priceFormat=values.substr(0,mod)+".";
	var pointer=0;
	for(var pointer=0;pointer<divided; pointer++)
	{
		priceFormat=priceFormat+""+values.substr((mod+(pointer*3)),3)+".";
	}
	while(priceFormat.substr(priceFormat.length-1,1)==".")
	{
		priceFormat=priceFormat.substr(0,priceFormat.length-1);
	}
	while(priceFormat.substr(0,1)==".")
	{
		priceFormat=priceFormat.substr(1,priceFormat.length-1);
	}
	if(tail==1)	priceFormat=priceFormat+",00";
	return priceFormat;
}
function trim(s)
{
	s=""+s+"";
	var l=0; var r=s.length -1;
	while(l < s.length && s[l] == ' ')
	{	l++; }
	while(r > l && s[r] == ' ')
	{	r-=1;	}
	return s.substring(l, r+1);
}

function getMousePos(e) {
	if(e && e.pageX != null) {
		mX = e.pageX;
		mY = e.pageY;
	}
	else if(event && event.clientX != null) {
		mX = event.clientX + getScrX();
		mY = event.clientY + getScrY();
	}
	
	if (mX < 0){mX = 0};
	if (mY < 0){mY = 0};
}

position = function(element)
{
	var el = el_id(element);
	var y= 0;
	var x= 0;
	var w=el.offsetWidth;
	var h=el.offsetHeight;
	
	if(el.offsetParent)
	{
		do {
			x += el.offsetLeft;
			y += el.offsetTop;
			} while (el = el.offsetParent);
	}
	return { top:y, left:x, width:w, height:h };
}

function reset_catalog_picture(area, picture)
{
	$("#"+area).html(picture);
}

function change_image(area,source,def_width,def_height,img_width,img_height)
{
	//alert(source);
	var m_left = 0; var m_top = 0;
	if(img_width<def_width) m_left = (def_width - img_width)/2;
	if(img_height<def_height) m_top = (def_height - img_height)/2;
	var image_content = "<img src='"+source+"' border='0' style='margin-top:"+m_top+"px; margin-left:"+m_left+"px; width:"+img_width+"px; height:"+img_height+"px;' />";
	el_id(area).innerHTML = image_content;
	//alert('hehehehe');
}

function _show_loading_cart(what)
{
	el_id('loading').style.visibility = what;
}

var cart_state = 0;
var cartbox = {
	init : function()
	{
		el_id('cart_list').style.height="0px";
		cart_state = 0;
		//t_cart_list.style.visibility='hidden';
	},
	get_height : function()
	{
		var objBody = document.getElementsByTagName("body").item(0);
		var t_cart_list = document.createElement("div");
		objBody.appendChild(t_cart_list);
		t_cart_list.setAttribute("id","t_cart_list");
		t_cart_list.style.position='absolute';
		t_cart_list.style.border='1px solid #ff0000';
		t_cart_list.style.top="20px";
		t_cart_list.style.left="680px";
		t_cart_list.style.width=el_id('cart_list').offsetWidth+"px";
		t_cart_list.innerHTML = el_id('cart_list').innerHTML;
		t_cart_list.style.height='';
		var _newHeight = el_id('t_cart_list').offsetHeight;
		objBody.removeChild(t_cart_list);
		return _newHeight;
	},
	slide : function(what)
	{
		var _startHeight = cartbox.get_height();
		switch(what)
		{
			case "toggle"  :
							 if(cart_state==0)
							 {
								 cartbox.slide('slidedown');
							 }else{
								 cartbox.slide('slideup');
							 }
							 break;
			case "slidedown" : 
			                 $("div.cart_slide").animate({height: _startHeight});
							 change_image("cart_expand_image",SERVER_PATH+"/images/upward_arrow.gif",19,10,19,10);
							 cart_state = 1;
							 break;
			case "slideup" : 
			                 $("div.cart_slide").animate({height: 0});
							 change_image("cart_expand_image",SERVER_PATH+"/images/downward_arrow.gif",19,10,19,10);
							 cart_state = 0;
							 break;				 
		}
	},
	cart_parsing_xml:function(XML)
	{
		XML.toString();
		try //Internet Explorer
		{
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async="false";
			xmlDoc.loadXML(XML);
		}
		catch(e)
		{
			try //Firefox, Mozilla, Opera, etc.
			{
				parser=new DOMParser();
				xmlDoc=parser.parseFromString(XML,"text/xml");
			}
			catch(e)
			{
				alert(e.message);
				return;
			}
		}
		var general_cart = xmlDoc.getElementsByTagName('general_cart');
		var cart_total_product = general_cart[0].getElementsByTagName('total_product')[0].childNodes[0].nodeValue;
		var cart_total_price = general_cart[0].getElementsByTagName('total_price')[0].childNodes[0].nodeValue;
		
		el_id('cart_total_product').innerHTML = cart_total_product + " item(s)";
		el_id('cart_total_price').innerHTML = "<span class='Rp'>Rp.</span> <span class='Price'>"+price_format(cart_total_price)+"</span>";
		
		var new_cart=parsing_product_list(xmlDoc);
		
		el_id('cart_list').innerHTML = new_cart;
		
		parsing_cart_inform(xmlDoc);
		
		//init_jquery_tooltip();
		
	},
	remove_from_cart:function(cart_id)
	{
		var req = AJAXXMLHttp.createRequest();
		var xyz=new Array();
		req.open("post",CUR_PATH+"/cart?rem_cart="+cart_id,true);
		xyz.push(encodeNameAndValue('null_data','data'));
		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		req.onreadystatechange=function()
		{
			if(req.readyState==4)
			{
				if(req.status==200||req.status==304)
				{
					cartbox.cart_parsing_xml(req.responseText);
					setTimeout("cartbox.slide('slidedown')",500);
					init_jquery_tooltip();
				}
			}
		}
		req.send(xyz.join("&"));
	}
}

function postRequest(form,url,target)
{
	var xArray=new Array();
	for(var pointer=0; pointer<form.length; pointer++)
	{
		if(form.elements[pointer].type=='checkbox'||form.elements[pointer].type=='radio')
		{
			if(form.elements[pointer].checked)
			{
				xArray.push(encodeNameAndValue(form.elements[pointer].name,form.elements[pointer].value));
			}
		}else
		{
			xArray.push(encodeNameAndValue(form.elements[pointer].name,form.elements[pointer].value));
		}
		  
	}
	var req=AJAXXMLHttp.createRequest();
	req.open("post",url,true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.onreadystatechange=function()
	{
		if(req.readyState==4)
		{
			if(req.status==200||req.status==304)
			{
				el_id(target).innerHTML = req.responseText;
			}else
			{
				jAlert("An error occured : " + req.statusText,'Alert');
			}
		}
	};
	req.send(xArray.join("&"));
	return false;
}