var Cart = {
	product : null,
	prsummary : null,
	aux : null,
	pwformAttr : "",
	currentJson : null,
	handler : "../project/product/handler.php",
	_anim : function(ob,txt){
		if(!Cart.aux){
			Cart.aux = document.createElement("div");
			Cart.aux.style.position = "absolute";
			Cart.aux.style.left = "0px";
			Cart.aux.style.top = "0px";
			Cart.aux.style.zIndex = "1000";
			Cart.aux.style.display = "none";
			Cart.aux.style.border = "1px solid #cccccc";
			Cart.aux.style.background = "#ffffff";
			document.body.appendChild(Cart.aux);
		}
		var htmcont =  ob.innerHTML;
		var isblock = true;
		if(ob.innerHTML.indexOf("<")===-1 && ob.innerHTML.indexOf("<")== -1){
			isblock = false;
			htmcont = '<div><img border="0" src="../img/add_icon.png" /> Agregando Producto</div>';
		}		
		Cart.aux.style.display = "block";
		Cart.aux.innerHTML = htmcont;
		$(Cart.aux).css("opacity", "0.5");
		var destino = document.getElementById("shop_button");
		var w = destino.offsetWidth;
		var h = destino.offsetHeight;
		
		var orxpos = Fujar.Utils.getLeftPos(ob); 
		var oypos = Fujar.Utils.getTopPos(ob);
		var xpos = Fujar.Utils.getLeftPos(destino);
		var ypos = Fujar.Utils.getTopPos(destino);
		//alert(xpos + "," + ypos);
		Cart.aux.style.left = orxpos + "px";
		Cart.aux.style.top = oypos + "px";
		 $(Cart.aux).animate({ left: xpos,top:ypos },500,function(){
			Cart.aux.style.display = "none";
		 });
	},
	showNoPrMsg : function(entidad_id){
		var htm = "";
		htm = "<div style='text-align:right;padding-right:80px;'>"+
		'<a class="closeButton" href="#" onclick="$.unblockUI();return false;">Cerrar</a>'
		+"</div>";
		htm += "<div style='margin:40px 0px 30px 0px;font-size:14px;'> No hay existencias para este producto, nos pondremos en contacto con usted!</div>";
		$.blockUI({ 
			message: htm,
			css :{width:"550px",height:"200px",left:"40%",top:"20%"}
		});
		var request = $.ajax({
			type : "GET",
			url : Cart.handler,
			cache: false,
			data : {
				pg : "addnoexistencia",
				entidad_id : entidad_id
			},
			success : function(data){
				
			}
		});

	},
	_add : function(id,fname,ohtml){
		if(!mp_uid > 0){
			ShowLoginForm();
			return;
		}
		try{
			if(ohtml){
				////
				if(ohtml.innerHTML){
					Cart._anim(ohtml,"Adding..");
				}
				/////
			}
		}catch(ex){}
		
		var request = $.ajax({
			type : "GET",
			url : Cart.handler,
			cache: false,
			dataType : "json",
			data : {
				pg : "single_existenciapr",
				entidad_id : id
			},
			success : function(data){
				var nexistencia = Number(data.cantidad);
				if(nexistencia <= 0){
					Cart.showNoPrMsg(id);
				}else{
					Cart._addstepOne(id,fname,ohtml);
				}
			}
		});
		
		
	},
	_addstepOne : function(id){
		
		Cart.add2Cart({
			id:id,
			append:"yes",
			cache: false,
			cb : function(){
				Cart._get();
			}
		});
	},
	_get : function(cb){
		if(Cart.product === null){
			Cart.product = n2a.product.instance({
				renderTo : "scart"
			});
		}
		
		if( n2a.summary){
			if(Cart.prsummary === null){
				Cart.prsummary = n2a.summary.instance({
					renderTo : "scart_float"
				});
			}
		}
		
		Cart.getCart({
			cb : function(json){
				try{
					document.getElementById("info_solicitud_reg").style.display = "block";
				}catch(ex){}
				Cart.product.render(json);
				if( n2a.summary){
					Cart.prsummary.render(json);
				}
			}
		});
	},
	
	removeItem : function(entidad_id){
		var spanmsg = document.getElementById("msgfor_"+entidad_id);
		spanmsg.innerHTML = "Actualizando...";
		var request = $.ajax({
			type : "POST",
			url : Cart.handler,
			cache: false,
			data : {
				pg : "unshop",
				entidad_id : entidad_id
			},
			success : function(data){
				Cart._get();
			}
		});
	},
	
	getCart : function(params){
		var request = $.ajax({
			type : "GET",
			url : Cart.handler,
			cache: false,
			data : {
				pg : "pcart"
			},
			dataType : "json",
			success : function(data){
				params.cb(data);
			}
		});
	},
	_updateNumField : function(entidad_id,num){
		var spanmsg = document.getElementById("msgfor_"+entidad_id);
		spanmsg.innerHTML = "Actualizando...";
		Cart.add2Cart({
			id:entidad_id,
			append:"no",
			cache: false,
			num : num,
			cb : function(){
				Cart._get();
			}
		});

	},	
	requestInfo : function(comentario,cb){
		try{
			document.getElementById("info_solicitud_reg").style.display = "none";
			var destino = document.getElementById("shop_button");
			var xpos = Fujar.Utils.getLeftPos(destino);
			var ypos = Fujar.Utils.getTopPos(destino);
			window.scrollTo(xpos, ypos);
		}catch(ex){}
		$("#scart").html("Generando Pedido..");
		var request = $.ajax({
			type : "GET",
			url : Cart.handler,
			data : {
				pg : "savecompra",
				comentario : comentario
			},
			success : function(data){
				var json = eval( '(' + data + ')' );
				Cart.currentJson = json;
				Cart.printOkDialog(json);
				if(cb)cb(json);
			}
		});
	},
	
	printOkDialog : function(json){
		try{
			document.getElementById("info_solicitud_reg").style.display = "none";
		}catch(ex){}
		var rnd = encodeURIComponent(Math.random());
		var htm = "", htmForm = "";
		htmForm = Cart.pwform(json);
		htm += "<table width='100%'>" + 
					"<tr>" +
						"<td width='100%' valign='top'> " + 
						"<h2>Compra "+json.compraID+"</h2> " + 
						"<br/><br/><span style='font-size:14px'>La compra se ha generado con el num. "+json.compraID+", Seleccione porfavor sus datos de facturaci&oacute;n o <a href='#' onclick='nva_compra();return false;'>Agregue datos de facturacion</a>, Al finalizar presione 'Continuar compra'</span>" + 
						"<br /><br/>" + htmForm + " " +
						"<br/><br/><div class='btnContainer'><a onclick='SubmitPayForm();return false;' href='#' class='btnGeneraPedido'> Continuar Compra</a></div> " +
						" <br/><br/><span style='color:red'><i><strong>Siguiente Paso:</strong> Datos de Pago</i></span>" +
						"</tr>" +
					"</table>";
		$("#scart").html(htm);
	},
	tckout : function(cb){
		var request = $.ajax({
			type : "GET",
			url : Cart.handler,
			dataType : "json",
			cache: false,
			data : {
				pg : "jsoncompra"
			},
			success : function(json){
				Cart.currentJson = json;
				if(cb)cb(json,Cart.pwform(json));
			}
		});
	},
	pwcombo_year : function(){
		var year = new Date().getFullYear()-2000;
		var cyear = 0;
		var cmbValue = "";
		var htm = "";
		for(var i=0;i<10;i++){
			cyear = year + i;
			cmbValue = Number(cyear) < 10 ? "0" + cyear : cyear;
			htm += "<option value='"+cmbValue+"'>"+cmbValue+"</option>";
		}
		return htm;
	},
	pwcombo_mes : function(){
		var htm = "", cvalue = "";
		for(var i=1;i<=12;i++){
			cvalue = i < 10 ? "0" + i : i + "";
			htm += "<option value='"+cvalue+"'>"+cvalue+"</option>";
		}
		return htm;
	},
	pwerror_msg : function(id,txt,isvalid){
		if(!isvalid){
			txt = "<span class='error'>" + txt + "</span>";
		}else{
			txt = "<span class='msgok'>" + txt + "</span>";
		}
		$('#'+id).html(txt);
	},
	getFacturacionById : function(id_factura){
		var ocurrent,ofactu;
		for(var i=0;i<Cart.currentJson.mfactu_data.length;i++){
			ocurrent = Cart.currentJson.mfactu_data[i];
			if(id_factura === Number(ocurrent.id_factura)){
				ofactu = ocurrent;
				break;
			}
		}
		return ofactu;
	},
	pw_rfc_change : function(c){
		var index = Number(c.options[c.selectedIndex].value);
		var ofactu = Cart.getFacturacionById(index);
		if(ofactu === null)return;
		var htm = "";
		htm += "<p><b>Nombre:</b><br/>" + ofactu.fac_nombre + "</p>" +
			   "<p><b>RFC:</b><br/>" + ofactu.fac_rfc + "</p>" + 
			   "<p><b>Tel&eacute;fono:</b><br/>" + ofactu.fac_rfc + "</p>" + 
			   "<p><b>Direcci&oacute;n:</b><br/>" + ofactu.fac_calle_num + ", "+ ofactu.fac_ciudad +", Colonia "+ ofactu.fac_colonia +
			   ", cp "+ ofactu.fac_cp +", "+ofactu.fac_provicia+"</p>";
		$("#rfc_data_info").html(htm);
	},
	UpdatePrecioLocation : function(cm){
		var f = document.form_pworks;
		var cmb = f.tenv_localidad_type;
		var ncargo = cmb.options[cmb.selectedIndex].getAttribute("cargo");
		var suma = Cart._gsuma();
		var valor = suma  + Number(ncargo);
		f.Total.value = valor;
		$("#tenv_tpagar").html(n2a.format.format_currency(valor) + " (incluyendo '$" + n2a.format.format_currency(ncargo) + "' de gastos de envio. <span style='font-weight:normal'>Precio anterior: $"+n2a.format.format_currency(suma)+"</span>");
	},
	denvio : null,
	_gsuma : function(){
		var suma = 0;
		for(var i=0;i<Cart.currentJson.data.length; i++){
			suma += ( Cart.currentJson.data[i].pfinal * Cart.currentJson.data[i].num);
		}
		return suma;
	},
	getFacturacionCombo : function(tdef){
		var json = Cart.currentJson;
		var cmbox = "<label class='dfacturacion_cmb'>Datos de Facturaci&oacute;n <a href='#' onclick='NuevoDatoFacturacionPop();'>[Agregar]</a></label>" + 
					" <select name='pw_rfc_factu' style='width:300px;' onchange='Cart.pw_rfc_change(this)'>";
		cmbox += "<option value=''>.: Seleccionar datos de facturacion :.</option>";
		var factu;
		var selected = "";
		for(var i=0;i<json.mfactu_data.length;i++){
			factu = json.mfactu_data[i];
			selected = "";
			if(tdef == "_last" && (i === json.mfactu_data.length-1))selected = "selected";
			cmbox += "<option "+ selected +" value='"+factu.id_factura+"'>"+factu.fac_nombre +"("+factu.fac_rfc+")</option>";
		}
		cmbox += "</select>";
		return cmbox;
	},
	pwform : function(json){
		var htm = "";
		var suma = 0;
		for(var i=0;i<json.data.length; i++){
			suma += ( json.data[i].pfinal * json.data[i].num);
		}
		var cmbox = Cart.getFacturacionCombo();
		var cmbMes = "<select name='pw_mes'>" + Cart.pwcombo_mes() + "</select> / <select name='pw_year'>" + Cart.pwcombo_year() + "</select>";
		if(Cart.denvio === null){
			var capaenvio = document.getElementById("tpl_forma_envio"); 
			capaenvio.parentNode.removeChild(capaenvio);
			Cart.denvio = capaenvio.innerHTML;
		}
		
		// Ayuda y Terminos de servicios
		htm +="<div id='auxDialog' style='background: none repeat scroll 0% 0% white; width: 600px; position: absolute; z-index: 1020; color: rgb(148, 148, 148); border: 2px solid rgb(191, 191, 191); -moz-border-radius: 4px 4px 4px 4px; padding: 10px; margin: 0pt 5%; height: 60%; display: none;'>Hola </div>";
				
		htm += "<form class='customForm' name='form_pworks' "+ Cart.pwformAttr +" id='form_pworks' method='post' action='https://eps.banorte.com/recibo'>";
				
		// Navegacion de Datos
		htm += "<div id='navCompra'>"+
				"<a id='datPago' href='#divDatos'>Datos de pago</a>"+
				"<a id='datFactura' href='#divDatos2'>Datos de facturaci&oacute;n</a>"+ 
				"<a id='datEnvio' href='#divDatos3'>Datos de env&iacute;o</a></div>";				
				
		
		// Datos de Pago
		htm += "<div id='divDatos' class='hiddencontent'>"+
				"<p><a href='/imgUser/ayudaPago.jpg' target='_blank'>"+
				"<label class='tit_tarjeta'>Ayuda sobre datos de la tarjeta que debe que ingresar para realizar el pago</label></a></p>"+
				"<p><label class='ntarjeta'>N&uacute;mero de tarjeta:</label>" + 
				"<input type='text' class='txt_input txt_input_single' name='Number' value='' /><span class='ninfo' id='pw_number_info'></span></p>";
		htm += "<p><label class='fvencimiento'>Fecha de Vencimiento (MM/AA):</label>"+ cmbMes +"</p>";
		htm += "<p><label class='ccseguridad'>C&oacute;digo de Seguridad:</label>" + 
			"<input class='txt_input txt_input_single' maxlength='4' name='Cvv2Val' size='5' class='text' value=''>" + 
			"<span class='ninfo' id='pw_Cvv2Val_info'></span></p>";
		htm += "<p><label class='tit_tarjeta'>Nombre de titular de tarjeta:</label>" + 
			"<input name='pw_titularname' class='txt_input txt_input_single' type='text' />" + 
			"<span class='ninfo' id='pw_titularname_info'></span>";	
		htm += "</div>";		
		// Datos de Facturacion	
		htm += "<div id='divDatos2' class='hiddencontent'>";
		htm += "<div id='divDatos2_rfc_cmbox'>" +cmbox + "</div><br /><br /><div id='rfc_data_info'></div><br /><br /></div>";
		// Datos de Envio
		htm += "<div id='divDatos3' class='hiddencontent'>";
		htm += "<br/>" + Cart.denvio;
		htm += '<input type="hidden" name="Name" size="50" class="text" value="7145619">';
		htm += '<input type="hidden" name="Password" size="50" class="text" value="ahk619p">';
		htm += '<input type="hidden" name="ClientId" id="ClientId" size="50" class="text" value="27555">';
		htm += '<input type="hidden" name="Mode" id="Mode" size="50" class="text" value="P">';
		htm += '<input type="hidden" name="TransType" value="Auth" />';
		htm += '<input type="hidden" name="OrderId" value="" />';
		htm += '<input type="hidden" name="Cvv2Indicator" id="Cvv2Indicator" size="50" value="1" class="text">';
		htm += '<input type="hidden" name="Total" size="50" value="'+suma+'" class="text">';
		htm += '<input type="hidden" name="Expires" size="50" value="" class="text">';
		htm += '<input type="hidden" name="ResponsePath" value="http://ahkimpech.com.mx/frontend/resp.php" />'+
		'<input type="hidden" name="BillToFirstName" value="'+mp_unombre+'" />' +
		'<input type="hidden" name="BillToLastName" value="'+mp_upaterno+'" />' +
		'<input type="hidden" name="Email" value="'+mp_email+'" />' + 
		'<input type="hidden" name="BillToCompany" value="" />' + 
		'<input type="hidden" name="FedTaxId" value="" />' +
		"</div>";
		htm += "</form>";
	
		return htm;
	},
	add2Cart : function(params){
		var cb = params.cb || function(){};
		var request = $.ajax({
			type : "GET",
			url : Cart.handler,
			data : {
				pg : "addcart",
				id : params.id || 0,
				num : params.num || 1,
				append :params.append || "no"
			},
			success : function(data){
				cb(data);
			}
		});
	},
	UpdateShop : function(json){
		var btn = document.getElementById("btnRealizarPago");
		if(Number(json.Status) === 1 && json.AuthCode != "" && json.AuthCode !== null && Number(json.CcErrCode)===1){
			$("#checkout_dialog_while").html("Generando Compra...");
		}else{
			var str = "";
			str += json.Text + "\n " +
				"code:" + json.CcErrCode + ", Valida:" + json.CcReturnMsg;
			alert("Error con los datos de pago, Detalles:\n" + str);
			$(btn).show();
			$("#checkout_dialog_while").hide();
			return;
		}
		var f = document.form_pworks;
		var campo, type, nodeName, cvalue, cnombre, nparams = {};
		nparams["AuthCode"] = (json.AuthCode);
		nparams["cTimeIn"] = (json.TimeIn);
		nparams["cTimeOut"] = (json.TimeOut);
		nparams["cOperType"] = (json.OperType);
		nparams["cCardType"] = (json.CardType);
		nparams["cText"] = (json.Text);
		nparams["cTotal"] = (json.Total);
		
		nparams["pg"] = "confirmpayment";
		for(var i =0; i < f.elements.length; i++){
			campo = f.elements[i];
			nodeName = campo.nodeName.toLowerCase();
			type = campo.getAttribute("type");
			cnombre = campo.name;
			if(nodeName == "input" || nodeName == "textarea"){
				cvalue = campo.value;
			}
			else if(nodeName == "select"){
				cvalue = campo.options[campo.selectedIndex].value;
			}
			nparams[cnombre] = cvalue;
		}
		
		var local_type = f.tenv_localidad_type;
		var ncargo = local_type.options[local_type.selectedIndex].getAttribute("cargo");
		nparams["tenv_cargovalue"] = ncargo;
		nparams["tenv_orderid"] = f.OrderId.value;
		var request = $.ajax({
			type : "GET",
			url : Cart.handler,
			data : nparams,
			dataType : "json",
			success : function(data){
				nparams["compra_id"] = data.compraID;
				Cart.generateComprobante(nparams);
				////////////////
				htm = "";
				htm += "<div style='margin:40px 0px 30px 0px;font-size:12px;'> Compra Generada con  el num: "+ data.compraID +" " + 
				"<div id='pw_spmsg_genpago'><img src='../img/indica.gif' /> Generando Comprobante de Pago, espere unos segundos porfavor...</div>" +
				"</div>";
				$.blockUI({ 
					message: htm,
					css :{width:"550px",height:"200px",left:"40%",top:"20%"}
				});
				///////////////////////
				
				
			}
		});
		
	},
	generateComprobante : function(nparams){
		var request = $.ajax({
			type : "POST",
			url : "../pw/pdf_ex/generator/gen.php",
			data : nparams,
			success : function(data){
				$("#pw_spmsg_genpago").html("<a href='../pw/pdf_ex/generator/comprobante_"+nparams.compra_id+".pdf'>[DESCARGAR COMPROBANTE]</a>");
				//document.location.href = "index.php";
			}
		});
	}
}
Fujar.__mc = function(ev) {
		if (ev.pageX || ev.pageY) {
			return { x: ev.pageX, y: ev.pageY };
		}
		return {
			x: ev.clientX + document.body.scrollLeft - document.body.clientLeft,
			y: ev.clientY + document.body.scrollTop - document.body.clientTop
		};
	};
function refreshRFCCombo(){
	$("#divDatos2_rfc_cmbox").html("Cargando...");
	var f = document.form_pworks;
	Cart.tckout(function(json){
		var cmbox = Cart.getFacturacionCombo('_last');
		$("#divDatos2_rfc_cmbox").html(cmbox);
		Cart.pw_rfc_change(f.pw_rfc_factu);
	});
}
function NuevoDatoFacturacionPop(){
	window.open('../account_admin/dfacturacion.php?pg=nvafac','','height=400,width=500,location=1')  
}
Fujar.Utils.addEvent(document, "click", function(e) {
	if(!mp_uid > 0){
		return false;
	}
	var source = document.getElementById && !document.all ? e.target : event.srcElement;
	var _event = e || window.event;
	var hide = true;
	if (source) {
		var node = source;
		var founded = false;
		var ntries = 30;
		var ctries = 0;
		if(node === null){
			return true;
		}
		while (node.nodeName.toUpperCase() != "HTML") {
			if (node.nodeName.toUpperCase() == "A") {
				founded = true;
				break;
			}
			node = node.parentNode;
			if (ctries > ntries) {
				break;
			}
			ctries++;
		}
		if (founded) {
			var href = node.getAttribute("href");
			href = (href != null) ? href.toLowerCase().replace(/\s/g,"") : "";
			if (href.indexOf("javascript:cart._add") > -1) {
				Cart._anim(source);
				//var mpos = Fujar.__mc(_event);
				//alert(mpos.x + "," + mpos.y);
			}
		}
	}
});
