var downloadImg = new Image();
downloadImg.src = '/gfx/icons/icon-wait-red-31x31.gif';

var dDate = new Date();
var dCurMonth = dDate.getMonth();
var dCurDayOfMonth = dDate.getDate();
var dCurYear = dDate.getFullYear();
var objPrevElement = new Object();
var datedrop = "";

var myMonths = new Array(11);
myMonths[0] = "Januar";
myMonths[1] = "Februar";
myMonths[2] = "Marts";
myMonths[3] = "April";
myMonths[4] = "Maj";
myMonths[5] = "Juni";
myMonths[6] = "Juli";
myMonths[7] = "August";
myMonths[8] = "September";
myMonths[9] = "Oktober";
myMonths[10] = "November";
myMonths[11] = "December";

function fSetSelectedDay(myElement){
	if (myElement.id == "calCell") {
		if (!isNaN(parseInt(myElement.children["calDateText"].innerText))) {
			document.all.calSelectedDate.value = parseInt(myElement.children["calDateText"].innerText);
			objPrevElement = myElement;
		}
   	}
}
function fGetDaysInMonth(iMonth, iYear) {
var dPrevDate = new Date(iYear, iMonth, 0);
return dPrevDate.getDate();
}
function fBuildCal(iYear, iMonth, iDayStyle) {
var aMonth = new Array();
aMonth[0] = new Array(7);
aMonth[1] = new Array(7);
aMonth[2] = new Array(7);
aMonth[3] = new Array(7);
aMonth[4] = new Array(7);
aMonth[5] = new Array(7);
aMonth[6] = new Array(7);
var dCalDate = new Date(iYear, iMonth-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
var iVarDate = 1;
var i, d, w;
if (iDayStyle == 2) {
aMonth[0][0] = "Søndag";
aMonth[0][1] = "Mandag";
aMonth[0][2] = "Tirsdag";
aMonth[0][3] = "Onsdag";
aMonth[0][4] = "Torsdag";
aMonth[0][5] = "Fredag";
aMonth[0][6] = "Lørdag";
} else if (iDayStyle == 1) {
aMonth[0][0] = "Søn";
aMonth[0][1] = "Man";
aMonth[0][2] = "Tir";
aMonth[0][3] = "Ons";
aMonth[0][4] = "Tor";
aMonth[0][5] = "Fre";
aMonth[0][6] = "Lør";
} else {
aMonth[0][0] = "Sø";
aMonth[0][1] = "Ma";
aMonth[0][2] = "Ti";
aMonth[0][3] = "On";
aMonth[0][4] = "To";
aMonth[0][5] = "Fr";
aMonth[0][6] = "Lø";
}
for (d = iDayOfFirst; d < 7; d++) {
aMonth[1][d] = iVarDate;
iVarDate++;
}
for (w = 2; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (iVarDate <= iDaysInMonth) {
aMonth[w][d] = iVarDate;
iVarDate++;
      }
   }
}
return aMonth;
}
function fDrawCal(iYear, iMonth, iCellWidth, iCellHeight, sDateTextSize, sDateTextWeight, iDayStyle) {
var myMonth;
myMonth = fBuildCal(iYear, iMonth, iDayStyle);
document.write("<table id='calendarTable'>")
document.write("<tr>");
document.write("<td align='center' class='day'>" + myMonth[0][0] + "</td>");
document.write("<td align='center' class='day'>" + myMonth[0][1] + "</td>");
document.write("<td align='center' class='day'>" + myMonth[0][2] + "</td>");
document.write("<td align='center' class='day'>" + myMonth[0][3] + "</td>");
document.write("<td align='center' class='day'>" + myMonth[0][4] + "</td>");
document.write("<td align='center' class='day'>" + myMonth[0][5] + "</td>");
document.write("<td align='center' class='day'>" + myMonth[0][6] + "</td>");
document.write("</tr>");
for (w = 1; w < 7; w++) {
	document.write("<tr>")
	for (d = 0; d < 7; d++) {
		document.write("<td align='right' valign='top' class='calCell' id='calCell' onclick='returnDay(this)'>");
		if (!isNaN(myMonth[w][d])) {
			document.write("<div id='calDateText' class='calDateText' onclick='returnDay(this)'>" + myMonth[w][d] + "</div>");
		} else {
			document.write("<div id='calDateText' class='calDateInactive'>&nbsp;</div>");
		}
		document.write("</td>")
	}
	document.write("</tr>");
}
document.write("</table>")
}

function fUpdateCal(iYear, iMonth) {
	myMonth = fBuildCal(iYear, iMonth);
	objPrevElement.bgColor = "";
	document.all.calSelectedDate.value = "";
	for (w = 1; w < 7; w++) {
		for (d = 0; d < 7; d++) {
			if (!isNaN(myMonth[w][d])) {
				calDateText[((7*w)+d)-7].innerHTML = myMonth[w][d];
				calDateText[((7*w)+d)-7].className = 'calDateText';
			}
			else {
				calDateText[((7*w)+d)-7].innerHTML = "&nbsp;";
				calDateText[((7*w)+d)-7].className = 'calDateInactive';
         }
      }
   }
}

// fSetSelectedDay(this)

// findPosX(this),FIXY,findPosY(this)+14

function showCalendar(e,myDrop,xoffset,yoffset) {
	datedrop = myDrop;
//	myDrop ? datedrop = myDrop : datedrop = "kundestat";
	xoffset ? xoffset = xoffset : xoffset = 0;
	yoffset ? yoffset = yoffset : yoffset = 0;
	document.getElementById('calendarDiv').style.display = 'block';
	document.getElementById('calendarDiv').style.visibility = 'visible';
	if (datedrop.substr(0,10) != 'kundestats') {
		document.getElementById('calendarDiv').style.pixelLeft = findPosX(document.getElementById(myDrop))+xoffset;
		document.getElementById('calendarDiv').style.pixelTop = findPosY(document.getElementById(myDrop))+yoffset;
	} else {
		document.getElementById('calendarDiv').style.pixelLeft = e.clientX; //findPosX(document.getElementById(myDrop))+xoffset;
		document.getElementById('calendarDiv').style.pixelTop = e.clientY; //findPosY(document.getElementById(myDrop))+yoffset;
	}
	return false;
}

function closeCalendar() {
	document.getElementById('calendarDiv').style.visibility='hidden';
	return false;
}

function returnDay(myElement) {
	var myDate = parseInt(myElement.innerText);
	if (datedrop.substr(0,10) == 'kundestats') {
		// set new date and load kundestat page
		if (!isNaN(myDate)) {
			if (datedrop.substr(0,14) == 'kundestats:FRA') {
				document.location.href='/kunder/index.asp?act=statistik/job/'+
				myDate + "." +
				(parseInt(document.getElementById('tbSelMonth').value)+1) + "." +
				document.getElementById('tbSelYear').value + '/' +
				datedrop.substr(14,10);
			} else {
				document.location.href='/kunder/index.asp?act=statistik/job/'+
				datedrop.substr(14,10) + '/' +
				myDate + "." +
				(parseInt(document.getElementById('tbSelMonth').value)+1) + "." +
				document.getElementById('tbSelYear').value;
			}
			// hide calendar
			document.getElementById('calendarMainDiv').style.visibility = 'hidden';
			document.getElementById('calendarAlertDiv').style.visibility = 'visible';
			document.getElementById('calendarAlertDiv').innerHTML = '<div class="waitImage"><img src="'+downloadImg.src+'" width="31" height="31" /><br />Henter data...</div>';
		}
	}
	else
	{
		// set relevant object by value
		if (!isNaN(myDate)) {
		    var tmpVal;
		    if (myDate < 10) { myDate = '0'+myDate; }
		    tmpVal = parseInt(document.getElementById('tbSelMonth').value)+1;
		    if (tmpVal < 10) { tmpVal = '0'+tmpVal; }
			myDate = myDate + "." + tmpVal + "." + document.getElementById('tbSelYear').value;
			document.getElementById(datedrop).value = myDate;
		}
		// hide calendar
		document.getElementById('calendarDiv').style.visibility = 'hidden'; 

		if (!(e=xGetElementById('jobAntalByDate'))) {
			return true;
		} else {
		    document.frames('ajaxFrame').location.href='/ajax.asp?act=jobantal&oprettet='+myDate;
		}
	}
}

function goBack() {
	var myMonth = document.getElementById("tbSelMonth").value;
	var myYear = document.getElementById("tbSelYear").value;
	if (myMonth == 0) {
		myMonth = 11;
		myYear = myYear-1;
	}
	else {
		myMonth = myMonth-1; 
	}
	// update calendar with new values of year/month
	document.getElementById("showMyDate").innerHTML = myMonths[myMonth] + " " + myYear;
	document.getElementById("tbSelMonth").value = myMonth;
	document.getElementById("tbSelYear").value = myYear;
	fUpdateCal(myYear, myMonth+1);
	return false;
}

function goForth() {
	var myMonth = parseInt(document.getElementById("tbSelMonth").value);
	var myYear = parseInt(document.getElementById("tbSelYear").value);
	if (myMonth == 11) {
		myMonth = 0;
		myYear = myYear + 1;
	}
	else {
		myMonth = myMonth + 1; 
	}
	// update calendar with new values of year/month
	document.getElementById("showMyDate").innerHTML = myMonths[myMonth] + " " + myYear;
	document.getElementById("tbSelMonth").value = myMonth;
	document.getElementById("tbSelYear").value = myYear;
	fUpdateCal(myYear, myMonth+1);
	return false;
}

function xPageX(e) {
	if (!(e=xGetElementById(e))) return 0;
	var x = 0;
	while (e) {
	if (xDef(e.offsetLeft)) x += e.offsetLeft;
	e = xDef(e.offsetParent) ? e.offsetParent : null;
	}
	return x;
}
function xPageY(e) {
	if (!(e=xGetElementById(e))) return 0;
	var y = 0;
	while (e) {
	if (xDef(e.offsetTop)) y += e.offsetTop;
	e = xDef(e.offsetParent) ? e.offsetParent : null;
	}
	return y;
}
// xGetElementById r2, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xGetElementById(e)
{
  if(typeof(e)=='string') {
    if(document.getElementById) e=document.getElementById(e);
    else if(document.all) e=document.all[e];
    else e=null;
  }
  return e;
}
// xDef r1, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xDef()
{
  for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
  return true;
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
