function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function noRightClick(element, event) {
	if(window.event && window.event.button > 1) {
		element.click();
		return false;
	}
	else if(event.button > 0) {
		element.click();
		return false;
	}
}

function noCtrl(event) {
	var code;
	if(window.event) {
		code = parseInt(window.event.keyCode);
	}
	else {
		code = parseInt(event.which);
	}
	if(code == 18 ) {
		return false;
	}
}

function digitsOnly(event) {
	event = event || window.event;
	var code = event.charCode ? event.charCode : event.keyCode;
	if(code != 8 && code != 9) {
		if(code < 48 || code > 57) {
			return false;
		}
	}
	return true;
}

function getCaretPosition (oField) {

	// Initialize
	var iCaretPos = 0;

	// IE Support
	if (document.selection) {

	// Set focus on the element
	oField.focus ();

	// To get cursor position, get empty selection range
	var oSel = document.selection.createRange ();

	// Move selection start to 0 position
	oSel.moveStart ('character', -oField.value.length);

	// The caret position is selection length
	iCaretPos = oSel.text.length;
	}

	// Firefox support
	else if (oField.selectionStart || oField.selectionStart == '0')
	iCaretPos = oField.selectionStart;

	// Return results
	return (iCaretPos);
}

function onSelectPaymentSource(paymentSourceId) {
	var paymentOptionLists = document.getElementsByName("paymentOptionId");
	for(index = 0; index < paymentOptionLists.length; index++) {
		if(paymentOptionLists[index].id == ('paymentSource_' + paymentSourceId)) {
			paymentOptionLists[index].disabled = false;
		}
		else {
			paymentOptionLists[index].disabled = 'disabled';
		}
	}
}



function keyDownCartItemQuantity(obj, idx, qty, e) {
	var event = e || window.event;
	var code = event.charCode ? event.charCode : event.keyCode;
	switch(code) {
		case 13: case 27: {
			changeCartItemQuantity(idx, qty);
			return false;
		}
		case 8: case 9: case 35: case 36:
		case 37: case 39: case 46: {
			return true;
		}
		case 38: case 43: {
			changeCartItemQuantity(idx, window.parseInt(qty) + 1);
			return false;
		}
		case 40: case 45: {
			if(window.parseInt(qty) > 0) {
				changeCartItemQuantity(idx, window.parseInt(qty) - 1);
			}
			return false;
		}
		default: {
			return (code >= 48 && code <= 57) || (code >= 96 && code <= 105);
		}
	}
}

function changeCartItemQuantity(idx, qty) {
	var url = "cartItem.do";
	var data = {action: "changeQuantity", index: idx, quantity: qty};
	var callback = function(cart) {
		$("#cartItem" + idx + "_checkbox").attr({checked: cart.items[0].selected});
		$("#cartItem" + idx + "_quantity").val(cart.items[0].quantity);
		$("#cartItem" + idx + "_shippingFee").text(cart.items[0].shippingFee);
		$("#cartItem" + idx + "_vat").text(cart.items[0].vat);
		$("#cartItem" + idx + "_total").text(cart.items[0].total);
		$("#cart_total").text(cart.total);
			$.cartCurrencyData = {};
			$.cartCurrencyData.amt=cart.total;
			$.cartCurrencyData.from=''+cart.currency.isoCode+'';
			$.cartCurrencyData.box='currencyDropDown';
			//alert($.cartCurrencyData.amt);
		if(cart.items[idx].quantity < 1) {
			$("#pay_link").attr({style: "cursor: default;"});
			$("#pay_link").attr({href: "#"});
			$('#pay').attr({src: document.contextPath + "/static/images/pay_btn_disabled.png"});
		}
		else {
			$("#pay_link").attr({style: "cursor:pointer;cursor:hand;"});
			$("#pay_link").attr({href: "JavaScript:checkoutCart(document.getElementById('cartForm'));"});
			$('#pay').attr({src: document.contextPath + "/static/images/pay_btn.png"});
		}
	};
	var type = "json"
	$.post(url, data, callback, type);
}

function checkoutCart(form) {
	$.blockUI({
		message: "",
		css: {
			backgroundColor: "transparent", 
			border: "none"
		}
	}); 
	form.submit();
}

function showTooltip(element) {
	var tooltip = $("#phoneNoHint");
	var x = $(element).offset().left + $(element).width() + 7;
	var y = $(element).offset().top + $(element).height()/2 - 13;
	tooltip.css({
		left:x,
		top:y,
		display:'block'
	});
}

function hideTooltip() {
	$("#phoneNoHint").hide();
}

jQuery.fn.center = function (absolute) {
    return this.each(function () {
        var t = jQuery(this);
        t.css({
            position:    absolute ? 'absolute' : 'fixed', 
            left:        '50%', 
            top:        '50%', 
            zIndex:        '99'
        }).css({
            marginLeft:    '-' + (t.outerWidth() / 2) + 'px', 
            marginTop:    '-' + (t.outerHeight() / 2) + 'px'
        });

        if (absolute) {
            t.css({
                marginTop:    parseInt(t.css('marginTop'), 10) + jQuery(window).scrollTop(), 
                marginLeft:    parseInt(t.css('marginLeft'), 10) + jQuery(window).scrollLeft()
            });
        }
    });
};

function showCurrencyConverter() {
	
		$.Boxen.open(null, {
		    url:"http://www.xe.com/ucc/convert.cgi?template=pca-xetrade&Amount=" + $.cartCurrencyData.amt + "&From=" + $.cartCurrencyData.from + "&To=" + $('#'+$.cartCurrencyData.box).val(),
		    height: 200,
		    width: 500,
		    title: "Currency Converter",
		    model: true,
		    postOpen: function(bca) {
				$(bca).block({
					message: null,
			        overlayCSS: {
			            opacity: 0
			        }
				});
			},
			postClose: function() {
				document.getElementById($.cartCurrencyData.box).options[0].selected = true;
			}
		});
}

function showList(url, title, width, height) {
	$.Boxen.open(null, {
	    url:url,
	    height: height,
	    width: width,
	    title: title,
	    modal: true
	});
}

function showTermsAndConditions() {
	$.Boxen.open(null, {
	    url:"/static/html/terms.html",
	    width: 600,
	    height: 600,
	    title: "Terms and Conditions",
	    model: true
	});
}
function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

function trackOrder() {
	if($("#emailAddressField").val() && $("#orderNumberField").val()) {
		if(isValidEmailAddress($("#emailAddressField").val())){
			document.location.href = document.contextPath + "/order/" + $("#emailAddressField").val() + "/" + $("#orderNumberField").val();
		}else{
			alert("Please provide a valid Email ID");
		}
	}
}