//
// Variables
//

var gridViewClass = 'GridView';
var textBoxClass = 'TextBox';    
var warningMin = 25; // sessing timeout warning in minutes
var timeoutMin = 30; // session timeout in minutes
var winId;


//
// Functions
//

// Initialize on body OnLoad
function init() {
    // Prevent IE script errors from calling init() without an argument
    init(null);
}


// Initialize on body OnLoad
function init(setTimeoutWarning)
{    
    // Disable the enter key in 
    var refGridviews = new Array();
    refGridviews = getElementsByClassName(getObj('main'), 'table', gridViewClass);
    for(var i = 0; i < refGridviews.length; i++)
    {
        var refTextboxes = new Array();
        refTextboxes = getElementsByClassName(refGridviews[i], 'input', textBoxClass);
        for(var j = 0; j < refTextboxes.length; j++)
        {
            refTextboxes[j].onkeydown = disableEnterKey;
        }
    }
    
    // Set 50 mins warning prior to the 60 minutes session timeout 
    if(setTimeoutWarning != null && setTimeoutWarning == true)
    {
        var timeoutMs = 1000 * 60 * warningMin; 
        var warningMsg = "Denne side har v\u00E6ret inaktiv i " + warningMin + " minut" + (warningMin > 1 ? "ter" : "") + ". Hvis du har indtastninger der ikke er gemt, b\u00F8r du gemme disse nu for at undg\u00E5 at det g\u00E5r tabt, idet du vil blive logget ud automatisk efter yderligere " + (timeoutMin - warningMin) + " minut" + ((timeoutMin - warningMin) > 1 ? "ter" : "") + ".";
        window.setTimeout(function() { alert(warningMsg); }, timeoutMs);
    }
    
}



//
// Helper functions
//

// Get the object from id
function getObj(id)
{
	return document.getElementById(id);
}

function getQueryStringForUrl()
{
    var quesrysting = window.location.search.substring(0);
    if(quesrysting != null && quesrysting != "")
        return quesrysting;
    else
        return "";
}

// OnKeyPress
function disableEnterKey(e) 
{
    var code = e ? e.which : window.event.keyCode;
    return code != 13;
}

//get absolute left for object
function getAbsLeft(obj) { 
	var iY = 0; 
	if(obj)
		while(obj.offsetParent){ 
			iY += parseInt(obj.offsetLeft);
			obj = obj.offsetParent;  
		} 
	return iY; 
} 

// Get absolute top for object
function getAbsTop(obj) {  
	var iX = 0; 
	if(obj)
		while(obj.offsetParent){ 
			iX += parseInt(obj.offsetTop);  
			obj = obj.offsetParent;  
		} 
	return iX
}

// Popup window
function popUp(url,nam,w,h,extra)
{		
	str = 'height=' + h + ',width=' + w + ',' + extra;
	if(parseInt(navigator.appVersion) > 3)
		str += ',left=' + (screen.width - w) / 2 + ',top=' +parseInt((screen.height - h) / 3);			
	winId = this.window.open(url, nam, str);			
}	

// Sorts any listbox
function sortListBox(objListbox)
{
	var x;
	var temparr = new Array(objListbox.options.length);
	for(x = 0; x < objListbox.options.length; x++)
		temparr[x] = objListbox.options[x].value + "||" + objListbox.options[x].text + "||" + objListbox.options[x].className;
	temparr.sort();
	for(x = 0; x < temparr.length; x++)
	{
		optionArr = temparr[x].split("||")
		objListbox.options[x] = new Option(optionArr[1],optionArr[0]);	
		objListbox.options[x].className = optionArr[2];
	}
}

// Create a cookie
function createCookie(name, value, days)
{
    var expires = "";
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		expires = "; expires="+date.toGMTString();
	}
	document.cookie = name+"="+value+expires+"; path=/";
}

// Read a cookie
function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

// Delete a cookie
function deleteCookie(name)
{
	createCookie(name,"",-1);
}

// Trims a string
function trim(str)
{
    while (str.substring(0,1) == ' ')
    {
        str = str.substring(1, str.length);
        while (str.substring(str.length-1, str.length) == ' ')
            str = str.substring(0,str.length-1);
    }
    return str;
}

// Gets all child elements with a specific class name
function getElementsByClassName(obj, strTagName, strClassName)
{
	var arrElements = (strTagName == "*" && obj.all)? obj.all : obj.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();	
	var r = 0;
    for(var i = 0; i < arrElements.length; i++)
	{
		if(arrElements[i].className.indexOf(strClassName) > -1)
			arrReturnElements[r++] = arrElements[i];
	}
	
	return (arrReturnElements)
}

// Format Data
function getDateFormatted(format)
{
    var Days = new Array('S\u00F8ndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','L\u00F8rdag');
	
    var today = new Date();
    var Year = takeYear(today);
    var Month = leadingZero(today.getMonth()+1);
    var DayName = Days[today.getDay()];
    var Day = leadingZero(today.getDate());
    var Hours = leadingZero(today.getHours());
    var Minutes = leadingZero(today.getMinutes());
    var Seconds = leadingZero(today.getSeconds());
    
    if(format == 'dd-MM-yyyy')
        return Day + '-' + Month + '-' + Year;
    else
        return today.valueOf();    
}
function leadingZero(nr)
{
	if (nr < 10) nr = "0" + nr;
	return nr;
}
function takeYear(theDate)
{
	x = theDate.getYear();
	var y = x % 100;
	y += (y < 38) ? 2000 : 1900;
	return y;
}

// Compose mailto: link and activate it
function ShowTestEmail(from, to, subject, body, bcc) {

    // DEBUG
    //alert('Bliver vi kaldt her?');

    // %0A will correctly display a newline in Outlook
    var tempBody = body.replace(/#/g, "%0A");
    var mailto;


    if (bcc.length > 0) {
        // Include Bcc addresses
        mailto = "mailto:" + to +
                        "?from=" + from +
                        "&bcc=" + bcc +
                        "&subject=" + subject +
                        "&body=" + tempBody;
    }
    else {
        // No Bcc addresses
        mailto = "mailto:" + to +
                        "?from=" + from +
                        "&subject=" + subject +
                        "&body=" + tempBody;
    }

    document.location.href = mailto;
}

