/*
 * @author hezhijian 
 * date 2009-6-25 
 * descript: 购物袋信息列表功能脚本
 */

// 注册 Swato引擎
var engine;

function shoppingCarListInit(){
	// 加载 js 日志
	//getJSLogger();
	//debug("debug日志");
	
	//检查购物袋是否为空
	var shoppingcarCheckMessage = checkShoppingcarIsEmpty();
	if(!shoppingcarCheckMessage.GOOD_COU && !shoppingcarCheckMessage.GOOD_COU > 0){
		//判断是否为空，是则跳转
		window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do?createQueryTime='+createQueryTime();
		return;
	}
}
function testNumber(){
	if(event.keyCode>=48 && event.keyCode<=57){
		
	}else{
		event.keyCode=0;
		event.returnValue=false;
		jAlert('请输入数字！');
	}
}
/**-
 * -----------------购买数量的修改时触发事件，修改小计和总价----------------
 * @scope public
 */	
function editQuantity(quantityObj,colsId){
    
    var goodsId = document.getElementById('GOODS_ID_'+colsId).value;//商品id
	if(quantityObj){
		var q = quantityObj.value;
		if(!__isInteger(q)){
			jAlert('请输入大于0整数！');
			quantityObj.value = '1';
			//重新定到这个输入框
			quantityObj.select();
			quantityObj.focus();
			return;
		}
		//检测该数量超过商品库存
		var rowMap = new Array();
		var goods={
			"goodsId":goodsId
			,"quantity":quantityObj.value
			};
		rowMap.push(goods);
		var storeQuantity = engine.call("shoppingCarAction.getGoodsQuantity",rowMap);
		
		if(storeQuantity == "0"){
			jAlert("尊敬的客户，你输入的商品数量不足，请与客服联系,谢谢");
		}

	}
    var allSumPrice = 0;//购物袋商品总价
    var curColsId = document.getElementById('COLS_ID_'+colsId).value;
		var tempcolsId = "";
		
		for (var i=0;i < $("listSize").value;i++){
			var selePrice = 0;
			var servicePrice = 0;
			var quantity = 0;
			var realQuantity = 0;
			var sumSigPrice = 0; //单个商品价格
			var allColPrice = 0; //购物袋组合价格
			var sumPrice = 0; //此行的总价
			
			//selePrice = document.getElementById('ORG_PRICE_'+i).value;
			selePrice = document.getElementById('SELL_PRICE_'+i).value;//销售价
			servicePrice = document.getElementById('SERVICE_PRICE_'+i).value;//服务费
			if(servicePrice.blank()){
				servicePrice = 0;
			}
			var quantityCell = document.getElementById('QUANTITY_'+i).value;//数量

		    var realQuantityCell = document.getElementById('GOODS_COLS_NUM_'+i).value;//真正的数量
			//组合商品销售编码
			var pcol_id = document.getElementById('COLS_ID_'+i).value;
		   	
			if(curColsId && curColsId.length>0){
				if(curColsId == pcol_id){
					document.getElementById('QUANTITY_'+i).value = quantityObj.value;
				}
			}
			var p_quant = document.getElementById('QUANTITY_'+i).value;

		    if(p_quant){
		    	quantity = p_quant;
		    }
		    var p_realQ = realQuantityCell;
		    if(p_realQ){
		    	 realQuantity = ~~p_realQ;
		    }
		    
			if(!pcol_id.blank() && pcol_id != tempcolsId){//是组合 
				tempcolsId = pcol_id;
				var p_colprice = document.getElementById('COLPRICE_'+i).value;//组合价
			    allColPrice = quantity*(Number(p_colprice)+Number(servicePrice));
			    sumPrice =  allColPrice;
			    allSumPrice += allColPrice;
			}else if(pcol_id.blank()){ 
			    sumSigPrice = (Number(selePrice) + Number(servicePrice)) * quantity;  
			    sumPrice = sumSigPrice;
			    allSumPrice += sumSigPrice;
			}
			
			var sumCell = document.getElementById('SUMPRICE_'+i);//小计
			if(i == colsId)
			{
				sumCell.innerHTML = roundFun(sumPrice,2);
			}
		}

	//修改总价的显示
	$("allSumPrice").innerHTML = allSumPrice.toFixed(2);//注意这里只保留两位小数
	var colpriceObj = $("colsPrice");
	if(allSumPrice!=allColPrice && colpriceObj){
		colpriceObj.innerText = allColPrice.toFixed(2);
	}
	//更新购物车的商品数量	
	var goodsQuantity = document.getElementById('QUANTITY_'+colsId).value;//数量
	var specsCombId = document.getElementById('SPECS_COMB_ID_'+colsId).value
	var data = {"GOODS_ID":goodsId,"QUANTITY":goodsQuantity,"SPECS_COMB_ID":specsCombId};
	engine.call("shoppingCarAction.updateGoodsQuantity",[data]);	
}
//对小数保留位数处理
function   roundFun(numberRound,roundDigit)   {   
  var   digit;   
  digit=1;   
  digit=Math.pow(10,roundDigit)   
  return   (Math.round(numberRound*digit)/digit);   
 }   
function getCellObjValue(cellObj){
	var value=cellObj.getAttribute("cellValue");
	if (!value){
		value=window.isIE?cellObj.innerText:cellObj.textContent;
	}
	return value;
}
/**
 * 整数验证
 */
function __isInteger(value){

	if(value.strip()==''){//非空判断
		return false;
	}
	var intReg = /^(([1-9]\d*)|(0))$/;
	var b = intReg.test(value);
	if (b)
	{
		if (Number(value) < 1)
			return false;
	}
	else
		return false;
			
	return true;
}
/**
 * 测试用的打印对象的所有属性值
 */
function allPrpos ( obj ) { 
    // 用来保存所有的属性名称和值 
    var   props = "" ; 
    // 开始遍历 
    for ( var   p in obj ){   
        // 方法 
        if ( typeof ( obj [ p ]) == " function " ){   
            obj [ p ]() ; 
        } else {   
            // p 为属性名称，obj[p]为对应属性的值 
            props += p + " = " + obj [ p ] + " \t " ; 
        }   
    }   
    // 最后显示所有的属性 
    jAlert ( props ) ; 
};
/**
 * -------------表单查询-------------
 * @scope public
 */	
function doSearch(){
    // 清除掉form标签数据两边的空格
    trimForm();
    query();
}
   
/**
 * 根据Id 删除购物袋物商品信息
 * @scope public
 * @param goodsid 对象主键
 */	
function deleteShoppingCarGoods(goodsid,specscombid,colsid){
    // 确定要删除吗？
	//if(confirm(messageDeteleConfirm)){
	//   var message = engine.call("shoppingCarAction.deleteGoods",[goodsid,specscombid,colsid]);
	   
	   //重新加载列表
	   //doSearch();
	   //window.location.reload();
	 //  window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do?createQueryTime='+createQueryTime();
	   
	   //操作完成提示信息
	   //jAlert(message);
	   
	   //重新计算总价
	   //修改总价的显示
		//$("allSumPrice").innerText = '商品总额：￥'+message;//注意这里只保留两位小数
	   
	   //更新购物袋总数
	   //refreshGoodsNum();
	   
	//}
	jConfirm(messageDeteleConfirm,null,function(r) {
		if(r){
		    var message = engine.call("shoppingCarAction.deleteGoods",[goodsid,specscombid,colsid]);
		   //重新加载列表
		   window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do?createQueryTime='+createQueryTime();
		}
	});
}
/**
 * 清空购物袋物商品信息
 * @scope public
 */	
function clearShoppingCar(){
	if (ECSideUtil.getTotalRows('ec')>0){//判断行数是否为0
		try {
		    // 确定要删除吗？
			//if(confirm('你确定要清空购物袋?')){
			//   var message = engine.call("shoppingCarAction.clearShoppingCar");
			   
			   //重新加载列表
			   //doSearch();
			   //window.location.reload();
			//   window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do?createQueryTime='+createQueryTime();
			   //操作完成提示信息
			   //jAlert(message);
			   
			   	//修改总价的显示
				//$("allSumPrice").innerText = '商品总额：￥0';//注意这里只保留两位小数
			   
			   //更新购物袋总数
		   	   //refreshGoodsNum();
			//}
			jConfirm("你确定要清空购物袋?",null,function(r) {
				if(r){
					 var message = engine.call("shoppingCarAction.clearShoppingCar");			   
				   //重新加载列表
				   window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do?createQueryTime='+createQueryTime();
				}
			});
		} catch(e) {
			
			jAlert(e.description);
		}
	}else{
		jAlert('购物袋为空，请先添加商品！');
	}
}
/**
 * -------结帐-------
 */
function checkOut(){
	//检查购物袋是否为空
	var shoppingcarCheckMessage = checkShoppingcarIsEmpty();
	if(!shoppingcarCheckMessage.GOOD_COU && !shoppingcarCheckMessage.GOOD_COU > 0){
		jAlert('页面已过时！');
		//判断是否为空，是则跳转
		window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do?createQueryTime='+createQueryTime();
		return;
	}
	
	if (ECSideUtil.getTotalRows('ec')>0){//判断行数是否为0
		var rowMap = getTableRowMap('');
		//jAlert(JSON.valueOf(rowMap));
		engine.call("shoppingCarAction.checkOut",[rowMap],checkOutHandler);
	}else{
		jAlert('购物袋为空，请先添加商品！');
	}
}

function fgCheckOut(){
	//检查购物袋是否为空
	var shoppingcarCheckMessage = checkShoppingcarIsEmpty();
	if(!shoppingcarCheckMessage.GOOD_COU && !shoppingcarCheckMessage.GOOD_COU > 0){
		jAlert('页面已过时！');
		//判断是否为空，是则跳转
		window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do?createQueryTime='+createQueryTime();
		return;
	}

	if ($('listSize').value > 0){//判断行数是否为0
		var rowMap = rowMaptoJson();
		$("submit_button").innerHTML = "<span class='btn-r1-1'>请稍等..</span>";
		engine.call("shoppingCarAction.createFgOrder",[rowMap],fgCheckOutHandler);
	}else{
		jAlert('购物袋为空，请先添加商品！');
	}

}

/**
 * 结帐 回调处理对象
 * @scope private
 */	
var fgCheckOutHandler = {
	// 操作成功处理函数，ret 为返回值 
	gotResult:function(ret){
		if(ret.IS_LOGIN == 0){  //判断是否已登陆
			jAlert("请先进行登陆",null,function(r){window.location.href = rootpath+'/checkCustomerLoginState.check.do?returnUrl='+window.location.href+'&createQueryTime='+createQueryTime();});
			//window.location.href = rootpath+'/checkCustomerLoginState.check.do?returnUrl='+window.location.href+'&createQueryTime='+createQueryTime();
		}else if(ret.STOCK_STATE == 0){
			jAlert("尊敬的客服，你输入的商品数量不足，请与客服联系,谢谢");
			$("submit_button").innerHTML = "<a href=\"#\" class=\"btn-r1-1\" onclick=\"if(typeof(checkOut)=='function') {fgCheckOut();}\">立即结算</a>";
		}else{
			window.location.href = rootpath+'/shoppingCarAction.fgPageQueryShoppingInfo.do?orderId='+ret.ORDER_ID+'&createQueryTime='+createQueryTime();
		}
	},
	
	// 操作失败时的处理函数，err
	gotError:function(err){
		if (err) {
			error(err);
		}
	}
};

function rowMaptoJson(){
 	    var rowMap = new Array();
	    for(var i = 0;i < $('listSize').value ;i++){
		    var goods={"GOODS_ID":$('GOODS_ID_'+i).value,"QUANTITY":$('QUANTITY_' + i).value,"SPECS_COMB_ID":$('SPECS_COMB_ID_' + i).value,"COLS_ID":$('COLS_ID_'+i).value};
		    rowMap.push(goods);
	    }
	    return rowMap;
}
/**
 * 结帐 回调处理对象
 * @scope private
 */	
var checkOutHandler = {

	// 操作成功处理函数，ret 为返回值 
	gotResult:function(ret){
		//alertAndClose(ret);
		window.location.href = rootpath+'/shoppingCarAction.pageQueryShoppingInfo.do?createQueryTime='+createQueryTime();
	},
	
	// 操作失败时的处理函数，err
	gotError:function(err){
		if (err) {
			error(err);
		}
	}
};


/**
 * 得到表格信息以数组形式返回
 */
function getTableRowMap(formid){
	var rowMap = new Array();//返回数组
	var ecsideObj=ECSideUtil.getGridObj();
	if (ecsideObj && ecsideObj.ECListBody){
		var rs=ecsideObj.ECListBody.rows;
		for (var i=0;i<rs.length;i++){
			var rowObj = rs[i];//得到所有得行对象
			var pars=getRowCellsMap(rowObj,formid);
			rowMap.push(pars);
		}
	}
	return rowMap;
};
function getRowCellsMap(rowObj,formid){

	var cellMap={};
	var keyvalue=rowObj.getAttribute("recordKey");
	if (keyvalue){
		cellMap["recordKey"]=keyvalue;
	}
	var cells=rowObj.cells;
	for (var i=0;i<cells.length;i++ ){
		var cellObj=cells[i];
		var name=ECSideUtil.getColumnName(cellObj,formid);
		//jAlert(name);
		if (!name){
			continue;
		}
		var value = '';
		if(name == 'QUANTITY'){
			value=cellObj.getElementsByTagName('input')[0].value;
		}
		//bug------------------------
		if(i==10 || i==11){//GOODS_ID
			name = "GOODS_ID"; 
		}
		//-----------------------
		if(name == 'GOODS_ID'){
			value=window.isIE?cellObj.innerText:cellObj.textContent;
		}
		
		 
		if(name == 'SPECS_COMB_ID'){
			name = 'GOODS_ID';
			value=window.isIE?cellObj.innerText:cellObj.textContent;
			value = value.strip();
			//jAlert(value);
		}
//		//读取表格中的值，
//		//-1 先查一下attribute是否有
//		var value=cellObj.getAttribute("cellValue");
//		//jAlert(name+' 1 '+value);
//		//-2 没有则再读取innerText以得到表格的值
//		if (!value){
//			value=window.isIE?cellObj.innerText:cellObj.textContent;
//			//jAlert(name+' 2 '+value);
//		}
//		
//		//-3 在为input输入框时要这样得到表格的值
//		if (!value || value.trim()==''){
//			if(!cellObj.getElementsByTagName('input')){
//				value=cellObj.getElementsByTagName('input')[0].value;
//			}
//			
//			//jAlert(name+' 3 '+value);
//		}		
		if(value == undefined){
			value = '';
		}
		//jAlert(name+' = '+value);
		if (cellMap[name]==undefined){
			cellMap[name]=value;
		}else if(ECSideUtil.isCollection(cellMap[name]) ){
			cellMap[name].push(value);
		}else{
			var temp_v=cellMap[name];
			cellMap[name]=[temp_v];
			cellMap[name].push(value);
		}

	}
	//jAlert(JSON.valueOf(cellMap));
	return cellMap;
};


/**
 * -------添加商品到购物袋-------
 */
function addGoodsToShoppingCar(goodsList,returnUrl){
		var hasQuantity = engine.call("shoppingCarAction.hasQuantity", [goodsList]);
		if(!hasQuantity){
			jAlert('该商品缺货');
			return;
		}
		engine.call("shoppingCarAction.addGoodsToShoppingCar",[goodsList,returnUrl],addGoodsToShoppingCarHandler);

}
/**
 * -------测试 添加商品到购物袋-------
 */
function testAddGoodsToShoppingCar(){
	var goodsList = new Array();
	var goods1={GOODS_ID:"C7E0DF1C4A67446BB1E5C9CB45183720",QUANTITY:"20"};
	var goods2={"GOODS_ID":"A35E1CE2721A4799901E063CDAB8F18D","QUANTITY":"20","SPECS_COMB_ID":"22"};
	goodsList.push(goods1);
	goodsList.push(goods2);
	addGoodsToShoppingCar(goodsList,'http://localhost:8080/ecp.website/goodsListAction.queryGoodsList.do?queryType=virtualType&virtual_category_id=1034');
}
/**
 * 添加商品到购物袋 回调处理对象
 * @scope private
 */	
var addGoodsToShoppingCarHandler = {

	// 操作成功处理函数，ret 为返回值 
	gotResult:function(ret){
		if(ret.ISLOGIN == 0){
			//提示用户先登录
			jAlert(ret.MESSAGE);
			//jAlert(URLEncoder.encode(ret.RETURNURL));
			window.location.href = rootpath+'/checkCustomerLoginState.check.do?returnUrl='+URLEncoder.encode(ret.RETURNURL)+'&createQueryTime='+createQueryTime();
			
		}else{
			//提示操作效果
			//jAlert(ret.MESSAGE);
//--------------------div 提示
			divTisk(ret.GOOD_COU,ret.SUM_PRICE);
			
//--------------------ModalDialog 提示			
//			var url = rootpath + "/shoppingCarAction.shoppingcarTisk.do";
//			var rtn = window.showModalDialog(url,'','dialogHeight:150px;dialogWidth:350px; scroll:no; status:no;');
//			if(rtn == true){
//				if(window.parent){
//					window.parent.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do';
//					window.parent.refreshGoodsNum();
//				}else{
//					window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do';
//					refreshGoodsNum();
//				}
//			}else{
//				//更新购物袋总数
//				if(window.parent) {
//					window.parent.refreshGoodsNum();
//				} else {
//					refreshGoodsNum();
//				}
//			}
			
//--------------------confirm 提示			
//			if(confirm('添加成功，是否去结帐？')){
//				window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do';
//				refreshGoodsNum();
//			}else{
//				//更新购物袋总数
//				if(window.parent) {
//					window.parent.refreshGoodsNum();
//				} else {
//					refreshGoodsNum();
//				}
//			}
		}
	},
	
	// 操作失败时的处理函数，err
	gotError:function(err){
		if (err) {
			error(err);
		}
	}
};
/**
 * 根据 url 弹出窗口
 * @scope public
 * @param url wab 连接地址
 */	
function doOperator(url){
	
	window.open(url,'_blank','');
	//弹出操作窗口
	//var result= showModalDialog(url,"","");
	//window.open(url,"","");

}

/**
 * 查看商品信息
 */	
function viewGoods(goodsId){
	var url = rootpath+'/goodsDetailAction.getGoodDetailInfo.do?goodsId='+goodsId+'&createQueryTime='+createQueryTime();
	window.open(url,'_blank','');
}
/**
 * 返回首页
 */	
function goToShoppingPage(){
	if (ECSideUtil.getTotalRows('ec')>0){//判断行数是否为0
		var rowMap = getTableRowMap('');
		//jAlert(JSON.valueOf(rowMap));
		engine.call("shoppingCarAction.checkOut",[rowMap]);
	}
	var url = rootpath+'/index.uic?pageId=45&createQueryTime='+createQueryTime();
	window.location.href = url;
}

/**
 * 返回礼品卡首页
 */	
function goToShoppingPage_Gift(){
	if (ECSideUtil.getTotalRows('ec')>0){//判断行数是否为0
		var rowMap = getTableRowMap('');
		//jAlert(JSON.valueOf(rowMap));
		engine.call("shoppingCarAction.checkOut",[rowMap]);
	}
	var url = rootpath+'/index.uic?pageId=781&createQueryTime='+createQueryTime();
	window.location.href = url;
}

function divTisk(goodCou,sumPrice){
	var msgw,msgh,bordercolor;
	msgw=300;//提示窗口的宽度
	msgh=124;//提示窗口的高度
	titleheight=25 //提示窗口标题高度
	bordercolor="#C32720";//提示窗口的边框颜色

	var sWidth,sHeight;
	sWidth=document.body.offsetWidth-25;
	sHeight=document.body.scrollHeight;
	var bgObj=document.createElement("div");
	bgObj.setAttribute('id','bgDiv');
	bgObj.style.position="absolute";
	bgObj.style.top="0";
	bgObj.style.background="#777";
	bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=0,finishOpacity=0)";
	bgObj.style.opacity="0.6";
	bgObj.style.left="0";
	bgObj.style.width=sWidth + "px";
	bgObj.style.height=sHeight + "px";
	bgObj.style.zIndex = "10000";
	document.body.appendChild(bgObj);

	var msgObj=document.createElement("div")
	msgObj.setAttribute("id","msgDiv");
	msgObj.setAttribute("align","center");
	msgObj.style.background="white";
	msgObj.style.border="0px solid " + bordercolor;
	msgObj.style.position = "absolute";
	msgObj.style.left = "50%";
	//高度的设置
	//msgObj.style.top = document.body.scrollTop+document.body.clientHeight/2;
	msgObj.style.top = screen.availHeight - 450;
	msgObj.style.font="12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
	msgObj.style.marginLeft = "-125px" ;
	msgObj.style.marginTop = -75+document.documentElement.scrollTop+"px";
	msgObj.style.width = msgw + "px";
	msgObj.style.height =msgh + "px";
	msgObj.style.textAlign = "center";
	msgObj.style.lineHeight ="25px";
	msgObj.style.zIndex = "10001";

	document.body.appendChild(msgObj);

	var txt=document.createElement("p");
	//txt.style.margin="1em 0"
	txt.setAttribute("id","msgTxt");
	txt.innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" class="tisk_tab">'+
				        '<tr>'+
				            '<td class="tisk_tle">'+
				                '<img src="'+rootpath+'/modules/home/index/themes/default/drop-yes.gif" />'+
				                  '商品已添加到购物袋！'+
				            '</td>'+
				            '<td class="tisk_close">'+
				                '<span onclick="continueShopping();" style="cursor:pointer;">×</span>'+
				            '</td>'+
				        '</tr>'+
				        '<tr>'+
				            '<td class="tisk_text" colspan="2">'+
				            	'<div>'+
				                	'<span>购物袋共有'+goodCou+'种商品 合计'+sumPrice+'。</span>'+
				                '</div>'+
				            '</td>'+
				        '</tr>'+
				        '<tr>'+
				            '<td class="tisk_btn" colspan="2">'+
				            '<img src="'+rootpath+'/themes/com/ico_jz.gif" style="cursor: hand" onclick="gotoCheckOut();"/>'+
				            '<img src="'+rootpath+'/themes/com/ico_gw.gif" style="cursor: hand" onclick="continueShopping();"/>'+
				            '</td>'+
				        '</tr>'+
				    '</table>';
	document.getElementById("msgDiv").appendChild(txt);
};

//现在结帐去
function gotoCheckOut(){
	if(window.parent){
		window.parent.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do?createQueryTime='+createQueryTime();
		window.parent.refreshGoodsNum();
	}else{
		window.location.href = rootpath+'/shoppingCarAction.pageFgQueryShoppingCarGoods.do?createQueryTime='+createQueryTime();
		refreshGoodsNum();
	}
}
//继续购物
function continueShopping(){
	document.body.removeChild($('bgDiv'));
	document.body.removeChild($('msgDiv'));
	//更新购物袋总数
	if(window.parent) {
		window.parent.refreshGoodsNum();
	} else {
		refreshGoodsNum();
	}
}


function nextQuantity(index){
	$('QUANTITY_'+index).value = parseInt($('QUANTITY_'+index).value) + 1; 
	editQuantity($('QUANTITY_'+index),index);
}

function lastQuantity(index){
	var result = parseInt($('QUANTITY_'+index).value) - 1;
	if(result <= 0){
		jAlert("商品数量不能为0");
		return false;
	}
	$('QUANTITY_'+index).value = result; 
	editQuantity($('QUANTITY_'+index),index);
}

