﻿
//FancyBoxes
function fnShowGiftwrap(obj, id, mode) {
	if (obj.checked) {
		$('<a href="/Fancyboxes/ChooseGiftwrap.aspx?id=' + id + '&mode=' + mode + '">ShowChooseGiftwrap</a>').fancybox({
			'type': 'iframe',
			'width': 760,
			'height': 400
		}).click();
	}
	else {
		IKPService.SetGiftwrap(false, mode, id, 0);
	}
}

function fnShowForgotPassword() {
	$('<a href="/Fancyboxes/ForgotPassword.aspx">ShowForgotPassword</a>').fancybox({
		'type': 'iframe',
		'width': 650,
		'height': 200
	}).click();
}

function fnShowLogin() {
	$('<a href="/Fancyboxes/Login.aspx">Login</a>').fancybox({
		'type': 'iframe',
		'width': 650,
		'height': 200
	}).click();
}

function fnShowVideo(id) {
	$('<a href="/Fancyboxes/ProductVideo.aspx?id=' + id + '">ShowProductVideo</a>').fancybox({
		'type': 'iframe',
		'width': 640,
		'height': 500
	}).click();
}

function fnShowEditUserData() {
	$('<a href="/Fancyboxes/EditUserData.aspx">EditUserData</a>').fancybox({
		'type': 'iframe',
		'width': 650,
		'height': 500
	}).click();
}

function fnShowSendWishList() {
	$('<a href="/Fancyboxes/SendWishList.aspx">SendWishList</a>').fancybox({
		'type': 'iframe',
		'width': 350,
		'height': 350
	}).click();
}

function fnShowOrderDetails(id) {
	$('<a href="/Fancyboxes/OrderDetail.aspx?id=' + id + '">OrderDetail</a>').fancybox({
		'type': 'iframe',
		'width': 940,
		'height': 500
	}).click();
}

function fnShowAddToWishlist(id) {
	$('<a href="/Fancyboxes/AddToWishList.aspx?id=' + id + '">AddToWishlist</a>').fancybox({
		'type': 'iframe',
		'width': 500,
		'height': 400
	}).click();
}

//Basket

function fnAddCombiToBasket(id) {
	IKPService.AddCombiToBasket(id, onCombiAdded);
	RegisterGoogleAnalytics($('#hfCombiAC').val(), "/fancyboxes/AddCombiToBasket");
}

function onCombiAdded(result) {
	if (result) {
		$('#combiImagesAdded').html(result.Images);
		$('#combiNamesAdded').html(result.Names);

		$('#combiFromPriceAdded').html(result.FromPrice);
		$('#combiPriceAdded').html(result.Price);
		$('#combiDeliveryTimeAdded').text(result.DeliveryTime);
		$('#combiDeliveryTimeAdded').addClass(result.DeliveryClass);
		$('#combiQuantityAdded').text(result.Quantity);
		
		$("#addCombiToBasket").show();
		$('<a href=#addCombiToBasket>AddCombiToBasket</a>').fancybox({
			'type': 'inline',
			'autoDimensions': true,
			'onClosed': function () {
				$("#addCombiToBasket").hide();
				parent.location.reload(true);
			}
		}).click();
	}
	else { }
}

function fnAddToBasket(id, quantityContainer, quantity) {
	if (isNaN(quantity))
		quantity = $(quantityContainer).val();
	if (!IsNumeric(quantity))
		quantity = 1;
	//
	IKPService.AddProductToBasket(id, parseInt(quantity), onProductAdded);
	RegisterGoogleAnalytics($('#hfProductAC').val(), "/fancyboxes/AddProductToBasket");
}

function fnAddRelatedToBasket(id) {
	IKPService.AddProductToBasket(id, 1, onProductAdded);
}

function onProductAdded(result) {
	if (result) {
		$('#addedImage').attr('src', result.Image);
		$('#addedImage').attr('alt', result.Name);
		$('#addedTitle').text(result.Name);
		$('#addedFromPrice').html(result.FromPrice);
		$('#addedPrice').html(result.Price);
		$('#adddedDeliveryTime').text(result.DeliveryTime);
		$('#adddedDeliveryTime').addClass(result.DeliveryClass);
		$('#addedQuantity').text(result.Quantity);

		$("#addToBasket").show();
		$('<a href=#addToBasket>AddToBasket</a>').fancybox({
			'type': 'inline',
			'autoDimensions': true,
			'onClosed': function () {
				$("#addToBasket").hide();
				parent.location.reload(true);
			}
		}).click();
	}
	else { }
}

function fnSetGiftwrap() {
	index = $('#hdIndex', $('#fancybox-frame').contents()).val();
	mode = $('#hdMode', $('#fancybox-frame').contents()).val();
	pck = $('input:radio[name=package]:checked', $('#fancybox-frame').contents()).val();

	if (typeof (pck) == "undefined" || pck == null || pck == '')
		$("#giftwrapError", $('#fancybox-frame').contents()).css('visibility', 'visible');
	else {
		IKPService.SetGiftwrap(true, mode, parseInt(index), parseInt(pck), SetGiftwrapCompleted);
	}
}

function SetGiftwrapCompleted(result) {
	if (result == true) {
		$.fancybox.close();
		parent.location.reload(true);
	}
}

function SetSelectedPaymentMethodToBasket(paymentMethod) {
	IKPService.SetSelectedPaymentMethodToBasket(paymentMethod, SetSelectedPaymentMethodToBasketCompleted);
}

function SetSelectedPaymentMethodToBasketCompleted(result) {
}

function SetSelectedCountryCode(countryCode) {
	IKPService.SetSelectedCountryCode(countryCode, SetSelectedCountryCodeCompleted);
}

function SetSelectedCountryCodeCompleted(result) {
}

function SetSelectedDeliveryCountryCode(countryCode) {
	IKPService.SetSelectedDeliveryCountryCode(countryCode, SetSelectedDeliveryCountryCodeCompleted);
}

function SetSelectedDeliveryCountryCodeCompleted(result) {
}

//Helper
function IsNumeric(text) {
	if (typeof (text) == "undefined" || text == null || text == '')
		text = ' ';
	//
	var regex = /^(-)?(\d*)(\.?)(\d*)$/;
	var result = regex.test(text);
	return result;
}

function IsEmail(text) {
	if (typeof (text) == "undefined" || text == null || text == '')
		text = ' ';
	//
	var regex = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	var result = regex.test(text);
	return result;
}

var arrPreloaders = new Array();
function preloaderShow(containerIdentifier, selectorToHide) {

	if (selectorToHide) {
		arrPreloaders[containerIdentifier] = selectorToHide;
		$(selectorToHide).hide();
	}
	
	$(containerIdentifier).append($('#preloader').clone().removeAttr('id'));
	$(containerIdentifier + ' .ajaxLoader').show();
}


function preloaderHide(containerIdentifier) {
	$(containerIdentifier + ' .ajaxLoader').remove();
	if (arrPreloaders[containerIdentifier])
		$(arrPreloaders[containerIdentifier]).show();
}

function elementInViewport(el) {
	var rect = el.getBoundingClientRect()

	return (
        rect.top >= 0 &&
        rect.left >= 0 &&
        rect.botom <= window.innerHeight &&
        rect.right <= window.innerWidth
        )
}


function RegisterGoogleAnalytics(ac, pageview) {
	var _gaq = _gaq || [];
	_gaq.push(['_setAccount', ac]);
	_gaq.push(['_trackPageview', pageview]);
	_gaq.push(['_trackPageLoadTime']);
}
