var goodsGrpMap = {
	current:[],
	lang:{},
	storage:0,
	c:function(obj){
		if(obj){
			goodsGrpMap.setImg(obj);
			var e =  document.getElementsByTagName('input');
			goodsGrpMap.current[obj.getAttribute('depth')] = obj.value;

			for(var i=0;i<e.length;i++){
				if(e[i].getAttribute('depth') && e[i].type=='radio'){
					if(goodsGrpMap.d(e[i].getAttribute('depth'),e[i].value)){
						e[i].disabled=false;
						e[i].className='enabled';
					}else{
						e[i].className='disabled';
						e[i].disabled=true;
					}
				}
			}

			var itemStr='propmap';
			for(var j=0;j<goodsGrpMap.current.length;j++){
				itemStr+='['+goodsGrpMap.current[j]+']';
			}
			var grpInfo = eval(itemStr);
			if(grpInfo){
				goodsGrpMap.price.base = grpInfo.p;
				goodsGrpMap.price.market = grpInfo.m;
				goodsGrpMap.setNextStep(grpInfo.s>0);
				document.getElementById('FORM_GOODS_GRP').value = grpInfo.g;
				goodsGrpMap.price.rePrice();
			}else{
				document.getElementById('nextBtn').style.display='none';
				document.getElementById('favBtn').style.display='none';
				document.getElementById('nogoods').style.display='';
			}
		}
	},
	setImg:function(obj){
		var imgsrc = obj.getAttribute('img');
		if(obj.getAttribute('adjunct') && obj.type=='checkbox' && !obj.checked){
			var imgsrc = obj.getAttribute('img');
			while(obj.tagName!='TR'){
				obj = obj.parentNode;
			}
			var current = obj.getElementsByTagName('INPUT');
			for(var i=0;i<current.length;i++){
				if((current[i].type=='checkbox'
					&& current[i].getAttribute('adjunct')
					&& current[i].checked) || (current[i].type=='hidden' && current[i].getAttribute('img'))){
					var imgsrc = current[i].getAttribute('img');
				}
			}
		}else{
			if(obj.parentNode.tagName == 'SELECT' && obj.parentNode.getAttribute('adjunct')){
				obj.parentNode.nextSibling.childNodes[2].name = 'adjnum['+obj.value+']';
			}
			while(obj.tagName!='TR'){
				obj = obj.parentNode;
			}
		}

		var imgs = obj.getElementsByTagName('img');
		if(imgsrc){
			imgs[0].src = imgsrc;
			imgs[0].style.visibility= 'visible';
		}else{
			imgs[0].style.visibility= 'hidden';
		}
	},
	action:{
		buy:function(){
			document.getElementById('FORM_NEXT_STEP').value='addshopcart.do';
			document.getElementById('FORM_TPL_GOODSINFO').submit();
		},
		nobuy:function(){
			document.getElementById('FORM_NEXT_STEP').value='goodsnotify.dwt';
			document.getElementById('FORM_TPL_GOODSINFO').submit();
		},
		fav:function(){
			document.getElementById('FORM_NEXT_STEP').value='addmembergoods.do';
			document.getElementById('FORM_TPL_GOODSINFO').submit();
		},
		sendfrd:function(addinfo){
			document.getElementById('FORM_NEXT_STEP').value='sendtofriend.dwt';
			document.getElementById('FORM_TPL_GOODSINFO').submit();
		}
	},
	setNextStep:function(d){
		document.getElementById('nextBtn').style.display='';
		document.getElementById('favBtn').style.display='';
		document.getElementById('nogoods').style.display='none';

		if(d){
			document.getElementById('nextBtn').onclick=goodsGrpMap.action.buy;
//			document.getElementById('nextBtn').innerHTML = goodsGrpMap.lang.buy;
			document.getElementById('nextBtn').src = goodsGrpMap.imgsrc+'buy.gif';
		}else{
			document.getElementById('nextBtn').onclick=goodsGrpMap.action.nobuy;
//			document.getElementById('nextBtn').innerHTML = goodsGrpMap.lang.nobuy;
			document.getElementById('nextBtn').src = goodsGrpMap.imgsrc+'nobuy.gif';
		}
	},
	setPrice:function(){
		goodsGrpMap.price.base + goodsGrpMap.price.adjunct;
	},
	d:function(depth,value){
		var itemStr='propmap';
		for(var j=0;j<goodsGrpMap.current.length;j++){
			itemStr+='['+(j==depth?value:goodsGrpMap.current[j])+']';
		}
		try{
			var info = eval(itemStr);
			return typeof(info)=='object';
		}catch(e){ return false }
	},
	setCurrent:function(){
		if (goodsGrpMap.current.length < 1){
			goodsGrpMap.setNextStep(goodsGrpMap.storage);
			return;
		}
		var currentProp=[];
		for(var i=0;i<goodsGrpMap.current.length;i++){
			currentProp[goodsGrpMap.current[i]] = 1;
		}
		
		var e =  document.getElementsByTagName('input');
		for(var i=0;i<e.length;i++){
			if(e[i].getAttribute('depth')){
				if(currentProp[e[i].value]){
					goodsGrpMap.setImg(e[i]);
					e[i].checked = true;
					var objSelected = e[i];
				}
			}else if(e[i].getAttribute('adjunct') == 'true'){
				goodsGrpMap.setImg(e[i]);
			}
		}

		var e =  document.getElementsByTagName('select');
		for(var i=0;i<e.length;i++){
			if(e[i].getAttribute('depth')){
				for(var j=0,k=0;j<e[i].childNodes.length;j++){
					if(currentProp[e[i].childNodes[j].value]){
						e[i].selectedIndex = k;
						var objSelected = e[i].childNodes[k];
					}
					if(e[i].childNodes[j].tagName == 'OPTION')k++;
				}
			}else if( e[i].getAttribute('adjunct')){
				goodsGrpMap.setImg(e[i].childNodes[e[i].selectedIndex]);
			}
		}
		goodsGrpMap.c(objSelected);
	},
	price:{/*{{{*/
		base:0,
		adjunct:0,
		market:0,
		save:0,
		oPrice:function(obj, mark){
			if (mark == 'add')
				var strnum = Number(obj.previousSibling.value);
			else
				var strnum = Number(obj.nextSibling.value);
			if (obj.parentNode.previousSibling){
				var objSelected = obj.parentNode.previousSibling;
				if (objSelected.tagName == "SELECT"){
					var objStr = objSelected.childNodes[objSelected.selectedIndex];
					var ss = objStr.innerHTML.split("[");
					objStr.innerHTML = ss[0]+"[ "+ss[1].substr(0, 3)+(objStr.getAttribute('price') * strnum).toFixed(2)+" ]";
				}
			}else{
				var objStr = obj.parentNode.nextSibling.nextSibling.firstChild.nextSibling.nextSibling;
				objStr.innerHTML = (goodsGrpMap.price.oInput(obj).getAttribute('price') * strnum).toFixed(2);				
			}
		},
		oInput:function(obj){
			if (obj.parentNode.previousSibling){
				var objSelected = obj.parentNode.previousSibling;
				if (objSelected.tagName == "SELECT"){
					return objSelected.childNodes[objSelected.selectedIndex];
				}
			}else{
				return obj.parentNode.nextSibling;
			}
		},
		add:function(obj){
			if(Number(obj.previousSibling.value) < Number(goodsGrpMap.price.oInput(obj).getAttribute('maxnum'))){
				obj.previousSibling.value = Number(obj.previousSibling.value)+1;
				goodsGrpMap.price.oPrice(obj, 'add');
				goodsGrpMap.price.rePrice();
			}
			obj.previousSibling.focus();
		},
		subtraction:function(obj){
			if(Number(obj.nextSibling.value) > ((Number(goodsGrpMap.price.oInput(obj).getAttribute('minnum')) > 0)?Number(goodsGrpMap.price.oInput(obj).getAttribute('minnum')):0)){
				obj.nextSibling.value = Number(obj.nextSibling.value)-1;
				goodsGrpMap.price.oPrice(obj, 'sub');
				goodsGrpMap.price.rePrice();
			}
			obj.nextSibling.focus();
		},
		change:function(obj){
			if(Number(obj.value) > Number(goodsGrpMap.price.oInput(obj).getAttribute('maxnum'))){
				obj.value=goodsGrpMap.price.oInput(obj).getAttribute('maxnum');
			}else if(Number(obj.value) < Number(goodsGrpMap.price.oInput(obj).getAttribute('minnum'))){
				obj.value=goodsGrpMap.price.oInput(obj).getAttribute('minnum');
			}
			goodsGrpMap.price.rePrice();
		},
		rePrice:function(){
			var e = document.getElementsByTagName('input');
			var p_adj =0;
			for(var i=0;i<e.length;i++){
				if(e[i].getAttribute('adjunct')){
					if(e[i].checked || e[i].type=='hidden'){
						if (e[i].previousSibling.tagName == 'INPUT'){
							var nInput = e[i].previousSibling;
						}else{
							var nInput = e[i].previousSibling.getElementsByTagName('INPUT')[0];
						}
						p_adj+=Number(e[i].getAttribute('price'))*Number(nInput.value);
					}
				}
			}
			var e =  document.getElementsByTagName('select');
			for(var i=0;i<e.length;i++){
				if(e[i].getAttribute('adjunct')){
					if(Number(e[i].nextSibling.childNodes[2].value) < Number(e[i].childNodes[e[i].selectedIndex].getAttribute('minnum')))
						e[i].nextSibling.childNodes[2].value = Number(e[i].childNodes[e[i].selectedIndex].getAttribute('minnum'));
					if(Number(e[i].nextSibling.childNodes[2].value) > Number(e[i].childNodes[e[i].selectedIndex].getAttribute('maxnum')))
						e[i].nextSibling.childNodes[2].value = Number(e[i].childNodes[e[i].selectedIndex].getAttribute('maxnum'));
					p_adj+=Number(e[i].childNodes[e[i].selectedIndex].getAttribute('price'))*Number(e[i].nextSibling.childNodes[2].value);
				}
			}

			document.getElementById('newprice').innerHTML=(goodsGrpMap.price.base + p_adj).toFixed(2);
			document.getElementById('FORM_GOODS_PRICE').value=(goodsGrpMap.price.base + p_adj).toFixed(2);
			if(document.getElementById('mktprice'))
			document.getElementById('mktprice').innerHTML=(goodsGrpMap.price.base + p_adj + goodsGrpMap.price.save).toFixed(2);
//			document.getElementById('save_price').innerHTML=(goodsGrpMap.price.market - goodsGrpMap.price.base)>0?(goodsGrpMap.price.market - goodsGrpMap.price.base).toFixed(2):0;
		}
	}/*}}}*/
};


