var intWindowWidth = 0;
var intWindowHeight = 0;
var intPageWidth = 0;
var intPageHeight = 0;
var objBasket = $('ShopBasket');
var objPageContainer = $('PageContainer');
var strProductContainer_Zoom = 'Shop_ProductContainer_Zoom';
var strProductContainer_Zoom_Back = 'Shop_ProductContainer_Zoom_Back';
var	intProductContainerMaxWidth = 700;
var	intProductContainerMaxHeight = 450;
var intOpacity = 0;


// Hent sidebredde

function FnGetPageSize () {

	intPageWidth = objPageContainer.offsetWidth;
	intPageHeight = objPageContainer.offsetHeight;
	
	if (navigator.userAgent.indexOf('MSIE') > 0) {
		intWindowWidth = document.documentElement.offsetWidth;
		intWindowHeight = document.documentElement.offsetHeight;
	} else {
		intWindowWidth = window.innerWidth;
		intWindowHeight = window.innerHeight;
	}
}


// Hent hvor langt der er scrollet ned på siden

function FnScrollTop (intNumber) {

	var scrollTop = document.body.scrollTop;
	
	if (scrollTop == 0) {	
		if (window.pageYOffset) {		
			scrollTop = window.pageYOffset;			
		} else {		
			scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;			
		}
	}
	
	return scrollTop += intNumber

}


// Centrer layer midt på siden

function FnCenterInPage (objElement) {

	FnGetPageSize();
	
	objElement.style.left = ((intPageWidth - objElement.offsetWidth) / 2) + 'px';
	objElement.style.top = ((intWindowHeight - objElement.offsetHeight) / 2) + FnScrollTop(0) + 'px';

}


// Vis produkt i layer

function FnShowProduct (intProductID) {

	if ($(strProductContainer_Zoom) == null) {
	
		FnGetPageSize();

		intOpacity = 0;
	
		var objAjax = new Ajax.Request('shop/scripts/productdata.asp?ProductID=' + intProductID, {
	
			method: 'get',
			
			onSuccess: function(objResponse) {
			
				objDivBack = document.createElement('div');
				objDivBack.id = strProductContainer_Zoom_Back;
				objDivBack.style.width = intPageWidth + 'px';
				objDivBack.style.height = intPageHeight + 'px';
				objDiv = document.createElement('div');
				objDiv.id = strProductContainer_Zoom;
				objDiv.className = 'Shop_Border2';
				objDiv.innerHTML = '<div id="Shop_ProductContainer_Zoom_Inner" style="width:' + intProductContainerMaxWidth + 'px;">' + objResponse.responseText + '</div>';
			
				objPageContainer.appendChild(objDivBack);
				objPageContainer.appendChild(objDiv);
				
				FnZoomProduct('up');
		
			}
		
		});
		
	}

}


// Effekt til når et produkt åbnes/lukkes i layer

function FnZoomProduct (strDirection) {

	objElement = $(strProductContainer_Zoom);
	
	if (strDirection == 'up') {

		if (objElement.offsetWidth < intProductContainerMaxWidth) {
		
			objElement.style.width = (objElement.offsetWidth + 10) + 'px';
			
			FnCenterInPage(objElement);
			
			setTimeout('FnZoomProduct("' + strDirection + '")', 10);
			
		} else if (objElement.offsetHeight < intProductContainerMaxHeight) {
		
			objElement.style.height = (objElement.offsetHeight + 10) + 'px';
			
			FnCenterInPage(objElement);
			
			setTimeout('FnZoomProduct("' + strDirection + '")', 10);
			
		} else if (intOpacity < 100) {
	
			intOpacity += 10;
	
			$('Shop_ProductContainer_Zoom_Inner').style.filter = "alpha(opacity=" + intOpacity + ")";
			$('Shop_ProductContainer_Zoom_Inner').style.MozOpacity = intOpacity / 100;
			$('Shop_ProductContainer_Zoom_Inner').style.opacity = intOpacity / 100;
			
			setTimeout('FnZoomProduct("' + strDirection + '")', 50);
			
		}
		
	} else {
	
		if (intOpacity > 0) {
	
			intOpacity -= 10;
	
			objElement.style.filter = "alpha(opacity=" + intOpacity + ")";
			objElement.style.MozOpacity = intOpacity / 100;
			objElement.style.opacity = intOpacity / 100;
			
			setTimeout('FnZoomProduct("' + strDirection + '")', 30);
			
		} else {
			
			objPageContainer.removeChild(objElement);
			objPageContainer.removeChild($(strProductContainer_Zoom_Back));

		}
	
	}

}


// Tilføj et produkt til indkøbskurven

function FnAddProductToBasket (intProductID) {

	var objForms = document.getElementsByTagName('form');

	for (i=0;i<objForms.length;i++) {

		if (objForms[i].name == 'Product' + intProductID + 'Form') {

			document.forms[i].submit();
			
			break;
	
		}
	
	}

}


// Validering af bestillingsformular

function FnCheckOrderForm () {

	objForm = document.OrderForm;	
	blnEmptyFields = false;
	blnDeliveryFilled = false;
	blnDeliveryEmptyField = false;
	blnDeliveryEmailValid = true;
	
	for (i = 0; i < objForm.elements.length; i ++) {

		if (objForm.elements[i].type == 'text') {
			objForm.elements[i].className = 'FormElement';
	
			if (objForm.elements[i].name.indexOf('Delivery') > 0) {
				if (objForm.elements[i].value != '') { blnDeliveryFilled = true; }
				if (objForm.elements[i].value == '') { blnDeliveryEmptyField = true; }
			}

		}

	}
	
	objForm.OrderConditionConfirm.className = '';
	
	if (objForm.OrderRoadUse) { objForm.OrderRoadUse.className = ''; }
	
	if (blnDeliveryFilled && blnDeliveryEmptyField) {
		strRequiredFields = 'OrderBuyerName,OrderBuyerAddress,OrderBuyerPostalCode,OrderBuyerCity,OrderBuyerPhone,OrderBuyerEmail,OrderDeliveryName,OrderDeliveryAddress,OrderDeliveryPostalCode,OrderDeliveryCity,OrderDeliveryPhone,OrderDeliveryEmail';
	} else {
		strRequiredFields = 'OrderBuyerName,OrderBuyerAddress,OrderBuyerPostalCode,OrderBuyerCity,OrderBuyerPhone,OrderBuyerEmail';
	}
	
	arrRequiredFields = strRequiredFields.split(',');
	
	for (i = 0; i < arrRequiredFields.length; i ++) {
	
		if (objForm.elements[arrRequiredFields[i]].value == '') {		
			blnEmptyFields = true;			
			objForm.elements[arrRequiredFields[i]].className = 'Shop_FormElementMissing';		
		}
	
	}

	blnBuyerEmailValid = FnCheckEmail(objForm.OrderBuyerEmail);

	if (blnDeliveryFilled) { blnDeliveryEmailValid = FnCheckEmail(objForm.OrderDeliveryEmail); }

	if (blnEmptyFields) {
	
		$('Shop_ErrorMessage').innerHTML = 'Et eller flere obligatoriske felter er tomme.';
		
	} else if (blnBuyerEmailValid == false) {
	
		objForm.OrderBuyerEmail.className = 'Shop_FormElementMissing';
		$('Shop_ErrorMessage').innerHTML = 'Der skal indtastes en gyldig e-mail adresse.';
		
	} else if (blnDeliveryEmailValid == false) {
	
		objForm.OrderDeliveryEmail.className = 'Shop_FormElementMissing';
		$('Shop_ErrorMessage').innerHTML = 'Der skal indtastes en gyldig e-mail adresse.';
		
	} else if (objForm.OrderConditionConfirm.checked == false) {
	
		objForm.OrderConditionConfirm.className = 'Shop_FormElementMissing';
		$('Shop_ErrorMessage').innerHTML = 'Du skal læse og acceptere vores forretningsbetingelser.';
		
	} else if (objForm.OrderRoadUse && objForm.OrderRoadUse.checked == false) {
	
		objForm.OrderRoadUse.className = 'Shop_FormElementMissing';
		$('Shop_ErrorMessage').innerHTML = 'Du skal acceptere, at nogle dele kun benyttes til banebrug.';
	
	} else {
	
		FnDisableFormButtons (objForm, true);
		
		$('Shop_ErrorMessage').innerHTML = '';
	
		objForm.submit();
		
	}

}


// Åbn nyt vindue til betaling via Netbank

function FnOpenBankTransfer () {

	objForm = document.BankTransferForm;	
	blnChecked = false;

	for (i = 0; i < objForm.elements.length; i ++) {

		if (objForm.elements[i].type == 'radio' && objForm.elements[i].checked == true) {

			blnChecked = true;

			FnOpenWindow(objForm.elements[i].value, 'BankTransferWindow', 'scrollbars=auto,resizeable=no', '940', '600', 'true');

		}

	}
	
	if (blnChecked == false) {
		$('Shop_ErrorMessage').innerHTML = 'Der skal vælges en Netbank.';
	}

}


// Gem i database hvilket kreditkort der er valgt

function FnStoreCreditCard (intCreditCardID) {

	var objAjax = new Ajax.Request('shop/scripts/storecreditcard.asp?CreditCardID=' + intCreditCardID, {

		method: 'get',
		
		onSuccess: function(objResponse) {
			$('Shop_PaymentFrame_Container').style.display = 'block';
			$('Shop_PaymentPageBackButton').style.display = 'none';
	
		}
	
	});
	
}


// Deaktiver formular-buttons ved gem etc.

function FnDisableFormButtons (objForm, blnDisable) {

	for (i = 0;i < objForm.elements.length;i ++) {
	
		if (objForm.elements[i].className == 'Shop_FormButton') {		
			objForm.elements[i].disabled = blnDisable;		
		}
	
	}

}


// Tjek om gyldig e-mail er indtastet

function FnCheckEmail (objEmail) {

	blnEmailValid = true;

	if (objEmail.value.indexOf('@') < 2) {
		blnEmailValid = false;
	}
	
	if (objEmail.value.indexOf('.') < 1) {
		blnEmailValid = false;
	}
	
	return blnEmailValid;

}


// Hent bynavn på baggrund af postnummer

function FnTogglePostalCodeCity (objElement, objTargetElement) {

	var objAjax = new Ajax.Request('shop/scripts/postalcodecity.asp?PostalCode=' + objElement.value, {

		method: 'get',
		
		onSuccess: function(objResponse) {

			objTargetElement.value = objResponse.responseText;
			objTargetElement.select();
	
		}
	
	});
	
}


// Formatér telefon og fax til formatet 01 23 45 67

function FnFormatPhoneFax (objElement) {

	strValue = objElement.value.replace(/ /g, '');

	if (strValue.length == 8) {
		objElement.value = strValue.substring(0, 2) + ' ' + strValue.substring(2, 4) + ' ' + strValue.substring(4, 6) + ' ' + strValue.substring(6, 8);;	
	}

}


// Formatér valuta

function FnFormatCurrency (intValue) {
	
	intValue = intValue.toString().replace(/,/, '.')

	if(isNaN(intValue))
	intValue = '0';
	
	sign = (intValue == (intValue = Math.abs(intValue)));
	intValue = Math.floor(intValue * 100 + 0.50000000001);
	
	cents = intValue % 100;
	intValue = Math.floor(intValue / 100).toString();
	
	if (cents < 10)
	cents = '0' + cents;
	
	for (var i = 0; i < Math.floor((intValue.length - (1 + i)) / 3); i++)
	intValue = intValue.substring(0, intValue.length - (4 * i + 3)) + '.' + intValue.substring(intValue.length - (4 * i + 3));
	
	return (((sign) ? '' : '-') + intValue + ',' + cents);
	
}


// Tilføj 0 hvis tal under 10. Bruges eks. ved datoer

function FnAddZero (intNumber) {

	if (intNumber < 10) { intNumber = '0' + intNumber }
	
	return intNumber;

}


// Refresh cookie

function FnCookieRefresh() {
	
	$('Shop_CookieFrame').src = 'shop/cookierefresh.asp'
	
	setTimeout('FnCookieRefresh()', 30000);
	
}

document.onload = FnCookieRefresh();
