var JSOpen = window.opener ? true:false;
var hasPrint = (window.print) ? true : false;

function lib_bwcheck(){
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}

var bw=new lib_bwcheck()

function openLink(linkAdress){
	if (String(linkAdress).length > 1 || linkAdress == '/'){
		if (JSOpen){
			if (window.opener != null){
				if (bw.ns6){
					window.opener.location = linkAdress;
					window.opener.focus();
				}else if(!window.opener.closed){
					window.opener.location = linkAdress;
					window.opener.focus();
				}else{
					window.opener = window.open(linkAdress,"_blank");
					window.opener.focus();
				}								
			}else{
				window.opener = window.open(linkAdress,"_blank");
				window.opener.focus();
			}
		}else
		{
			window.location = linkAdress;
		}
	}
}

function toggleDiv(id1, id2)
{
    var div1 = document.getElementById(id1);
    var div2 = document.getElementById(id2);

    if(div2.className == 'faqAnswerCollapsed'){
        div2.className = 'faqAnswerExpanded';
        div1.className = 'faqTitleExpanded';
    }else{
        div2.className = 'faqAnswerCollapsed';
        div1.className = 'faqTitleCollapsed';
    }
}

function setCookie(name, value, expires, path, domain, secure) 
{  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;}
function getCookie(name) 
{ var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

/// uses X, cross-browser library (cross-browser.com) (GNU LGPL)
function bannerNavigate(url, name, newWin)
{
	if(typeof Instadia_sendEvent == 'function') 
	{
		Instadia_sendEvent('0113y','User clicked # Banner ' + name + '');
	}
	
	if(newWin)
		window.open(url);
	else
		document.location.href = url;
}

function getAspNetFormElementByName(name)
{
	return document.forms[0].elements[name];
}

function hasClass(el,c) 
{
	var re = new RegExp('\\b'+c+'\\b', 'i');
	var el = xGetElementById(el);
    return el && re.test(el.className);
}

function removeClassName(el,c)
{
	el = xGetElementById(el);
	if ( el && c != null && c.length > 0 && el.className.length > 0 )
	{
		var re = new RegExp('\\b'+c+'\\b', 'ig');
		el.className = el.className.replace(re, "").trim();
	}
}

function addClassName(el,c) 
{
	el = xGetElementById(el);
	if ( !hasClass(el) ) { el.className = (el.className + " " + c).trim();}
}

function addHoverClassName(el, c)
{
	el = xGetElementById(el);
	if ( el )
	{
		xAddEventListener(el,"mouseover",function(){addClassName(el,c);});
		xAddEventListener(el,"mouseout",function(){removeClassName(el,c);});
	}
}

function getAttribute(el, name)
{
    var attr = el.getAttribute(name);
    return attr ? attr : el[name];
}

function unselectable(el)
{
	el = xGetElementById(el);
	if (el)
	{
		el.style.MozUserSelect = "none";
		el.style.KhtmlUserSelect = "none";
		el.style.userSelect = "none";
		el.unselectable = "on"; 
	}
}

function setOverflow(el, y, x)
{
	el = xGetElementById(el);
	if (el)
	{
		if (y&&x)
		{
			el.style.overflow = "auto";
		}
		else if (y)
		{
			if (xGecko) el.style.overflow = "-moz-scrollbars-vertical";
			el.style.overflowY = "auto";
			el.style.overflowX = "hidden";
		}
		else if (x)
		{
			if (xGecko) el.style.overflow = "-moz-scrollbars-horizontal";
			el.style.overflowX = "auto";
			el.style.overflowY = "hidden";
		}
		else 
		{
			el.style.overflow = "hidden";
		}
	}
}

function setOpacity(el,val) {
    if (el.filters) { try { el.filters['alpha'].opacity = val*100; } catch(e){} } 
    else if (el.style.opacity) { el.style.opacity = val; }
}

function dispatchEvent(el, name, bubbles, cancelable) 
{
	bubbles = bubbles || true;
	cancelable = cancelable || true;
	
	if ( document.createEvent && el.dispatchEvent ) 
	{
		var e = document.createEvent("HTMLEvents");
		e.initEvent(name, bubbles, cancelable); 
		el.dispatchEvent(e); 
	} 
	else if (el.fireEvent)  
	{ 
		var e = document.createEventObject();
		e.cancelBubble = bubbles;
		el.fireEvent("on" + name, e); 
	}
	else if ( eval("el.on" + name) ) 
	{ 
		eval("el.on" + name + "()"); 
	}
}

/**************************************
/* ARRAY EXTENSIONS
/**************************************/
if (!Array.prototype.push) Array.prototype.push = function() 
{
    for (var i=0; i<arguments.length; i++) this[this.length] = arguments[i];
    return this.length;
}

if (!Array.prototype.find) Array.prototype.find = function(value, start) 
{
    start = start || 0;
    for (var i=start; i<this.length; i++)
        if (this[i]==value)
            return i;
    return -1;
}

if (!Array.prototype.has) Array.prototype.has = function(value) 
{
    return this.find(value)!==-1;
}


/**************************************
/* STRING EXTENSIONS
/**************************************/
String.prototype.trim = function() { 
	return this.replace( /^\s+|\s+$/, "" ); 
}


/**************************************
/* FUNCTIONAL
/**************************************/
function map(arr, func) {
    var result = [];
    func = func || function(v) {return v};
    for (var i=0; i < arr.length; i++) result.push(func(arr[i], i, arr));
    return result;
}

function filter(arr, func) {
    var result = [];
    func = func || function(v) {return v};
    map(arr, function(v) { if (func(v)) result.push(v) } );
    return result;
}

/**************************************
/* POP-UP FUNCTIONS
/**************************************/
var _POPUP_FEATURES = "";

// pops up a window containing url optionally named target, optionally having features
function raw_popup(url, target, features) 
{
   	// Set parent window name - for easy reference from popup
   	if ( window.name.length <= 0 )
	   	window.name = "ArlaOrginal";

    if ( !xDef(features) ) {
		features = _POPUP_FEATURES;
	}
    if ( !xDef(target) ) {
		target   = '_blank';
	}
    var popupWindow = window.open(url, target, features);
    popupWindow.focus();
    return popupWindow;
}

function link_popup(src, features) 
{
    return raw_popup(src.getAttribute('href'), src.getAttribute('target') || '_blank', features);
}

function event_popup(e) 
{
    link_popup(e.target || event.srcElement);
    xPreventDefault(e);
}

function event_popup_features(features) 
{
    return function(e) { link_popup( findParentLink(e.target || event.srcElement), features); xPreventDefault(e); };
}

function findParentLink(el)
{
	if (el == null) return null;
	if ( el.tagName == "A" ) return el;
	return findParentLink(el.parentNode);
}

function linksAsPopup(target, features) 
{
	var callback = function(el) { xAddEventListener(el, "click", event_popup_features(features)); };
	xGetElementsByAttribute("a", "target", "^" + target + "$", callback);
}

/**************************************
/* POSITION FUNCTIONS
/**************************************/

function absoluteLeft(el)
{
	return el ? xOffsetLeft(el) + absoluteLeft(el.offsetParent) : 0;
}

function absoluteTop(el)
{
	return el ? xOffsetTop(el) + absoluteTop(el.offsetParent) : 0;
}

/**************************************
/* PRINT DOCUMENT
/**************************************/
function PrintDocument(id, footer) {
	var pr = window.print ? true : false;

	id = id || "Content";
	var printArea = xGetElementById(id);

	// printdocument header
	var sStart = "<html><head>";
	sStart += "<link rel=\"stylesheet\" type=\"text/css\" href=\"/Styles/Base.css\" >";
	sStart += "<link rel=\"stylesheet\" type=\"text/css\" href=\"/Styles/Forms.css\" >";
	sStart += "<link rel=\"stylesheet\" type=\"text/css\" href=\"/Styles/Framework.css\" >";
	sStart += "<link rel=\"stylesheet\" type=\"text/css\" href=\"/Styles/Templates.css\" >";
	sStart += "<link rel=\"stylesheet\" type=\"text/css\" href=\"/Styles/Blocks.css\" >";
	sStart += "</head><body class=\"Print\"><div id=\"PrintContent\">\n";
	// printdocument footer
	var sEnd = "";
	if ( xDef(footer) && footer.length > 0 )
		sEnd += "<div id=\"PrintFooter\">" + footer + "</div>";
	sEnd += "</div></body></html>";
	
	// set printwindow size;
	var wWidth = 500;
	var wHeight = (screen.height > 0) ? screen.height-200 : 500;
	var wTop = 50;
	var wLeft = (screen.width > 0) ? (screen.width-wWidth)/2 : 100;
	
	var browser = window.open('','printWin','top='+wTop+',left='+wLeft+',width='+wWidth+',height='+wHeight+',menubar=yes,scrollbars=yes,toolbar=yes');
	browser.document.writeln(sStart);
	browser.document.writeln(printArea.innerHTML + "\n") ;
	browser.document.writeln(sEnd);
	browser.document.close();

	if (pr) browser.print();
}


/**************************************
/* TOGGLE BOX
/**************************************/
function toggleToggleBox(box,state,className)
{
	toggleClassName(box, className);
	state = xGetElementById(state);
	if ( state != null )
		state.value = state.value == "0" ? "1" : "0";
}

function ToggleBox_Init()
{
	for( var i=0; i<ToggleBoxes.length; i++ ) 
	{
		var o = ToggleBoxes[i];
		var box		= xGetElementById();
		var state	= xGetElementById(o.state);
		if ( state != null && state.value == "1" )
			addClassName(o.box, o.className);
	}
}

function toggleClassName(el, c)
{
	el = xGetElementById(el);
	if ( hasClass(el, c) ) 
		removeClassName(el, c);
	else
		addClassName(el, c);
}


/*****************************
/* Own Menu Rename Functions
/*****************************/
function toggleRenameBlock(block)
{
	obj=xGetElementById(block);
	if(obj!=null)
	{
		if(obj.style.display=='none')
		{
			obj.style.display='block';
		}
		else
		{
			obj.style.display='none';
		}
	}
}
/*****************************
/* Make your own cookbook page
/*****************************/
function popCookbook()
{
	window.open('about:blank','cookbookpage'); 
	saveWebInstance();
	document.getElementById("CookBookForm").submit();
	return true;
}

function getWebInstance()
{
	if(window.getCookie)
	{
		return getCookie("webinstanceid");
	}
	
	return null;
}

function saveWebInstance()
{
	if(window.setCookie)
	{
		if(document.location.href.toLowerCase().indexOf('www.') > 0)
			return;
			
		instanceid = document.location.href.toLowerCase().match(/www(\d)\./)[1];
		var date = new Date();
		date.setTime(date.getTime()+(6*60*60*1000));//save for 6 hours
		setCookie("webinstanceid", instanceid, date, null, ".arla.se", false);
	}
}

function ensureSameInstace()
{
	if(document.location.href.toLowerCase().indexOf('www.') > 0)
	{
		var webInstance = getWebInstance();
		if(webInstance)
		{
			document.location.href = document.location.href.replace('www.','www' + webInstance + '.');
		}
	}
}

/*****************************
/* Popupscript frukostbanner
/*****************************/
function createPop(mypage)
{
            myleft=(screen.width)?(screen.width-400)/2:100;
            mytop=(screen.height)?(screen.height-500)/2:100;

            settings="width=400,height=500,top=" + mytop + ",left=" + myleft + ",scrollbars=yes,toolbar=no,resizable=no ";
            win=window.open("http://public.dread.se/fb/arlabanner_f7/" + mypage,'Frukost',settings);

            win.focus();

}
/*****************************
/* Popupscript frukostbanner
/*****************************/

//Close confirmation box
function closeConfirmation() {
	$('#ConfirmationBox').fadeOut('slow');
}

//Graph help
function enable_graphHelp() {
    $("#graphHelpTrigger").bind("click", graphHelp_open);
    //enable close on document click
    $(document).click(function() {
        graphHelp_close();
    });
}

//Open graph help
var graphHelp = null;
function graphHelp_open() {
    if (graphHelp) {
        $(this).removeClass('on');
        graphHelp_close();
        return false;
    }
    else {
        $(this).addClass('on');
        graphHelp = $("#graphHelpContent").show();
        return false;
    }
}
//Close graph help
function graphHelp_close() {
    if (graphHelp) {
        graphHelp.hide();
        graphHelp = null;
        $("#graphHelpTrigger").removeClass('on');
    }
}