// Javascript functions for the user interface
//
// Author : 2000-03-09 Mattias Jonsson
//
var m_bIsChanged = false;
var m_nLastImage = -1;
var m_nId = '';
//var m_sName;
var m_sObjectTypeTag = '';

function getMagicNumber()
{
	// Magic number is used for avoid client caching
	var magic_number, date;
	
	date = new Date();
	magic_number = date.toGMTString();

	return magic_number;
}

function selectedItem(nId, sName, nImg) 
{
	// Tell framework which id that is selected
	parent.setSelected(nId, sName);
	//m_nId = nId;
	//m_sName = sName;
	
	// Clear the last image
	if (m_nLastImage != -1)	
	{
		document.images[m_nLastImage].src = '../../../Global/Images/admin/vit_plus.gif';
	}
	// Set the new image
	m_nLastImage = nImg;
	document.images[m_nLastImage].src = '../../../Global/Images/admin/gul_plus.gif';
}

function selectedCheckedItem(nId, sName, nImg) 
{
	m_nId = nId;
	m_sName = sName;
	var text; 
	var result;
	
	// Clear the last image
	if (m_nLastImage != -1)	
	{
		text = document.images[m_nLastImage].src;
		result = text.match('CheckedOut');
	
		if(result != null)
		{
			document.images[m_nLastImage].src = '../../../Global/Images/CheckedOut.gif';
		}else{
			
			result = text.match('green_dot');
			
			if(result != null)
			{
				document.images[m_nLastImage].src = '../../../Global/Images/green_dot.gif';
			}else{
				document.images[m_nLastImage].src = '../../../Global/Images/CheckedIn.gif';
			}
		}
	}
	// Set the new image
	m_nLastImage = nImg;
	
	text = document.images[m_nLastImage].src;
	result = text.match('CheckedOut');
	
	if(result != null)
	{
		document.images[m_nLastImage].src = '../../../Global/Images/CheckedOut_sel.gif';
		parent.frames[2].Form._Edit.disabled = false;
		parent.frames[2].Form._Delete.disabled = false;
		parent.frames[2].Form._Picture.disabled = false;
		parent.frames[2].Form._Check.disabled = false;
	}else{
	
		result = text.match('green_dot');
		
		if(result != null)
		{ 	
			document.images[m_nLastImage].src = '../../../Global/Images/green_dot.gif';
			parent.frames[2].Form._Edit.disabled = true;
			parent.frames[2].Form._Delete.disabled = true;
			parent.frames[2].Form._Picture.disabled = true;
			parent.frames[2].Form._Check.disabled = false;
		}else{
			document.images[m_nLastImage].src = '../../../Global/Images/CheckedIn.gif';
			parent.frames[2].Form._Edit.disabled = true;
			parent.frames[2].Form._Delete.disabled = true;
			parent.frames[2].Form._Picture.disabled = true;
			if(isUserAdmin()){
				parent.frames[2].Form._Check.disabled = false;
			}else{
				parent.frames[2].Form._Check.disabled = true;
			}
		}
	}
}

function ContinueCheck()
{
	if (IsChanged() == true)
		return confirm('Uppgifterna är inte sparade! Vill du fortsätta utan att spara?');
	else
		return true;
}

function IsChanged()
{
	return m_bIsChanged;
}

function SetChanged()
{
	m_bIsChanged = true;
	parent.saveState(false);
}

function IsValidTime(timeStr)
{
	var nPos = 0;
	var sTmp = '';

	// Checks for the following valid time format:
	// Also separates time into hour and minute variables

	// TT:MM
	var timePat = /^(\d{2})(\:)(\d{2})$/;
	
	var matchArray = timeStr.match(timePat); // is the format ok?

	if (matchArray == null) 
	{
		alert("Tidsangivelsen är inte i korrekt format 'TT:MM'.")
		return false;
	}

	var hour = matchArray[1]; // parse time into variables
	var minute = matchArray[3];
	
	if (hour < 0 || hour > 23)  // check hour range
	{
		alert("Timmar måste vara mellan 00 och 23.");
		return false;
	}

	if (minute < 0 || minute > 59)  // check minute range
	{
		alert("Minuter måste vara mellan 00 och 59.");
		return false;
	}
	return true;  // time is valid
}

function IsValidDate(dateStr) 
{
	// Checks for the following valid date formats:
	// Also separates date into month, day, and year variables

	// YYYY-MM-DD
	var datePat = /^(\d{4})(\-)(\d{2})(\-)(\d{2})$/;

	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null) 
	{
		alert("Datumet är av felaktigt format.")
		return false;
	}

	var year = matchArray[1]; // parse date into variables
	var month = matchArray[3]; 
	var day = matchArray[5];
	
	if (month < 1 || month > 12)  // check month range
	{
		alert("Månaden måste vara mellan 1 och 12.");
		return false;
	}
	
	if (day < 1 || day > 31) 
	{
		alert("Dagen måste vara mellan 1 och 31.");
		return false;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) 
	{
		alert("Månaden "+month+" har inte 31 dagar!")
		return false
	}
	
	if (month == 2) 
	{ // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) 
		{
			alert("Februari " + year + " har inte " + day + " dagar!");
			return false;
		}
	}
	return true;  // date is valid
}


function ListBox()
{
	this.arrObjectIdAdd = new Array()
	this.arrObjectIdRemove = new Array()
}

function AddToListBox(oArrayObj, oFromListBox, oToListBox)
{
	var sItemName = '';
	var nItemId = 0;
	var nIndex = 0;
	var nLength = 0;
	var i = 0;
	var nFoundAtPos = -1;
  
	nIndex = oFromListBox.selectedIndex;

	if (nIndex != -1 && oFromListBox.options[nIndex].value != "")
	{
		nItemId = oFromListBox.options[nIndex].value;
		sItemName = oFromListBox.options[nIndex].text;
	}
	else
	{
		return alert('No Item selected!');
	}

	//Check if item already exists in select list
	nLength = oToListBox.length;
	
	for (i=0; i<nLength; i++)	
	{
		if (nItemId == oToListBox.options[i].value)
		{
			return alert(sItemName + ' already exists!');
		}
	}
	
	// Check if Item already exists in Remove array. If it does. Remove it
	nLength = oArrayObj.arrObjectIdRemove.length
	for (i=0; i < nLength; i++)	
	{
		if (nItemId == oArrayObj.arrObjectIdRemove[i])
		{
			nFoundAtPos = i;
			break;
		}
	}
	if (nFoundAtPos != -1)
	{	

		for (i=nFoundAtPos; i < nLength; i++)	
			oArrayObj.arrObjectIdRemove[i] = oArrayObj.arrObjectIdRemove[i+1];
		oArrayObj.arrObjectIdRemove.length = oArrayObj.arrObjectIdRemove.length -1;
	}
	else
	{	
		nLength = oArrayObj.arrObjectIdAdd.length;
		oArrayObj.arrObjectIdAdd[nLength] = nItemId;
	}

	nIndex = oToListBox.length;
	oToListBox.options[nIndex] = new Option(sItemName, nItemId);

	SetChanged();

	//DebugArray(oArrayObj);
	
	return true
}

function RemoveFromListBox(oArrayObj, oFromListBox)
{
	var nIndex = 0;
	var nLength = 0;
	var nItemId = 0;
	var i;
	var nFoundAtPos = -1;

	nIndex = oFromListBox.selectedIndex;
	
	if (nIndex != -1)
	{
		nItemId = oFromListBox.options[nIndex].value;

		// Check if Item already exists in Add array. If it does. Remove it
		nLength = oArrayObj.arrObjectIdAdd.length
		for (i=0; i < nLength; i++)	
		{
			if (nItemId == oArrayObj.arrObjectIdAdd[i])
			{
				nFoundAtPos = i;
				break;
			}
		}

		if (nFoundAtPos != -1)
		{	

			for (i=nFoundAtPos; i < nLength; i++)	
				oArrayObj.arrObjectIdAdd[i] = oArrayObj.arrObjectIdAdd[i+1];
			oArrayObj.arrObjectIdAdd.length = oArrayObj.arrObjectIdAdd.length -1;
		}
		else
		{
			nLength = oArrayObj.arrObjectIdRemove.length;
			oArrayObj.arrObjectIdRemove[nLength] = nItemId;
		}
		
		oFromListBox.options[nIndex] = null;
		SetChanged();
	}
	else
	{
		alert('No Item selected!');
	} 

	//DebugArray(oArrayObj);

}

// Only for debug purpose....
function DebugArray(oArrayObj)
{
	var nLength = 0;
	var sStr = '';

	sStr = 'Add:\n\n';
	nLength = oArrayObj.arrObjectIdAdd.length
	for (i=0; i < nLength; i++)	
	{
		sStr = sStr + 'pos: ' + i + ' value: ' + oArrayObj.arrObjectIdAdd[i] + '\n';
	}
	
	sStr = '\n' + sStr + 'Length:' + oArrayObj.arrObjectIdAdd.length;

	sStr = sStr + '\n\n' + 'Remove:\n';
	nLength = oArrayObj.arrObjectIdRemove.length
	for (i=0; i < nLength; i++)	
	{
		sStr = sStr + 'pos: ' + i + ' value: ' + oArrayObj.arrObjectIdRemove[i] + '\n';
	}

	sStr = '\n' + sStr + 'Length:' + oArrayObj.arrObjectIdRemove.length;
	
	alert(sStr);
}

function showSubMenu(color, string)
{
	var sHtml;
	var avElements;
	var avValue;
	
	if (string.length > 0)
	{
		avElements = string.split('#');
		
		sHtml = '<div style="height: 17px; widht="743px"; background-color: ' + color + '">';
		sHtml = sHtml + '<table cellspacing="0" cellpadding="0"><tr><td width="15px">&nbsp;</td>';
		for (i=0; i < avElements.length; i++)
		{
			avValue = avElements[i].split('¤');
			sHtml = sHtml + '<td valign="middle">';
			//if (avValue[1].length > 0){
				if (color == '#FFDD00')
					sHtml = sHtml + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span onClick="subMenuOnClick(\'' + avValue[1] + '\', \'' + avValue[2] + '\', \'' + avValue[3] + '\');" style="color:black; font-size: 10px; font-family: arial; cursor: hand">' + avValue[0] + '</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
				else
					sHtml = sHtml + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span onClick="subMenuOnClick(\'' + avValue[1] + '\', \'' + avValue[2] + '\', \'' + avValue[3] + '\');" style="color:white; font-size: 10px; font-family: Verdana; cursor: hand">' + avValue[0] + '</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
			//}
			//else
			//	sHtml = sHtml + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:white; font-size: 10px; font-family: Verdana; cursor: hand">' + avValue[0] + '</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
			sHtml = sHtml + '</td>'
			if (i < avElements.length - 1)
			{
				if (color == '#FFDD00')
					sHtml = sHtml + '<td><span style="color:black; font-size: 10px; font-family: Verdana;">|</span></td>'
				else
					sHtml = sHtml + '<td><span style="color:white; font-size: 10px; font-family: Verdana;">|</span></td>'
			}
		}
		sHtml = sHtml + '</tr></table>';
		sHtml = sHtml + '</div>';

		document.all('divSubMenu').innerHTML = sHtml;
		document.all('divSubMenu').style.left = 0;
		document.all('divSubMenu').style.top = 17;
		document.all('divSubMenu').style.display = '';
	}
	else
	{
		sHtml = '<table cellspacing="0" cellpadding="0" width="743" border="0"><tr><td></td>&nbsp</tr></table>'
		document.all('divSubMenu').innerHTML = sHtml;
		document.all('divSubMenu').style.left = 0;
		document.all('divSubMenu').style.top = 17;
		document.all('divSubMenu').style.display = '';
	}
}

//Funktionen används av filarkiv med beställningsbara trycksaker.
//Anropas från alla mallar.
function sendMail()
{
	var j = 0;
	var s = "";
	var name = "";
	var position = "";
	var company = "";
	var adress = "";
	var zipcode = "";
	var country = "";
	var telephone = "";
	var email = "";
				
	name = document.Form.order_name.value;
	position = document.Form.order_position.value;
	company = document.Form.order_company.value;
	adress = document.Form.order_adress.value;
    zipcode = document.Form.order_zipcode.value;
    country = document.Form.order_country.value;
    telephone = document.Form.order_telephone.value;								
	email = document.Form.order_email.value;
				
	//Kontrollera så att dels required-fält är ifyllda och dels att
	//någon trycksak är beställd.
				
	for (var i=0; i<document.Form.elements.length;i++)
	{
	if (document.Form.elements[i].type == 'text')
		{
			if (document.Form.elements[i].name == 'amount')
				{
					if (document.Form.elements[i].value > 0)
					{
						s = s + document.Form.elements[i + 1].value + '¤' + document.Form.elements[i].value + '¤' ;
						j = j + 1
					}
				}	
		}
	}
				
	if (j == 0)
	{
		alert('Du måste ange ett antal större än 0 för någon av trycksakerna!');
		return false;
	}
				
	if (name == '')
	{
		alert('Du måste ange ett namn!')
		return false;
	}
	if (adress == '')
	{
		alert('Du måste ange en adress!')
		return false;
	}
	if (zipcode == '')
	{
		alert('Du måste ange en postadress!')
		return false;
	}
	if (email == '')
	{
		alert('Du måste ange en e-postadress!')
		return false;
	}
	
	window.open('../FileArchive/sendMail.asp?Order=' + s + '&Name=' + escape(name) + '&Position=' + escape(position) + '&Company=' + escape(company) + '&Adress=' + escape(adress) + '&Zipcode=' + escape(zipcode) + '&Country=' + escape(country) + '&Telephone=' + escape(telephone) + '&Email=' + escape(email),'','resizable=yes,width=250px,height=150px,menubar=no,toolbar=no,location=no');			
}

//Funktionen används för att kontrollera personnummer.
function KollaPersnr(persnr)
{ 
	persnr = persnr.replace(/-/g, "") 

	if(persnr.search(/\d{10}/) != 0){ 
	alert('Felaktigt personnummer!'); 
	return false; 
	} 

	var Manad = parseInt(persnr.substr(2,2)); 
	var Dag = parseInt(persnr.substr(4,2)); 
	if( Manad < 0 || Manad > 12) { 
	alert("Felaktigt månad2!") 
	return false; 
	} 

	if( Dag<0 || Dag > 31 ) { 
	alert("Felaktigt dag!") 
	return false; 
	} 

	totSum = 0; 
	sum = 0;
	 
	for( var n=0; n<persnr.length-1; n++) { 
		sum = parseInt(persnr.substr(n,1)) 
		if((n % 2)==0) { 
			sum = (parseInt(persnr.substr(n,1))*2) 
				if(sum.toString().length>1){ 
					sum = parseInt(sum.toString().substr(0,1)) 
					+parseInt(sum.toString().substr(1,1)) 
				} 
		} 
		totSum = totSum + sum; 
	} 

	chkSiffra = 0; 
	chkSiffra = 
	totSum.toString().substr(totSum.toString().length-1); 

	if( chkSiffra==10 || chkSiffra == 0) { 
		chkSiffra = 0; 
	} else { 
		chkSiffra = 10 - chkSiffra 
	}
	
	if( chkSiffra != persnr.substr(persnr.length-1)){ 
		alert("Felaktigt personnummer!"); 
		return false; 
	} 

	return true; 
} 


