﻿/*
	XMLHttpRequest & AjaxReq by Ole Clausen
	http://www.dengodekode.dk
	
	Creates a standard definition "new XMLHttpRequest" for any browsers 
	that support XMLHttpRequest-object
*/

var d = document;

function gE(id) { return d.getElementById(id) };
function gA(o,t) { return o.getElementsByTagName(t) };

(function(){
    if (window.XMLHttpRequest) return;
    var o = null, s, 
   a = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
    for (var i=0,j=a.length; i<j; i++) {
        s=a[i];
        try {
            if (o=new ActiveXObject(s)) { break; }
        }
        catch(e){};
    }

    window.XMLHttpRequest = o ? function(){return new ActiveXObject(s)} : null;
    o = null;
})();

function AjaxReq(sMethod, sUrl, oVars, fnCallBack, self) 
{	
	var oHttp = new window.XMLHttpRequest();
	oHttp.open(sMethod, sUrl, true);
	oHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
	oHttp.onreadystatechange = _fnCallBack;
	var aQuery = [];
	for (var x in oVars) aQuery.push( encodeURIComponent(x) + "=" + encodeURIComponent(oVars[x]) );
	oHttp.send( aQuery.join("&") );
	aQuery = null;
	
	function _fnCallBack() {
		if (oHttp.readyState<4) return;
	    
		fnCallBack(oHttp, self);
		oHttp = null;
	}
	return this;
}


function addDOMEvent(o, e, fn, capture) {
	if (o.addEventListener) {
		return o.addEventListener(e, fn, capture);
	}
	else if (o.attachEvent) {
		return o.attachEvent('on'+e, fn);
	}
	else return false;
}

function removeDOMEvent(o, e, fn) {
	if (o.removeEventListener) {
		o.removeEventListener(e, fn, false);
	}
	else if (o.detachEvent) {
		o.detachEvent('on'+e, fn);
	}
	else return false;
}

function getClassName(o)
{
	return (o.getAttribute('class')) ? o.getAttribute('class') : o.getAttribute('className');
}

function cart_disable_chkbx(disable)
{
	var mainFrame = gE('mainFrame'), chkbxs = gA(mainFrame, 'input');
	
	for (i=0,j=chkbxs.length;i<j;i++) {
		chkbxs[i].disabled = disable;
	}
}

function cart_add_photo(chkbx, id)
{
	var sUrl = 'cart.php', aQuery = [];
	
	aQuery['a'] = 'add';
	aQuery['id'] = id;
	aQuery['idx'] = chkbx.value;
	
	cart_disable_chkbx(true);
	
	new AjaxReq("POST", sUrl, aQuery, cart_add_photo_callback, chkbx);
}

function cart_add_photo_callback(oHttp, chkbx)
{
	var json = oHttp.responseText;
		
	chkbx.value = json;
	cart_update_total();
}

function cart_lightbox_add_photo(chkbx, id, e)
{
	var sUrl = 'cart.php', aQuery = [];
	
	if (window.event) {
		window.event.cancelBubble=true;
	}
	else e.stopPropagation();
	
	aQuery['a'] = 'add';
	aQuery['id'] = id;
	aQuery['idx'] = chkbx.value;
	
	cart_disable_chkbx(true);
	
	new AjaxReq("POST", sUrl, aQuery, cart_lightbox_add_photo_callback, chkbx);
}

function cart_lightbox_add_photo_callback(oHttp, chkbx)
{
	var oMainFrame = gE('mainFrame'), oChkBxs = gA(oMainFrame, 'input'),
		json = oHttp.responseText, sName = chkbx.name;
	
	chkbx.value = json;
	
	for (i=0,j=oChkBxs.length;i<j;i++) {
		if (oChkBxs[i].name == sName) {
			oChkBxs[i].value = chkbx.value;
			oChkBxs[i].checked = chkbx.checked;
		}
	}
	
	cart_update_total();
}


function cart_update_total()
{
	var sUrl = 'cart.php', aQuery = [];
	
	aQuery['a'] = 'totals';
	
	new AjaxReq("POST", sUrl, aQuery, cart_update_total_callback);
}

function cart_update_total_callback(oHttp)
{
	var cart_subtotal_line = gE('cart_subtotal_amount'), cart_cdrom_line = gE('cart_cdrom_amount'),
		cart_delivery_line = gE('cart_delivery_amount'), cart_total_line = gE('cart_total_amount'),
		cart_giftcert_line = gE('cart_giftcert_amount'), json = oHttp.responseText, amounts = json.split("#");
		
	if (amounts[0] && cart_subtotal_line) {
		cart_subtotal_line.firstChild.nodeValue = amounts[0];
	}
	
	if (amounts[1] && cart_cdrom_line) {
		cart_cdrom_line.firstChild.nodeValue = amounts[1];
	}
		
	if (amounts[2] && cart_delivery_line) {
		cart_delivery_line.firstChild.nodeValue = amounts[2];
	}
	
	if (amounts[3] && cart_total_line) {
		cart_total_line.firstChild.nodeValue = amounts[3];
	}
	
	if (amounts[4] && cart_giftcert_line) {
		cart_giftcert_line.firstChild.nodeValue = '-'+amounts[4];
	}
	
	cart_disable_chkbx(false);
}

function cart_update_item(oSelect, item)
{
	var sUrl = 'cart.php', aQuery = [];
	
	aQuery['a'] = 'update_item';
	aQuery['item'] = item;
	aQuery['str'] = oSelect.options[oSelect.selectedIndex].value;
	
	cart_disable_chkbx(true);
	
	new AjaxReq("POST", sUrl, aQuery, cart_update_item_callback, oSelect);
}

function cart_update_item_callback(oHttp, oSelect)
{
	var json = oHttp.responseText, data = json.split('#');
		
	if (json == 'refresh') {
		location.href = 'index.php?p=bestilling';
	}
	else {
		if (oSelect) {
			oTable = oSelect.parentNode.parentNode.parentNode;
			oSpan = gA(oTable, 'span')[0];
			if (oSpan) {
				oSpan.firstChild.nodeValue = data[0];
			}
			
			var catalog = oSelect.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByTagName('img')[3];
			catalog.src = data[1];
			
			if (data[2] == 1) {
				lightbox_no_shipping_open();
			}
		}
	
		cart_update_total();
	}
}

function lightbox_get_chkbx(sName)
{
	var oMainFrame = gE('mainFrame'), oChkBxs = gA(oMainFrame, 'input'),
		rArr = new Array();
		
	rArr['value'] = '';
	rArr['checked'] = false;
		
	for (i=0,j=oChkBxs.length;i<j;i++) {
		if (oChkBxs[i].name == sName) {
			rArr['value'] = oChkBxs[i].value;
			rArr['checked'] = oChkBxs[i].checked;
			break;
		}
	}
	
	return rArr;
}

function lightbox_view_image(id, sName)
{
	lightbox_open();
	
	var sUrl = 'lightbox.php', aQuery = [], lightbox = gE('lightbox'), oLinks = gA(lightbox, 'a'),
		oTextSpan = gA(lightbox, 'span')[0];
	aQuery['a'] = id;
	
	if (sName) {
		if (sName == 'cart') {
			var oChkBx = gA(lightbox, 'input')[0];
			oTextSpan.firstChild.nodeValue = 'Du har valgt dette billede til din kurv';
			oChkBx.style['display'] = 'none';
		}
		else {
			oTextSpan.firstChild.nodeValue = 'Bestil dette billede';
		}
		
		for (i=0,j=oLinks.length;i<j;i++) {
			oLinks[i].name = sName;
		}
	}
	
	new AjaxReq("POST", sUrl, aQuery, lightbox_view_image_callback);
}

function lightbox_view_image_callback(oHttp)
{
	var json = oHttp.responseText;
	
	if (json != '') {
		var lightbox_info = json.split('#');
		
		lightbox_load_image(lightbox_info[0], lightbox_info[1], lightbox_info[2]);
	}
}

function lightbox_load_image(url, title, id)
{
	var lightboxphoto = gE('lightboxphoto'), image = new Image();
	
	image.src = ''+url;
	
	if (image.complete) {
		lightbox_load_image_onload(image, title, id); 
	}
	else {
		image.onload = function() { lightbox_load_image_onload(image, title, id); }
	}
}

function lightbox_load_image_onload(image, title, id)
{
	var lightbox = gE('lightbox'), lightbox_image = gA(lightbox, 'img')[0],
		lightboxphoto = gE('lightboxphoto'), boxMargin = Math.floor((image.width+4) / 2),
		lightboximagename = gA(lightbox, 'span')[1], lightboxnavibar = gA(lightboxphoto, 'div')[0],
		chkbxData = [], oChkBx = gA(lightboxphoto, 'input')[0];
	
	lightboxphoto.style['marginLeft'] = '-'+boxMargin+'px';
	lightboxphoto.style['width'] = (image.width+4) + 'px';
	lightboxphoto.style['height'] = (image.height+44) + 'px';
	lightboximagename.firstChild.nodeValue = title;
	lightboxnavibar.style['display'] = 'block';
	
	chkbxData = lightbox_get_chkbx(id);
	oChkBx.value = chkbxData['value'];
	oChkBx.checked = chkbxData['checked'];
	oChkBx.name = id;
	
	lightbox_image.src = image.src;
}

function lightbox_open()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), lightbox_image = gA(lightbox, 'img')[0],
		lightboxphoto = gE('lightboxphoto'), lightboxnavibar = gA(lightboxphoto, 'div')[0],
		docElm = (document.documentElement) ? document.documentElement : document.body,
		intScrollTop = docElm.scrollTop, intOffsetHeight = (docElm.scrollHeight) ? docElm.scrollHeight : docElm.clientHeight;
		
	function get_hostname()
	{
		var arrHostname = window.location.hostname.split('.'), lng = arrHostname.length,
			arrHostname = arrHostname.splice(lng-2, lng-1);
		
		return 'images.'+arrHostname.join('.');
	}

	lightbox_image.src = 'http://'+get_hostname()+'/loading.gif';
	
	//docElm.style['overflow'] = 'hidden';
	//lightbox_bg.style['top'] = intScrollTop+'px';
	lightbox_bg.style['top'] = '0px';
	lightbox_bg.style['height'] = intOffsetHeight+'px';
	lightbox_bg.style['display'] = 'block';
	lightbox_bg.style['filter'] = 'alpha(opacity=80)';
	lightbox_bg.style['opacity'] = 0.8;
	lightbox.style['top'] = intScrollTop+'px';
	lightbox.style['display'] = 'block';
	lightboxnavibar.style['display'] = 'none';
}

function lightbox_prices_open()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_ap_prices'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body,
		intScrollTop = docElm.scrollTop;
		
	docElm.style['overflow'] = 'hidden';
	lightbox_bg.style['top'] = intScrollTop+'px';
	lightbox_bg.style['display'] = 'block';
	lightbox_bg.style['filter'] = 'alpha(opacity=80)';
	lightbox_bg.style['opacity'] = 0.8;
	lightbox.style['top'] = intScrollTop+'px';
	lightbox.style['display'] = 'block';
}

function lightbox_prices_close()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_ap_prices'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body;
		
	docElm.style['overflow'] = 'auto';
	lightbox_bg.style['display'] = 'none';
	lightbox.style['display'] = 'none';
}

function lightbox_terms_open()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_ap_terms'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body,
		intScrollTop = docElm.scrollTop;
		
	docElm.style['overflow'] = 'hidden';
	lightbox_bg.style['top'] = intScrollTop+'px';
	lightbox_bg.style['display'] = 'block';
	lightbox_bg.style['filter'] = 'alpha(opacity=80)';
	lightbox_bg.style['opacity'] = 0.8;
	lightbox.style['top'] = intScrollTop+'px';
	lightbox.style['display'] = 'block';
}

function lightbox_termsX_open()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_ap_termsX'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body,
		intScrollTop = docElm.scrollTop;
		
	docElm.style['overflow'] = 'hidden';
	lightbox_bg.style['top'] = intScrollTop+'px';
	lightbox_bg.style['display'] = 'block';
	lightbox_bg.style['filter'] = 'alpha(opacity=80)';
	lightbox_bg.style['opacity'] = 0.8;
	lightbox.style['top'] = intScrollTop+'px';
	lightbox.style['display'] = 'block';
}

function lightbox_no_shipping_open()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_no_shipping'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body,
		intScrollTop = docElm.scrollTop;
		
	docElm.style['overflow'] = 'hidden';
	lightbox_bg.style['top'] = intScrollTop+'px';
	lightbox_bg.style['display'] = 'block';
	lightbox_bg.style['filter'] = 'alpha(opacity=80)';
	lightbox_bg.style['opacity'] = 0.8;
	lightbox.style['top'] = intScrollTop+'px';
	lightbox.style['display'] = 'block';
}

function lightbox_gift_certificate_open()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_gift_certificate'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body,
		intScrollTop = docElm.scrollTop;
		
	docElm.style['overflow'] = 'hidden';
	lightbox_bg.style['top'] = intScrollTop+'px';
	lightbox_bg.style['display'] = 'block';
	lightbox_bg.style['filter'] = 'alpha(opacity=80)';
	lightbox_bg.style['opacity'] = 0.8;
	lightbox.style['top'] = intScrollTop+'px';
	lightbox.style['display'] = 'block';
}

function lightbox_terms_close()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_ap_terms'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body;
		
	docElm.style['overflow'] = 'auto';
	lightbox_bg.style['display'] = 'none';
	lightbox.style['display'] = 'none';
}

function lightbox_termsX_close()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_ap_termsX'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body;
		
	docElm.style['overflow'] = 'auto';
	lightbox_bg.style['display'] = 'none';
	lightbox.style['display'] = 'none';
}

function lightbox_photoshop_open()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_ap_photoshop'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body,
		intScrollTop = docElm.scrollTop;
		
	docElm.style['overflow'] = 'hidden';
	lightbox_bg.style['top'] = intScrollTop+'px';
	lightbox_bg.style['display'] = 'block';
	lightbox_bg.style['filter'] = 'alpha(opacity=80)';
	lightbox_bg.style['opacity'] = 0.8;
	lightbox.style['top'] = intScrollTop+'px';
	lightbox.style['display'] = 'block';
}

function lightbox_photoshop_close()
{
	var lightbox_bg = gE('lightboxbg'), lightbox = gE('lightbox_ap_photoshop'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body;
		
	docElm.style['overflow'] = 'auto';
	lightbox_bg.style['display'] = 'none';
	lightbox.style['display'] = 'none';
}

function lightbox_close(oThis)
{
	if (oThis) {
		if (typeof(oThis) == "object")
			var lightbox = oThis;
		else if (typeof(oThis) == "string")
			var lightbox = gE(oThis);
	}
	else var lightbox = gE('lightbox');

	var lightbox_bg = gE('lightboxbg'), oLeftFrame = gE('leftFrame'),
		oMainFrame = gE('mainFrame'), docElm = (document.documentElement) ? document.documentElement : document.body;
	
	docElm.style['overflow'] = 'auto';
	lightbox_bg.style['display'] = 'none';
	lightbox.style['display'] = 'none';
}

function lightbox_prev_image(oLink, e, sName)
{
	var oTr = oLink.parentNode.parentNode, oChkBx = gA(oTr, 'input')[0], aQuery = [];
	
	if (sName == 'cart') {
		var sUrl = 'lightbox_change_image_cart.php';
		aQuery['cart'] = true;
	}
	else var sUrl = 'lightbox_change_image.php';
	
	if (window.event) {
		window.event.cancelBubble=true;
	}
	else e.stopPropagation();
	
	aQuery['a'] = oChkBx.name;
	aQuery['c'] = 'prev';
	
	new AjaxReq("POST", sUrl, aQuery, lightbox_change_image_callback);
}

function lightbox_next_image(oLink, e, sName)
{
	var oTr = oLink.parentNode.parentNode, oChkBx = gA(oTr, 'input')[0], aQuery = [];
	
	if (sName == 'cart') {
		var sUrl = 'lightbox_change_image_cart.php';
		aQuery['cart'] = true;
	}
	else var sUrl = 'lightbox_change_image.php';
	
	if (window.event) {
		window.event.cancelBubble=true;
	}
	else e.stopPropagation();
	
	aQuery['a'] = oChkBx.name;
	aQuery['c'] = 'next';
	
	new AjaxReq("POST", sUrl, aQuery, lightbox_change_image_callback);
}

function lightbox_change_image_callback(oHttp)
{
	var json = oHttp.responseText, sData = json.split('#');
	
	if (sData[0] && sData[1] && sData[2]) {
		location.href = 'index.php?p=klasse&id='+sData[1]+'&billede='+sData[0];
	}
	else {
		if (sData[0]) {
			lightbox_view_image(sData[0]);
		}
	}
}

function stop_triggers(e)
{
	if (window.event) {
		window.event.cancelBubble=true;
	}
	else e.stopPropagation();
}

function scroll_basket()
{
	var oBasket = gE('basket'), intScrollTop = (document.documentElement) ? document.documentElement.scrollTop : document.body.scrollTop;
	
	if (oBasket) {
		oBasket.style.top = intScrollTop+'px';
	}
}

function scroll_basketX()
{
	var oBasket = gE('basketX'), intScrollTop = (document.documentElement) ? document.documentElement.scrollTop : document.body.scrollTop;
	
	if (oBasket) {
		oBasket.style.top = (intScrollTop)+'px';
	}
}

function scroll_backet_any()
{
	scroll_basket();
	scroll_basketX();
}

window.onscroll = scroll_backet_any;
