var xVer = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"],
cart = 'js/cart', Wait='wait_layer', lastBanner=1, bannerLimit=1, bannerInterval=false;

function gFP(f){
	var vFro = document.getElementById(f),
	vFre = vFro.elements,
	sPrm = '',
	iVal;
	for(var i = 0; i <= parseInt(vFre.length)-1; i++){
		if(typeof vFre[i].id != 'undefined'){
			iVal =  (vFre[i].id == 'pr') ? encodeURIComponent(vFre[i].value) : escape(vFre[i].value);
			iVal =  (vFre[i].type == 'checkbox' || vFre[i].type == 'radio') ? vFre[i].checked ? vFre[i].value : 'none' : iVal;
			sPrm += (vFre[i].type == 'checkbox' || vFre[i].type == 'radio') ? vFre[i].checked ? vFre[i].type == 'radio' ? vFre[i].name+'='+iVal+'&' : vFre[i].id+'='+iVal+'&' : '' : vFre[i].id+'='+iVal+'&';
		}
	}
	return sPrm.substr(0, parseInt(sPrm.length)-1);
}


function gXHR(){
	var rq = false;
	if(window.XMLHttpRequest){
		rq = new XMLHttpRequest();
	}else{
		if(ActiveXObject){
			for(var i = 0; i < xVer.length; i++){
				try{
					rq = new ActiveXObject(xVer[i]);
				} catch(e){}
			}
		}
	}
	return rq;
}

function RequestGET(fp){
	var ob = gXHR();
	ob.open("GET",fp,true);
	return ob;
}


function RequestPOST(fp){
	var ob = gXHR();
	ob.open("POST",fp,true);
	return ob;
}

function postRequest(ob,pr){
	ob.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	ob.send(pr);
}

function sendRequest(ob){
	ob.send(null);
}

function create(e){
	return document.createElement(e);
}

function isJSON(s){
	var c = s.length;
	return ((s.substr(0,1) == '{') || (s.substr(0,2) == '[{')) && (s.substr(c-1,1) == '}' || (s.substr(c-2,2) == '}]')) ? true : false;
}


function replacement(e,t){
	if($('#'+e).length){
		var v = document.getElementById(e);
		v.onfocus = function(){
			if(v.value.toLowerCase() == t.toLowerCase()){
				v.value = ''
			}
		}
		
		v.onblur = function(){
			if(v.value.toLowerCase() == '' || v.value.length == 0){
				v.value = t;
			}
		}
	}
}

window.onload = function(){
	Cufon.replace('.mmn');
	Cufon.replace('.title');
	Cufon.replace('.title3');
	Cufon.replace('.title4');
	Cufon.replace('.title5');
	Cufon.replace('.title6');
	Cufon.replace('.title7');
	Cufon.replace('.root');
	Cufon.replace('.root2');
	Cufon.replace('.price_list');
}


$(document).ready(function(){
	replacement('q','¿Qué estás buscando?');
	replacement('name','NOMBRE');
	replacement('email','EMAIL');
	replacement('email2','EMAIL');
	replacement('name2','NOMBRE');
});

function showCalc(){
		$('#calc').toggle("fast");
}

function showOptions(el){
	$('#'+el).toggle("fast");
}


function ppyCart(pr, p){
	
	p = 'pr='+encodeURIComponent(pr)+'&'+p;
	var response;
	wait();
	r = RequestPOST(cart);
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			if(r.status == 200){
				response = r.responseText;
			}else{
				alert('Error');
			}
			
			if(!isJSON(response)){
				alert(reponse);
			}else{
				var items = eval("("+response+")");
				if(items.errno == 1){
					alert(items.msg);
					remove(Wait);
					return false;
				}
				var total = 0;
				for(var i = 0; i < items.length; i++){
					total = parseInt(total)+parseInt(items[i].quantity);
				}
				var s = total > 1 ? 'S' : '';
				var info = total > 0 ? total + ' PRODUCTO'+s+' EN EL CARRITO' : 'EL CARRITO ESTÁ VACÍO';
				document.getElementById('addToCart').style.display = 'none'
				document.getElementById('viewCart').style.display = 'block'
				$('#num_items').html(info);
			}
			
			remove(Wait);
			
		}
	}
	postRequest(r,p);
};



function wait(){	
	var loaderShape = create('div');	
	loaderShape.setAttribute('id', Wait);
	loaderShape.className		= 'wait';
	loaderShape.style.height = document.body.scrollHeight+'px';
	document.body.appendChild(loaderShape);
};

function remove(e){
	var d = document.getElementById(e);
	d.parentNode.removeChild(d);
};


function emptyCart(){
	r = RequestPOST(cart);
	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			if(r.status == 200){
				var response = r.responseText;
			}else{
				var response = '{error:"1",msg:"Error"}';
			}
			
			if(!isJSON(response)){
				alert(response);
			}else{
				response = eval("("+response+")");
				$('#num_items').html(response.msg);
				document.getElementById('cart_detail').style.display = 'none';
				document.getElementById('cart_buttons').style.display = 'none';
				document.getElementById('cart_empty').style.display = 'block';
			}
			remove(Wait);
		}
		
	}
	postRequest(r,'pr='+encodeURIComponent(ety));
}


function autoComplete(id){
	r = RequestPOST(cart);
	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			if(r.status == 200){
				var response = r.responseText;
			}else{
				var response = '{error:"1",msg:"Error"}';
			}
			
			if(!isJSON(response)){
				alert(response);
			}else{
				var data = eval("("+response+")");
				$('#names').val(data.buyer_names);
				$('#address').val(data.buyer_address);
				$('#neighborhood').val(data.buyer_neighborhood);
				$('.w_inp #email').val(data.buyer_email);
				$('#phone').val(data.buyer_phone);
				$('#cell_phone').val(data.buyer_cell_phone);
			}
			remove(Wait);
		}
		
	}
	postRequest(r,'pr='+encodeURIComponent(dac)+'&ci='+id);
}

function updateCart(){
	r = RequestPOST(cart);
	var pr = gFP('cart_content')+'&pr='+encodeURIComponent(upd);

	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			if(r.status == 200){
				var response = r.responseText;
			}else{
				var response = '{error:"1",msg:"Error"}';
			}
			
			if(isJSON(response)){
				response = eval("("+response+")");
				if(response.error == 'undefined'){
					alert(response.msg)
				}else{
					document.getElementById('cart_detail').style.display = 'none';
					document.getElementById('cart_buttons').style.display = 'none';
					document.getElementById('cart_empty').style.display = 'block';
					$('#num_items').html('EL CARRITO ESTÁ VACÍO');
				}
			}else{
				$('#cart_detail').html(response);
				var TotalItems = $('#total_items').val();
				var s = TotalItems > 1 ? 'S' : '';
				$('#num_items').html(TotalItems +' PRODUCTO'+s+' EN EL CARRITO');
			}
			remove(Wait);
		}
		
	}
	postRequest(r,pr);
}


function checkOut(pr){
	var r = RequestPOST(cart), response, prm = 'pr='+encodeURIComponent(pr)+'&'+gFP('give_form');
	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			
			if(r.status == 200){
				response = r.responseText;
			}else{
				response = '{error:1,msg:"ERROR"}';
			}
			
			if(isJSON(response)){
				response = eval("("+response+")");
				alert(response.msg);
			}else{
				$('.content').html(response);
			}
			remove(Wait);
		}
	}
	postRequest(r,prm);
	
}

function createWeddingList(){
	var r = RequestPOST(cart), response, pr = 'pr='+encodeURIComponent(wln)+'&'+gFP('wd_list_frm');
	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			if(r.status == 200){
				response = r.responseText;
			}else{
				response = '{error:1,msg:"ERROR"}';
			}
			
			if(isJSON(response)){
				response = eval("("+response+")");
				alert(response.msg);
			}else{
				$('#wedding_creator').html(response);
			}
			remove(Wait);
		}
	}
	postRequest(r,pr);
	
}

function addToWeddingList(p){
	var r = RequestPOST(cart), response, pr = 'pr='+encodeURIComponent(wap)+'&id='+p;
	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			if(r.status == 200){
				response = r.responseText;
			}else{
				response = '{error:1,msg:"ERROR"}';
			}
			
			if(isJSON(response)){
				response = eval("("+response+")");
				alert(response.msg);
			}else{
				$('#addToWeddingList').hide("fast");
			}
			remove(Wait);
		}
	}
	postRequest(r,pr);
	
}

function reserveItem(l,p){
	var r = RequestPOST(cart), response, pr = 'pr='+encodeURIComponent(wgp)+'&list_id='+l+'&product_id='+p;
	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			
			if(r.status == 200){
				response = r.responseText;
			}else{
				response = '{error:1,msg:"ERROR"}';
			}
			
			if(isJSON(response)){
				response = eval("("+response+")");
				alert(response.msg);
			}else{
				$('.content').html(response);
			}
			remove(Wait);
		}
	}
	postRequest(r,pr);
	
}

function makeGift(){
	var r = RequestPOST(cart), response, pr = 'pr='+encodeURIComponent(wmg)+'&'+gFP('give_form');
	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			if(r.status == 200){
				response = r.responseText;
			}else{
				response = '{error:1,msg:"ERROR"}';
			}
			
			if(isJSON(response)){
				response = eval("("+response+")");
				alert(response.msg);
			}else{
				$('.content').html(response);
			}
			remove(Wait);
		}
	}
	postRequest(r,pr);
}


function removeItem(l,p){
	var r = RequestPOST(cart), response, pr = 'pr='+encodeURIComponent(wdp)+'&list_id='+l+'&product_id='+p;
	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			if(r.status == 200){
				response = r.responseText;
			}else{
				response = '{error:1,msg:"ERROR"}';
			}
			
			if(isJSON(response)){
				response = eval("("+response+")");
				alert(response.msg);
			}else{
				$('.content').html(response);
			}
			remove(Wait);
		}
	}
	postRequest(r,pr);
}

function sendMessage(){
	var r = RequestPOST(cart), response, pr = 'pr='+encodeURIComponent(ctc)+'&'+gFP('contact_form');
	wait();
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			if(r.status == 200){
				response = r.responseText;
			}else{
				response = '{error:1,msg:"ERROR"}';
			}
			
			if(isJSON(response)){
				response = eval("("+response+")");
				alert(response.msg);
			}else{
				$('.content').html(response);
			}
			remove(Wait);
		}
	}
	postRequest(r,pr);
}

function onSubscribe(n,m){
	
	wait();
	n = $('#'+n).val();
	m = $('#'+m).val();
	var r = RequestPOST(cart), response;
	var p = 'pr='+encodeURIComponent(usc)+'&names='+escape(n)+'&email='+escape(m);
	r.onreadystatechange = function(){
		if(r.readyState == 4){
			
			if(r.status == 200){
				response = r.responseText;
			}else{
				alert('Ocurrio un error al momento de la suscripcion.\nIntentelo nuevamente');
				remove(Wait);
				return;
			}
			
			if(!isJSON(response)){
				alert(response.strip_tags());
			}else{
				response = eval("("+response+")");
				if(typeof response.errno != 'undefined'){
					alert(response.msg);
				}else{
					alert('Tu suscripción se realizó correctamente');
				}
			}
			remove(Wait);
		}
	};
	postRequest(r,p);
}

String.prototype.strip_tags = function(){
	tags = this;
	repl = /(<([^>]+)>)/gi;
	stripped = tags.replace(repl, "");
	return stripped;
}

function dateDiff(date1, date2){
	var oneDay = 1000*3600*24;
	var daysdiff = Math.ceil((date2.getTime()-date1.getTime())/oneDay);
	return daysdiff;
}

function calculaTasa(capital, plazo){
	var tasa=0;
	if(capital >= 200000 && capital < 350000){
		if(plazo >= 240 && plazo <= 590){
			tasa = 117;
		}
	}else{
		
		if(capital >= 350000 && capital < 50000000){
			if(plazo >= 145 && plazo <= 220){
				tasa = 70.69;
			}else{
				if(plazo >= 221 && plazo <= 410){
					tasa = 85.2;
				}else{
					if(plazo >= 411 && plazo <= 1590){
						tasa = 88.68;
					}
				}
			}
		}
	}
	return tasa;
}

function redondeo(valor){
	
	var factor = 100;
	
	var val	= valor;
	valor = (valor/factor);
	valor = valor.toString();
	valor = valor.split(".",valor);
	valor = valor[0];
	valor = parseInt(valor);
	valor = valor*factor;

    if(valor != val){
        valor = valor+factor;
	}
	return valor;
}


function addMonth(d,month){
	
	t = new Date (d);
 	t.setMonth(d.getMonth()+ month);
	
	 if(t.getDate() < d.getDate()){
	   t.setDate(0);
	 }
	 
	 return t;
	 
}

function calculate(){
	
	var entrega = $('#entrega').val();
	var cuotas  = parseInt($('#cuotas').val());
	var precio  = parseInt($('#full_price').val());
	var tipo = 1;
	var dias = 1;
	
	entrega = entrega.replace(/\./gi, "");
	entrega = parseInt(entrega);
	
	if(cuotas > 18){
		//alert('La cantidad de cuotas debe estar entre 4 y 18');
		//return;
		cuotas = 18;
		$('#cuotas').val(18);
	}
	
	if(cuotas == 0){
		alert('Ingrese la cantidad de cuotas');
	}else{
		if(entrega > precio){
			alert('La entrega no puede ser mayor al precio del producto');
		}else{
			
			if(entrega > 0){
				precio = precio - entrega;
			}
			
			
			switch(tipo){
				
				case 1:
					
					meses = (dias*cuotas);
					var date1 = new Date();
					var date2 = addMonth(date1, meses);
					
					periodo1 = (dateDiff(date1, date2)/cuotas);
					plazo1	 = (dateDiff(date1, date2));
					
					desfas  = Math.ceil(periodo1);
					plazo2  = plazo1+desfas;
			
					break;
					
				case 2:
					
					periodo1 = dias;
					date1 = new Date()
					date2 = dateAdd(date1, (dias*$cuotas), 0, 0);
					$plazo1	  = dateDiff(date1, date2);
					$desfas	  = 31;
					$plazo2	  = plazo1+desfas;
					break;
					
			}
			
			var tasa = calculaTasa(precio, plazo2);
			
			var interes = precio * tasa * desfas / 36500;
			var capital = precio + interes;
			
			var ta = tasa / 36500 * periodo1;
			var tb = ta * Math.pow((ta+1),cuotas);
			var tc = (Math.pow((1 + ta),cuotas))-1;
			
			var cuota = capital * (tb/tc);
			var monto = cuota;
			
			var ley = ((cuota*cuotas) - capital) - (((cuota*cuotas)- capital) / 1.05);
			ley = Math.round(ley);
			var CapitalTotal = capital + ley;
			var mensualidad = redondeo(cuota);
			var total = mensualidad*cuotas;
			mensualidad = number_format(mensualidad) == 'NaN' ? '' : number_format(mensualidad);
			
			if(mensualidad){
				$('#result').val(mensualidad);
				var entrega2 = entrega > 0 ? number_format(entrega) : '';
				$('#entrega').val(entrega2);
			}else{
				$('#result').val('');
			}
			
		}
	
	}
}


function number_format(n,swap) {
	var ts=".", ds=",";
	
	if(swap){
		ts=",";
		ts=".";
	}
	
	var ns = String(n),
	ps=ns,
	ss="";
	
	var i = ns.indexOf(".");
	
	if(i!=-1){
		ps = ns.substring(0,i);
		ss = ds+ns.substring(i+1);
	}
	
	return ps.replace(/(\d)(?=(\d{3})+([.]|$))/g,"$1"+ts)+ss;
	
}


function bannerPromo(direction){
	
	var banner_flash	= document.getElementById('slide_banner');
	var swf_movie		= document.getElementById('FlashID2');
	var limit			= 2;
	lastBanner			= (lastBanner > num_banners) ? 1 : lastBanner;
	lastBanner			= lastBanner <= 0 ? limit : lastBanner;
	direction			= parseInt(direction) == 'NaN' ? 1 : direction;
	direction			= (direction == 1 || direction == -1) ? direction : 1;
	direction			= lastBanner < 1 ? 1 : direction;
	
	//alert('BannerLimit = '+bannerLimit +' -- lastBanner = '+lastBanner);

	if(bannerLimit > limit){
		bannerLimit = 0;
		
		clearInterval(bannerInterval);
		
		for(var b = 1; b <= num_banners; b++){
			document.getElementById('banner_promo_'+b).style.display = 'none';
		}
		
		$('#slide_banner').fadeTo('slow', 1);
	}else{
		
		banner_flash.style.display = 'none';
		for(var b = 1; b <= num_banners; b++){
			document.getElementById('banner_promo_'+b).style.display = 'none';
		}
		
		$('#banner_promo_'+lastBanner).fadeTo('slow', 1);
		
	}
	
	bannerLimit++;
	lastBanner = lastBanner + (1*direction);
	
}

function startBannerInterval(){
	bannerInterval = setInterval('bannerPromo()', 6000);
}

function nextBanner(){
	bannerPromo();
}

function priorBanner(){
	bannerPromo(-1);
}
