/* Properties
*********************************************/
var CartOpen = false;
var hideTimeout = null;
var preloaderHTML = '<div class="animated_preloader"><img src="/www/skins/sealife/images/preloader.gif" alt="" /></div>';
var mouse_is_inside_cart = false;

/* OnInit
*********************************************/
$(document).ready(function () {
	//Tar bort titel från mallen "Varumärken"
	if ($('#brand').size() > 0) {
		$('#brand > table').find('.title').parent().remove();
	}

	//Initialize button events
	Buttons_Init();
});

/* Events
*********************************************/
function Cart_LoadComplete(status) {
	if (status != 'content returned and container updated') { return false; } 

	if (CartOpen) {
		Cart_Open(false);
	} else {
		Cart_Open(true);
		window.setTimeout(function () {
			Cart_Close(true)
		}, 2500);
	}

	if (UpdateOrderValue) {
		UpdateOrderValue();
	}

	if ($('#Ecom_Cart_Container_Checkout_Cart').size() > 0) {
		GetCartHTML('Checkout_Cart', 474);
	}
}

/* Methods
*********************************************/
function Cart_Quantity_UpdateOrRemove(vsrid, q) {
	if(q <= 0) { 
		Cart_Remove(vsrid) 
	} else { 
		Cart_UpdateQuantity(vsrid, q); 
	}
}
function Cart_Toggle() {
	if (CartOpen) {
		Cart_Close(true);
	} else {
		Cart_Open(true);
	}
}
function Cart_Open(animate) {
	//item height
	var count = $('#cart_list > .bg > .rows > .row').size();
	var height = count  * 100;

	if (count == 0) { return false; }

	//margin
	height += 100;

	CartOpen = true;
	$('#cart_closed').fadeOut(200, function () {
		$('#cart_opened').fadeIn();
	});

	$('#cart_btn').addClass('cart_btn_hover');

	if (animate) {
		//open cart
		$('#cart_list > .bg').animate({
			'height': height
		}, 500, 'easeOutQuint', function () {
			$('#cart_list > .bg > .divider_header').fadeIn(200);
			$('#cart_list > .bg > .rows').fadeIn(200);
			$('#cart_list > .bg > .footer').fadeIn(200);
		});
	} else {
		$('#cart_list > .bg').css('height', height);
		$('#cart_list > .bg > .divider_header').show();
		$('#cart_list > .bg > .rows').show();
		$('#cart_list > .bg > .footer').show();
	}
}
function Cart_Close(animate) {
	CartOpen = false;
	$('#cart_opened').fadeOut(200, function () {
		$('#cart_closed').fadeIn();
	});

	$('#cart_btn').removeClass('cart_btn_hover');

	if (animate) {
		$('#cart_list > .bg > .rows').fadeOut(200);
		$('#cart_list > .bg > .footer').fadeOut(200);
		$('#cart_list > .bg > .divider_header').fadeOut(200);

		//close cart
		$('#cart_list > .bg').animate({
			'height': '42px'
		},
		500, 'easeOutQuint', 
		function () {
			// Animation complete.

		});
	} else {
		$('#cart_list > .bg > .rows').hide();
		$('#cart_list > .bg > .footer').hide();
		$('#cart_list > .bg > .divider_header').hide();
		$('#cart_list > .bg').css('height', height + 'px');
	}
}

/* BUTTONS */

function Buttons_Init() {
	/* GREEN */
	if ($('.green_button').size() > 0) {
		$('.green_button').bind('mouseover', function () {
			$(this).addClass('green_button_hover');
			$('> .left', this).addClass('left_hover');
		});
		$('.green_button').bind('mouseout', function () {
			$(this).removeClass('green_button_hover');
			$('> .left', this).removeClass('left_hover');
			$(this).removeClass('green_button_click');
			$('> .left', this).removeClass('left_click');
		});

		$('.green_button').bind('mousedown', function () {
			$(this).addClass('green_button_click');
			$('> .left', this).addClass('left_click');
		});
		$('.green_button').bind('mouseup', function () {
			$(this).removeClass('green_button_click');
			$('> .left', this).removeClass('left_click');
		});
	}

	/* STANDARD */
	if ($('.standard_button').size() > 0) {
		$('.standard_button').bind('mouseover', function () {
			$(this).addClass('standard_button_hover');
			$('> .left', this).addClass('left_hover');
		});
		$('.standard_button').bind('mouseout', function () {
			$(this).removeClass('standard_button_hover');
			$('> .left', this).removeClass('left_hover');
			$(this).removeClass('standard_button_click');
			$('> .left', this).removeClass('left_click');
		});

		$('.standard_button').bind('mousedown', function () {
			$(this).addClass('standard_button_click');
			$('> .left', this).addClass('left_click');
		});
		$('.standard_button').bind('mouseup', function () {
			$(this).removeClass('standard_button_click');
			$('> .left', this).removeClass('left_click');
		});
	}
}
function GreenButton_Init(target) {
	if (target != null) {
		$(target).bind('mouseover', function () {
			$(this).addClass('green_button_hover');
			$('> .left', this).addClass('left_hover');
		});
		$(target).bind('mouseout', function () {
			$(this).removeClass('green_button_hover');
			$('> .left', this).removeClass('left_hover');
			$(this).removeClass('green_button_click');
			$('> .left', this).removeClass('left_click');
		});

		$(target).bind('mousedown', function () {
			$(this).addClass('green_button_click');
			$('> .left', this).addClass('left_click');
		});
		$(target).bind('mouseup', function () {
			$(this).removeClass('green_button_click');
			$('> .left', this).removeClass('left_click');
		});
	}
}
function StandardButton_Init(target) {
	if (target != null) {
		$(target).mouseover(function () {
			$(this).addClass('standard_button_hover');
			$('> .left', this).addClass('left_hover');
		});
		$(target).mouseout(function () {
			$(this).removeClass('standard_button_hover');
			$('> .left', this).removeClass('left_hover');
			$(this).removeClass('standard_button_click');
			$('> .left', this).removeClass('left_click');
		});

		$(target).mousedown(function () {
			$(this).addClass('standard_button_click');
			$('> .left', this).addClass('left_click');
		});
		$(target).mouseup(function () {
			$(this).removeClass('standard_button_click');
			$('> .left', this).removeClass('left_click');
		});
	}
}

/* FACEBOX */
function Facebox_Init() {
	$('a[rel*=facebox]').facebox({
		loadingImage: '/www/skins/sealife/images/facebox/loading.gif',
		closeImage: '/www/skins/sealife/images/facebox/closelabel.png'
	});
}
function Facebox_Init(target) {
	$(target).facebox({
		loadingImage: '/www/skins/sealife/images/facebox/loading.gif',
		closeImage: '/www/skins/sealife/images/facebox/closelabel.png'
	});
}
function iFrameResize(width, height) {
	$('#facebox').find('iframe').animate({
		height: height,
		width: width
	}, 500, function () {
		// Animation complete.
	});
}
function closeFaceBox() {
	$.facebox.close()
}

/* validation methods */
function TextBoxValidation(val) {
	if (val.length > 1) {
		return true;
	}
	return false;
}
function NumberValidation(val) {
	if (!isNaN(val) && val.length > 1) {
		return true;
	}
	return false;
}
function EmailValidation(val) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var address = val;
	if (reg.test(address) == true) {
		return true;
	}
	return false;
}
function PasswordValidation(val) {
	if (val.length >= 6) {
		return true;
	}
	return false;
}
function CompareValidation(val, compVal) {
	if (val.toLowerCase() == compVal.toLowerCase()) {
		return true;
	}
	return false;
}

/* SSN VALIDERING (yyyymmddcccc) */
/* SSN VALIDERING (yyyymmdd-cccc) */
/* SSN VALIDERING (yymmddcccc) */
/* SSN VALIDERING (yymmdd-cccc) */
function SSNValidation(sPNum) {
	sPNum = sPNum.replace('-', '');
	if (sPNum.length == 10) { sPNum = '19' + sPNum; }

	var numbers = sPNum.match(/^(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)$/);
	var checkSum = 0;

	var d = new Date();
	if (!isDate(sPNum.substring(0, 4), sPNum.substring(4, 6), sPNum.substring(6, 8))) {
		//alert("Datumet " + sPNum.substring(0, 8) + " är inte korrekt.");
		return false;
	}

	if (numbers == null) { return false; }

	var n;
	for (var i = 3; i <= 12; i++) {
		n = parseInt(numbers[i]);
		if (i % 2 == 0) {
			checkSum += n;
		} else {
			checkSum += (n * 2) % 9 + Math.floor(n / 9) * 9
		}
	}

	if (checkSum % 10 == 0) { return true; }

	return false;
}

function getYear(y) { return (y < 1000) ? y + 1900 : y; }

function isDate(year, month, day) {
	month = month - 1; // 0-11 in JavaScript
	var tmpDate = new Date(year, month, day);
	if ((getYear(tmpDate.getYear()) == year) && (month == tmpDate.getMonth()) && (day == tmpDate.getDate()))
		return true;
	else
		return false;
}

