﻿    
var oPopup = window.createPopup();
var oPopBody = oPopup.document.body;

function ShowHelp(index, x, y, width, height)
{ 
  x = event.clientX + document.body.scrollLeft + 10;
  y = event.clientY + document.body.scrollTop + 15;
  
  var HelptextTitle = document.getElementById("hdnHelpTitle" + index).value;
  var Helptext = document.getElementById("hdnHelp" + index).value;
  
  var bodyStr = "<h1 style='font-weight: bold; font-size: 14px;	color: #F21C0A; display: inline;'>" + HelptextTitle + "</h1>"; 
  bodyStr += "<p>" + Helptext + "</p>";
 
  oPopBody.style.backgroundColor = "#FFFFFF";
  oPopBody.style.border = "solid #F21C0A 1px";
  oPopBody.style.margin = "10px";
  oPopBody.style.scrollbarFaceColor = "#FFFFFF";
  oPopBody.style.scrollbarBaseColor = "#FFFFFF";
  oPopBody.style.scrollbarShadowColor = "#FFFFFF";
  oPopBody.style.scrollbarHighlightColor = "#FFFFFF";
  oPopBody.style.scrollbar3dLightColor = "#FFFFFF";
  oPopBody.style.scrollbarDarkshadowColor = "#FFFFFF";
  oPopBody.style.scrollbarTrackColor = "#FFFFFF";
  oPopBody.style.scrollbarArrowColor = "#999999";
  oPopBody.style.fontFamily = "Verdana, Arial, Helvetica, Tahoma";
  oPopBody.style.fontSize = "11px";
  oPopBody.style.overflow = 'auto';
  oPopBody.innerHTML = bodyStr;
  oPopup.show(x, y, width, height, document.body);
  
  
}

function ShowHelpNavigate(tblId, x, y, width, height)
{  
  x = event.clientX + document.body.scrollLeft + 10;
  y = event.clientY + document.body.scrollTop + 15;
  
	oPopBody.style.backgroundColor = "#FFFFFF";
	oPopBody.style.border = "solid #F21C0A 1px";
	oPopBody.style.margin = "10px";
	oPopBody.style.scrollbarFaceColor = "#FFFFFF";
	oPopBody.style.scrollbarBaseColor = "#FFFFFF";
	oPopBody.style.scrollbarShadowColor = "#FFFFFF";
	oPopBody.style.scrollbarHighlightColor = "#FFFFFF";
	oPopBody.style.scrollbar3dLightColor = "#FFFFFF";
	oPopBody.style.scrollbarDarkshadowColor = "#FFFFFF";
	oPopBody.style.scrollbarTrackColor = "#FFFFFF";
	oPopBody.style.scrollbarArrowColor = "#999999";
	oPopBody.style.fontFamily = "Verdana, Arial, Helvetica, Tahoma";
 	oPopBody.style.fontSize = "11px";
 	oPopBody.style.overflow = 'auto';
	oPopBody.innerHTML = tblId.outerHTML;
	
	for (var i = 0; i < oPopBody.all.length; i++) {
		if (oPopBody.all[i].tagName == "A")
			oPopBody.all[i].onclick = doClick;
  }
 	oPopup.show( x, y, width, height, document.body);
}

// Fixa till detta!!!!!!!!!!!
//function doClick() {
//	parent.location = this.href; //the page opens in the same window
//  return false;
//}

function doClick() {
  parent.window.open(this.href);
  return false;
}

function ShowHide(control, displaymode) {
  document.getElementById(control).style.display = displaymode;
}
  
function personNumber(nr){
	this.valid=false;
	if(!nr.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})$/)){ return false; }
	this.now=new Date(); this.nowFullYear=this.now.getFullYear()+""; this.nowCentury=this.nowFullYear.substring(0,2); this.nowShortYear=this.nowFullYear.substring(2,4);
	this.year=RegExp.$1; this.month=RegExp.$2; this.day=RegExp.$3; this.controldigits=RegExp.$4;
	this.fullYear=(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1;
	var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(this.fullYear%400==0||this.fullYear%4==0&&this.fullYear%100!=0){ months[1]=29; }
	if(this.month*1<1||this.month*1>12||this.day*1<1||this.day*1>months[this.month*1-1]){ return false; }
	this.alldigits=this.year+this.month+this.day+this.controldigits;
	var nn="";
	for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
	this.checksum=0;
	for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
	this.valid=(this.checksum%10==0)?true:false;
	this.sex=parseInt(this.controldigits.substring(2,3))%2;
}

function validateEmail(UserEmail) {
  var error = "";
  var atPos = UserEmail.indexOf('@', 0);				      //Postion av @-tecken
  var dotPosDomain = UserEmail.indexOf('.', atPos)		//Position av punkten i domännamnet (efter @)
  var userName = UserEmail.substr(0, atPos)			      //Extrahera användarnamn från e-postadressen
  var dotPosUserName = userName.indexOf('.' ,2)			  //Punkten i användarnamnet ska komma först efter två tecken
	
  if (atPos == -1)
    error += '- E-postadressen måste innehålla @-tecken\n';
  else if (dotPosUserName == -1)
    error += '- E-postadressen ska ha minst två tecken innan punkten i början (förnamn)\n';
  else if (UserEmail.indexOf('@', UserEmail.indexOf('.' ,0) + 2) == -1)
    error += '- E-postadressen ska ha minst två tecken efter punkten i början (efternamn)\n';
  else if (UserEmail.indexOf('@', atPos + 1) !=- 1)
    error += '- E-postadressen får inte innehålla mer än ett @-tecken\n';
  else if (dotPosDomain == -1)
    error += '- En punkt måste finnas i domännamn (eon.se)\n';
  else if (UserEmail.length < 12)						//xx.xx@xxx.xx
    error += '- E-postadressen ska vara minst 12 tecken lång\n';
  else if ((UserEmail.indexOf('eon', atPos) == -1) && (UserEmail.indexOf('elektrosandberg', atPos) == -1))			//eon eller eon-is...
    error += '- E-postadressen måste ha eon efter tecken @\n';
  else if (UserEmail.indexOf('se', dotPosDomain) == -1 && UserEmail.indexOf('com', dotPosDomain) == -1)
    error += '- E-postadressen måste avslutas med se eller com\n';
    
  return error;
}



function checkemail(email){
  var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  if (filter.test(email))
    return true
  else
    return false
}


// =======================================================================
// Validerar datum på formen ÅÅÅÅ-MM-DD. Tar även hand om skottår.
// =======================================================================
function validateDate(date_var) {
	
	// Lägg anatal dagar/månad i array. Hoppa över position noll.  
	var no_of_days_in_month = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
		
	// Lägger årtal, månad och dag i variabler som integer.
	var year = parseInt(date_var.substr(0,4), 10); 
	var month = parseInt(date_var.substr(5,2), 10);
	var day = parseInt(date_var.substr(8,2), 10);
		
		
	if (month >= 1 && month <= 12 && day >=  1 && day <= 31 && year >= 0) { 
		
		// Ta hand om ev. skottår.
		if (month == 2) {
			if ((year%4==0 && year%100 != 0) || year%400 == 0) 
		 		no_of_days_in_month[month]=29;
		}

		if (day >= 1 && day <= no_of_days_in_month[month]) { 
			return true;
		} else {
			return false;
		}

	} else {
		return false;
	}
}

function validate1Date(StartDate, StartDate_Text) {

  var error = "";
  
  if (StartDate.length > 0)
	{
	  if (!StartDate.match(/^(19|20)\d\d\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/))
      error += '- ' + StartDate_Text + ' i rätt format\n';		

    if (!validateDate(StartDate))
      error += '- Giltigt ' + StartDate_Text + ' datum\n';
  }
  else   
  { 
    error += '- ' + StartDate_Text + '\n';
  }
  
  return error;
}


function validate2Dates(StartDate, EndDate, StartDate_Text, EndDate_Text) {

  var error = "";
  
  if (StartDate.length > 0)
	{
	  if (!StartDate.match(/^(19|20)\d\d\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/))
      error += '- ' + StartDate_Text + ' i rätt format\n';		

    if (!validateDate(StartDate))
      error += '- Giltigt ' + StartDate_Text + ' datum\n';
  }
  else    
    error += '- ' + StartDate_Text + '\n';
    
    
  if (EndDate.length > 0)
	{
	  if (!EndDate.match(/^(19|20)\d\d\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/))
      error += '- ' + EndDate_Text + ' i rätt format\n';		

    if (!validateDate(EndDate))
      error += '- Giltigt ' + EndDate_Text + ' datum\n';
  }
  else    
    error += '- ' + EndDate_Text + '\n';
  
  
  if (EndDate.length > 0 && StartDate.length > 0 && StartDate > EndDate)
	    error += '- ' + EndDate_Text + ' som är senare än ' + StartDate_Text + '\n';
  
  return error;
}

function validateZipCode(ZipCode, ZipCode_Text) 
{
 
  var error = "";
  
  if (ZipCode.length == 0)
		error += '- ' + ZipCode_Text + '\n';
	if (!ZipCode.match(/(^\d{5}$)|(^\d{3}\s\d{2}$)/))
			error += '- ' + ZipCode_Text + ' i rätt format (12345 eller 123 45)\n';
  return error;
}

function validateNumeric(value) {
  
  for(var i = 0; i < value.length; i++){
    var ch = value.charAt(i);
    if ("0123456789".indexOf(ch) == -1) return false;
  }
  return true;
}
