﻿var GrafiskHus = new Object();
GrafiskHus.JavaScript = new Object();

function xAjaxLoader(page, callback)
{
	this.CallbackHandler = callback;

	this.Load = function()
	{
		var url = location.protocol + "//" + location.host + "/" + page + "?rndkey=" + Math.random(100);

		var loader = tsAjax.createInstance("bgsave");
		loader.method="get";
		loader.Poster = this;
		if(this.CallbackHandler != null) loader.callback = this.GenericCallbackHandler;

		if(this.CallbackHandler != null) tsAjax.innerHTML(url,"tsAjax","bgsave",null,null,this.GenericCallbackHandler);
		else return tsAjax.innerHTML(url,null,"bgsave",null,null,null);
	}

	this.GenericCallbackHandler = function()
	{
		if (this.ajaxObj!=null) {
			if (this.ajaxObj.readyState==4) {
				var RT = this.ajaxObj.responseText;

				this.Poster.CallbackHandler(RT);
											
				if (this.statusElement!=null) {this.statusElement.innerHTML = this.statusText_Done;}
				if (this.resultElement!=null) {this.resultElement.innerHTML = RT}
			} else {
			
		}			
		} else {
			var RT = this.IF.innerHTML;
			if (this.statusElement!=null) {this.statusElement.innerHTML = this.statusText_Done;}
			if (this.resultElement!=null) {this.resultElement.innerHTML = RT}
		}
	}
}
GrafiskHus.JavaScript.AjaxLoader = xAjaxLoader;

function xDefaultTexter()
{
  this.Set = function(elmId, text)
  {
    var elm = document.getElementById(elmId);
    if(!elm) return;
    elm.defaultText = text;
    if(elm.value == "") elm.value = text;
    elm.onfocus = this.OnFocusHandler;
    elm.onblur = this.OnBlurHandler;
    elm.form.onsubmit = this.OnSubmitHandler; 
  }
  this.OnFocusHandler = function(e)
  {
    if(this.value == this.defaultText) this.value = "";
  }
  this.OnBlurHandler = function(e)
  {
    if(this.value == "") this.value = this.defaultText;
  }
  this.OnSubmitHandler = function(e)
  {
    var elms = this.getElementsByTagName("input");

    for(var i = 0; i < elms.length; i++)
    {
	if(elms[i].value == elms[i].defaultText) elms[i].value = "";
    }
  }
}
GrafiskHus.JavaScript.DefaultTexter = new xDefaultTexter;

function ReamedAddToBasket(productid, amountId, bevilling, amount) {

var amountElm = document.getElementById(amountId);
var count = (amountElm != null) ? amountElm.value : amount;
URL='/page155.aspx?isbasket=1&pageid=155&listid=-300003&action=add&closeatonce=1&productid='+productid+'&count='+count+'&bevilling='+bevilling;
if (document.getElementById ('MiniBasketPageId'))
  URL=URL+'&minibasket=2&minibasketpageid=6&rnd='+RandomName(4);

tsAjax.innerHTML(URL,'tsAjax','default',null,null,ReamedAddToBasketDone);
}
GrafiskHus.JavaScript.AddToBasket = ReamedAddToBasket;

function ReamedAddToBasketDone() {
if (tsAjax.storage['default'].ajaxObj.readyState==4) {
if (document.getElementById ('MiniBasketPageId')) {
var obj=document.getElementById ('MiniBasketFrame');
obj.src='/page155.aspx?isbasket=1&pageid=155&listid=-300003&minibasketbgload=1&rnd='+RandomName(4);

highlight("#userTools", "#779CB2", true);

}
}
}

function highlight(elm, color, repeat)
{
$(elm).effect('highlight', { color: '#779cb2' }, 800, function() { if(repeat) highlight(elm, color, false); });
}

GrafiskHus.JavaScript.Reorder = function()
{
  var items = false;
  var itemCount = $("#mergefield_main input.orderline").length;

  //productid, amountId, bevilling, amount

  $("#mergefield_main input.orderline").each(function(i, el) {
    var valArr = el.value.split("-");

    //GrafiskHus.JavaScript.AddToBasket(valArr[0], null, valArr[1], valArr[2]);

    var url = '/page155.aspx?isbasket=1&pageid=155&listid=-300003&action=add&closeatonce=1&productid='+valArr[0]+'&count='+valArr[2]+'&bevilling='+valArr[1];
    tsAjax.innerHTML(url, 'tsAjax', 'default' + valArr[0], null, null, null);
    items = true;
  });

  //ReamedAddToBasketDone();

  if(items)
    window.setTimeout(function() { document.location.replace("/Indkøbskurv.155.aspx"); }, (itemCount*500));
  else
    alert("Der blev ikke fundet nogen varer");
}


function Wait(millis) 
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); } 
while(curDate-date < millis);
} 


function ImageGallery(mainContainerId, thumbContainerId)
{
  var mainImg = null;
  var mainLink = null;
  var thumbs = null;

  this.Init = function()
  {
    mainImg = $("#" + mainContainerId + " img")[0];

    if(!mainImg) return;

    mainLink = mainImg.parentNode;
    mainImg.onload = this.ImageLoadHandler;

    thumbs = $("#" + thumbContainerId + " img");

    for(var i = 0; i < thumbs.length; i++)
    {
	thumbs[i].onclick = this.ThumbClickHandler;
	thumbs[i].Gallery = this;
    }
  }

  this.ThumbClickHandler = function(e)
  {
    if(this.className.indexOf("active")==-1)
    {
	mainImg.src = this.src.replace("/thumbs","");

	this.Gallery.ClearActive();
	this.className += " active";
	
	   //mainImg.style.visibility = "hidden";
	mainImg.alt = this.alt;
	mainLink.href = mainImg.src;
    }
  }
  this.ImageLoadHandler = function(e)
  {
	var img = mainImg;
	img.style.display = "none";
	img.style.visibility= "visible";
	$(img).fadeIn("slow");
  }
  this.ClearActive = function()
  {
    for(var i = 0; i < thumbs.length; i++)
    {
	thumbs[i].className = thumbs[i].className.replace(" active","");
    }
  }
}
GrafiskHus.JavaScript.ImageGallery = ImageGallery;

//$(document).ready(function() {
function jqueryInit() {

	// IE7 needs this
	$('#bevillingtip').css({ position: 'absolute' });
	
	$('.login h3:first').click(function(){
		$(this).parent().find('.txt').toggleClass('active').slideToggle();
	});
	
	$('#slider').cycle({ timeout: 8000 });	
	$('#pagelayout-20000002 #productList li').click(function(){ window.location=$(this).find('a:last').attr('href'); return false; });
	
	$('#pagelayout-20000002 #productList li').hover(function(){
		$('img', this).fadeTo(0.5);
	}, function(){
		$('img', this).fadeTo(1);
	});
	
	// Deletes logintooltip if there's something in the basket
	if( $('#shoppingBasket:has(.tabletext)').length > 0 ) $('#bevillingtip').remove();
	$('#sitelayout5 #bevillingtip').remove();
	
	$('#bevillingtip').click(function(){ $(this).fadeOut(); });
	
	// Fixed basket
	var offset = $("#sitelayout5 #MiniBasketDiv").offset();
	if( offset ) {
		var topPadding = 15;
		$(window).scroll(function() {
			if ($(window).scrollTop() > offset.top) {
				$("#MiniBasketDiv").stop().animate({
	    			marginTop: $(window).scrollTop() - offset.top + topPadding
				});
			} else {
				$("#MiniBasketDiv").stop().animate({
	    			marginTop: 0
				});
			};
		});	
	}
	
	// TOOLTIPS (selects all elements with the 'tooltip' attr
	$('[tooltip]').each(function(){
		var tipTitle = $(this).attr('title');
		var tipText = $(this).attr('tooltip');
		var tipContent = '<h3>' + tipTitle + '</h3><p>' + tipText + '</p>';
		$(this).qtip({ 
			content: tipContent,
			position: { target: 'mouse' },
			position: {
				corner: { target: 'rightTop', tooltip: 'leftBottom'},
				adjust: { screen: true }
			},
			style: {
				border: { width: 5, radius: 5, color: '#fd901d'},
				padding: 10,
				tip: true,
				background: '#fff',
				color: '#1a2f5e'
			}			
		});
	});

	// Corners in IE
	$('.abox h3, .abox h4').corner('top 5px');
	$('.abox .txt').corner('bottom 5px')
	
	// Cycle on productdetail
	$('#img #imgMain').cycle({ 
    	speed:  'fast', timeout: 0,
    	pager:  '#img .thumbs', 
    	pagerAnchorBuilder: function(idx, slide) {  
	  	var src = $('img', slide).attr('src');
			if(src != null && src != "")
	  		return '<a href="#"><img src="' + src + '" width="100" height="66" /></a>';
	  	else
	  		return '';
    	} 
	});
	$('#img #imgMain a').fancybox();
	
	
	/* Remove variants if empty */
	$('#files select.hidden').parent().remove();
	$('.addToBasket:odd').addClass('odd');
	$('input[type=submit]').addClass('submit');
	$('#basketPager li:last').addClass('last');
	

	// IE won't expand <option> so..
	$("select#shoppinglist_183").mousedown(function()	{ if($.browser.msie) $(this).css("width","auto"); });
	$("select#shoppinglist_183").change(function()		{ if ($.browser.msie) $(this).css("width","175px"); });
	$("select#shoppinglist_183").blur(function()		{ if ($.browser.msie) $(this).css("width","175px"); });
	
	// Adds better formvalidation
	$('span.formreq').prev().addClass('formreq');
	$('input.formreq').blur(function(){
		if($(this).val() != '') $(this).removeClass('formreq').next('span.formreq').remove();
	})
	
	// Order page
	businessChangeHandler.call($("select#shoppinglist_182"));
	$('select#shoppinglist_182').change(businessChangeHandler);
	var dCheck = $('input#shoppinglist_214');
	deliveryClickHandler.call($(dCheck));
	$(dCheck).click(deliveryClickHandler);
	
}	
//});

//Tangora.Events.AddHandler(window,"onload", jqueryInit);

function businessChangeHandler(e) {
		var val = $(this).val();
		
		if (val == 15)
		{
			$('tr.businessUser').slideDown('fast', function(){
				$(this).css({ display: 'table-row' });
			});
			$("#birthday").slideUp('fast').attr("disabled","disabled");
		}
		if (val != 15)
		{
			$('tr.businessUser').slideUp();
			$('#birthday').slideDown('fast').attr("disabled","");
		}
}

function deliveryClickHandler(e) {
		var dContent = $('tr.deliveryAddress');
		
		if( $(this).is(':checked') ){
			$('input', dContent).removeAttr('disabled');
			$(dContent).slideDown('normal', function(){
				$(this).css({ display: 'table-row' });
			});
		} else {
			$(dContent).slideUp('normal');
			$('input', dContent).attr('disabled', 'disabled');
		}
}

//$.fn.superMightyDragonFx =  function(el) {
var superMightyDragonFx =  function(el) {
	var basket = $('#shoppingBasket h3:first');
	var offset = basket.offset();
	var img = $('#imgMain img');
	var imgOffset = $(img).offset();
	var diff = offset.top - imgOffset.top;
	$(img).clone().appendTo('#imgMain').css({ position: 'absolute', height: '240px'}).animate({ 
			left: '490px', top: diff,
			width: '30px', height: '20px',
			opacity: 1
		}, 1000, function(){
			$(this).remove();
		}
	);
};
