
/*Russian Cert*/
function RussiaCheckDate(caller,language)
{
  var element = document.getElementById("errMsg");
  var toCompare;
  var inOrder;
  if(caller.id.indexOf("_arrival")>=0)
    {
      toCompare = document.getElementById(findElement("_departure","text"));
      inOrder = true;
    }
    else
       {
         toCompare = document.getElementById(findElement("_arrival","text"));
         inOrder = false;
       }
  if(!RegMatchDate(caller) || !RegMatchDate(toCompare))
  {
    return;
  }
  var one_day = 1000 * 60 * 60 * 24;
  var amountOfDays;
  var firstDate, secondDate;
  var fSplit = caller.value.split("-");
  var sSplit = toCompare.value.split("-");
  
  firstDate =  new Date(ParseIntForMonth(fSplit[0]),ParseIntForMonth(fSplit[1])-1 , ParseIntForMonth(fSplit[2]));
  secondDate = new Date(ParseIntForMonth(sSplit[0]),ParseIntForMonth(sSplit[1])-1 , ParseIntForMonth(sSplit[2]));
    
  if(inOrder)
     amountOfDays = Math.ceil((secondDate.getTime()-firstDate.getTime())/(one_day));
    else
        amountOfDays = Math.ceil((firstDate.getTime()-secondDate.getTime())/(one_day));       
    
    var hidden = document.getElementById(findElement("hiddenAmountOfDays","hidden"));
        hidden.value = amountOfDays;
}

function RussiaHelpText(language)
{
  var element = document.getElementById("msgdiv");
  var slct = document.getElementById(findElement("CertType","select-one"));
  var helpText="";
  
  switch(slct.selectedIndex)
  {
   case 0: helpText = (language=="SV"? "V&auml;lj visumstyp" :" Choose a cert-type");  break;
   case 1: helpText = getSimpleHelpText(language); break;
   case 2: helpText = getMultiHelpText(language); break;
   case 3: helpText = getTurismHelpText(language); break;          
  }
  element.style.display = "block";
  element.innerHTML = helpText;
}
function RussiaHelpTextHide()
{
    var element = document.getElementById("msgdiv");
    if(element.style.display=="None")
       return;
       else
          element.style.display = "None";
}

function getBirthDateHelpText(language)
{
     var element = document.getElementById("msgdiv");
     var helpText;
     if(language=="SV")
     {
      helpText = "Ange f&ouml;delsedatum,<br /> ex. 1960-01-01";
     }
     else
    helpText = "eng desc to come";
     
      element.style.display = "block";
      element.innerHTML = helpText;
}

function getZCompannyHelpText(language)
{
  var element = document.getElementById("msgdiv");
  if(language=="SV")
  {
      element.style.display = "block";
      element.innerHTML = "<strong>F&ouml;rs&auml;kringstagare</strong><br />";
      element.innerHTML+="Detta &auml;r det f&ouml;retagsnamn som syns p&aring; intyget. Om det f&ouml;rvalda namnet &auml;r fel, skriv &ouml;ver med r&auml;tt namn.";
      element.innerHTML+=" Detta kan t.ex. intr&auml;ffa n&auml;r ditt f&ouml;retag &auml;r ett medf&ouml;rs&auml;krat bolag eller dotterbolag."
      return;
  }
}
function getTurismHelpText(language)
{
 var helpText ="";
 if(language=="SV")
  {
      helpText = "<strong>Turistintyg: </strong><br />";
      helpText+="Visumet g&auml;ller f&ouml;r en specifik resa. Ryskt turistvisum utf&auml;rdas for h&ouml;gst 30 dagar. Intyget g&auml;ller upp till 3 m&aring;nader.";
      return helpText;
  }
  helpText = "<strong>Tourist visa: </strong><br />";
  helpText+="The visa is applicable for one specific trip. The Russian tourist visa is issued for a maximum period of 30 consecutive days. The tourist visa is issued for a maximum period of 3 consecutive months."
  return helpText;
}
function getSimpleHelpText(language)
{
  var helpText ="";
    if(language=="SV")
      {
          helpText = "<strong>Enkelt aff&auml;rsintyg:</strong><br />";
          helpText+="Visumet g&auml;ller f&ouml;r en specifik resa. F&ouml;r att kunna erh&aring;lla aff&auml;rsvisum kr&auml;vs en inbjudan fr&aring;n en rysk organisation eller person. Datumen f&ouml;r intyget skall st&auml;mma &ouml;verens med datumen p&aring; inbjudan f&ouml;r visumet. Intyget g&auml;ller upp till 3 m&aring;nader.";
          return helpText;
      }
      helpText = "<strong>Single business visa:</strong><br />";
      helpText+="The visa is applicable for on specific trip. To be able to obtain a single business visa an invitation from a Russian organization or person is demanded by the consulate. The dates of the invitation must correspond to the dates of the certificate. The single business visa is issued for a maximum period of 3 consecutive months.";
      return helpText;
}
function getMultiHelpText(language)
{
     var helpText ="";
     if(language=="SV")
      {
          helpText = "<strong>Multipelt aff&auml;rsintyg:</strong><br />";
          helpText+="Visumet g&auml;ller f&ouml;r flera resor dock h&ouml;gst 90 dagar under en 180 dagars period. F&ouml;r att kunna erh&aring;lla multipelt aff&auml;rsvisum kr&auml;vs en inbjudan fr&aring;n en rysk organisation eller person. Datumen f&ouml;r intyget skall st&auml;mma &ouml;verens med datumen p&aring; inbjudan f&ouml;r visumet. Intyget g&auml;ller upp till 12 m&aring;nader.";
          
          return helpText;
      }
      helpText = "<strong>Multiple business visa:</strong><br />";
      helpText+= "The visa is applicable for several trips but not for more than 90 days during a consecutive period of 180 days. To be able to obtain a multiple business visa an invitation from a Russian organization or person is demanded by the consulate. The dates of the invitation must correspond to the dates of the certificate. The certificate may be valid up to 12 consecutive months." 
      return helpText;
}
/*end of Russian Cert*/



/* Salesonline Javascripts */

/*********************************************************/
//TOOL TIP
/*********************************************************/

function ToolTipVisible(evt,caller, title, content)
{
  var div="";
  
  div+="<strong>"+title+"</strong><br />";
    div+=content;
  div+="<br/>";
 
 setObj(div,'override',600,120);
}
function ToolTipVisible2(evt,caller, title, content, title1, content1)
{
  var div="";
  
  div+="<strong>"+title+"</strong><br />";
  div+=content;
  div+="<br/><br/>";
  div+="<strong>"+title1+"</strong><br />";
  div+=content1;
  div+="<br/><br/>";
 
  setObj(div,'override',600,150);
}

function ToolTipVisible3(evt,caller, title, content, title1, content1, title2, content2)
{
  var div="";
  div+="<strong>"+title+"</strong><br />";
  div+=content;
  div+="<br/><br/>";
  div+="<strong>"+title1+"</strong><br />";
  div+=content1;
  div+="<br/><br/>";
  div+="<strong>"+title2+"</strong><br />";
  div+=content2;
  div+="<br/><br/>";
  setObj(div,'override',600,180);
}

function GetWindowSize() 
{
  var witdhHeightArray = new Array();
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) 
   {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
   } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
        {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
       } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
             {
                //IE 4 compatible
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
  //window.alert( 'Width = ' + myWidth );
  //window.alert( 'Height = ' + myHeight );
  
  witdhHeightArray[0] = myWidth;
  witdhHeightArray[1] = myHeight;
  return witdhHeightArray;
}


/*********************************************************/
//END OF TOOL TIP
/*********************************************************/

//DateInput Functions
/************************************/

function ShallDeleteAll(caller)
{
    if(caller.value.length==0)
        return -1;
    var str;
    //IE
   if(document.selection)
  {
    str = document.selection.createRange().text;
  }//F-fox
   else if(window.getSelection)
      {
        str = window.getSelection().toString();
      }  
        
  if(caller.value.length==str.length && str == caller.value)
  return 1;
  
  return -1;
}

function OnlyValidDateInput(caller,e)
{
    var keynum;
    var keychar;
    var numcheck;
    var Inputlength = caller.value.length;
    if(window.event) // IE
	    {
	    keynum = e.keyCode;
	    }
    else if(e.which) // Netscape/Firefox/Opera
	    {
	    keynum = e.which;
	    }
    if(keynum==8 || keynum==9)
        return true;
  
  deleteAll = ShallDeleteAll(caller);
    
    
    
    var typeInput = 0;
    var allowedChars = new Array(48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105,109);	//Backspace, delete and arrow keys
	for(var x=0; x<allowedChars.length; x++) 
	    {
	      if(allowedChars[x] == keynum)
	       typeInput+=1;
	    }
	       
if(typeInput<=0)
   return false;
    
    //reset the color for correction
    caller.style.color = "#000";
    
    
    keychar = String.fromCharCode(keynum);
    numcheck = /\d/;
    
    if(keynum!=109)
    {
        if(keynum>95)
        {
          keychar = GetNumpadValues(keynum);
        }
        
        if(!numcheck.test(keychar))
            return false;
    }
    if(deleteAll==1)
      {
        caller.value="";
        Inputlength = caller.value.length;
        //setCursorAtEnd(caller.id);
      }
    
    if(Inputlength==10)
        return false;
    
    if(Inputlength<2)
    {
         if(caller.value=="" && keychar=="0")
            {
              caller.value="20";
              
              return true;
             }
         if(caller.value=="" && (("12").indexOf(keychar)>=0))
           {
             return true;
           }
         if(caller.value=="1" && keychar=="9")
           {
            return true;
            }
          if(caller.value=="2" && (keychar=="0" || keychar=="1"))
             {
               return true;
             }
          return false;
    }
    
    if(Inputlength>=2 && Inputlength<4)
    {
     var allowed="0123456789";
     if(allowed.indexOf(keychar)>=0)
        {
         return true;
        }
        else
        return false;
    }
    
    var fmonth = "01";
   
   if(Inputlength==4 && keynum==109)
   {
    return true;
   }
   
   
    if(Inputlength==4)
      {
       if(fmonth.indexOf(keychar)>=0)
        {
          caller.value+="-";
          return true;
        }
        else
          return false;
      }
      
    if(Inputlength==5)
      {
        if(fmonth.indexOf(keychar)>=0)
          return true;
        return false;
      }
    var smonth;
    var SixTpos = caller.value.charAt(5);
    
    if(SixTpos=="0")
      smonth = "123456789";
     if(SixTpos=="1")
       smonth = "012";
     
    if(Inputlength==6 )
    {
      if(smonth.indexOf(keychar)>=0)
        return true;
        else
         return false;
    }
      var splitStr = caller.value.split("-");
      var Dateyear = splitStr[0];
      var Datemonth = splitStr[1];  
      var maxDays = ForYearAndMonthGetDaysOfMonth(Datemonth,Dateyear);
      var Xday;
      var day;  
    
    switch(maxDays)
    {
      case 28: Xday = "012";break;
      case 29: Xday = "012";break;
      case 30: Xday = "0123";break;
      case 31: Xday = "0123";break;
    }
     
     if(Inputlength==7 && keynum==109)
     {
      return true;
     }
     
     if(Inputlength==7)
     {
       if(Xday.indexOf(keychar)>=0)
        {
          caller.value+="-";
          return true;
        }
        else
          return false;
     }
     
    var tempValue = caller.value.charAt(8);
    switch(tempValue)
    {
     case "0": day = "123456789";break;
     case "1": day = "0123456789";break;
     case "2": day = ((maxDays>28)? "0123456789" : "012345678");break;
     case "3": day = ((maxDays==31)? "01" : "0");break;               
    }
    if(Inputlength==8 && Xday.indexOf(keychar)>=0)
    {
     return true;
    }
    if(Inputlength==9)
     {      
      if(day.indexOf(keychar)>=0)
        return true;
     }
    return false;
}

function setCursorAtEnd(sTextboxID) 
{    
  
  var oTextbox = document.getElementById(sTextboxID);
  if (oTextbox.createTextRange) 
    {        
      var r = (oTextbox.createTextRange());        
      r.moveStart('character', (oTextbox.value.length));        
      r.collapse();        
      r.select();    
    }
    else
    {
     window.getSelection()
    }
}

function GetNumpadValues(keycode)
{
  switch(keycode)
  {
   case 96:return "0";
   case 97:return "1";
   case 98:return "2";
   case 99:return "3";
   case 100:return "4";
   case 101:return "5";
   case 102:return "6";
   case 103:return "7";
   case 104:return "8";
   case 105:return "9";
  }
}

function ParseIntForMonth(iMonth)
{
 var XMonth;
 switch(iMonth)
      {
       case "08": XMonth=8;break;
       case "09": XMonth=9;break;
       default: XMonth = parseInt(iMonth);break;
      }
  return XMonth;
}

function ForYearAndMonthGetDaysOfMonth(iMonth, iYear)
{
     var XMonth = ParseIntForMonth(iMonth);
      var dd = new Date(parseInt(iYear), XMonth, 0);
      var maxDays = parseInt(dd.getDate());
      return maxDays;
}

//EndDateInput Functions
/************************************/

function ResetColorOfElement(element)
{
 element.style.color = "#000";
}

function ConfirmAnnullation()
{
 if(confirm("Vill du verkligen annullera f"+unescape("%F6")+"rs"+unescape("%E4")+"kringen?"))
 return true;
 else 
    return false;
}

function ConfirmCanelButton()
{
 if(confirm("Vill du verkligen avbryta?"))
    return true;
   else
        return false;
}

function AddNewSalesMen(txt,elem)
{   
     var txt = document.getElementById(txt);
     var button;
     
     for(var i = 0; i<document.aspnetForm.elements.length; i++)
     {
        var e = document.forms['aspnetForm'].elements[i];
        if((e.id.indexOf(elem)>0) && (e.type == "submit"))
        {
            button = e;
        }   
      } 
     if(txt.value.length < 1 || txt.value.length>20)
     {
        button.disabled = true;
     }
     else
        button.disabled = false;
}


function HideAndDisplayPasswordDiv(caller,ElementID)
{
    
    var btn;
    for(var i = 0; i<document.aspnetForm.elements.length; i++)
        {
           var e = document.forms['aspnetForm'].elements[i];
              if((e.id.indexOf("_spara")>0) && (e.type == "submit"))
                {
                  btn = e;
                }   
          } 
 var element = document.getElementById(ElementID);
     if(element.style.display == "none")
     {
        element.style.display = "";
        caller.innerText = "Beh"+unescape("%E5")+"ll gamla l"+unescape("%F6")+"senordet";
        btn.disabled = false;
      }
        else 
            {
                caller.innerText = "Byt l"+unescape("%F6")+"senord";
                element.style.display = "none";
                btn.disabled = true;
            }
     reSetColumnHeights();
}

//validate name of salesmen
function ValidateSalesmen(source, arguments)
{
    var name =arguments.Value;
    
   var ddList =  document.getElementById(findElement("salesmenDDlist","select-one"));
   var txtBox = document.getElementById(findElement("newSalesmen","text"));
    
    if(ddList.selectedIndex == "0")
    {
        if(txtBox.value.length<3 || txtBox.value.length>20)
        {
            arguments.IsValid = false;
            return;
        }
    }   
    arguments.IsValid = true;
    return;
}
String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}


// Validates personnummer
function validatePersonnummer(source, arguments)
{
   // Get the value to validate from the argument parameter
    var nr;
    
    //****Code for arguments without value, ex the function has been called from another function...
    if(arguments.Value == null)
    {   
        nr = arguments;
    }
    else
    {
        nr = arguments.Value;
    }
    //****
    nr = nr.trim();
    // Init return to false
    this.valid=true;

    // Format validation
    // Do RegExp-validation
    if(!nr.match(/^(\d{2})(\d{2})(\d{2})(\d{4})$/)) // SSN
    {
        if(!nr.match(/^(\d{2})(\d{2})(\d{2})$/)) //Day of birth
        {
            arguments.IsValid = false; 
            return false;
        }
    }

    // Date validation 
    // Init dates
    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;
    // Set the number of days for each month
    var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

    // Fix shot-year ;-)
    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])
    { 
        arguments.IsValid = false; 
        return false; 
    }
    // Calculate the checsum if we have a SSN
    if (nr.length > 6) 
    {
        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=parseIntBug(this.controldigits.substring(2,3))%2;
    }
    arguments.IsValid = this.valid;
    return this.valid;
}

function RegMatchDate(element)
{
    var re = new RegExp('^[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))$');
         if(!element.value.match(re))
          {
           return false;
          } 
    return true;
}

function DoInheritanceOnDestination(caller, amountoFObjectsToChange,startIndex)
{
  var firstTime = -1;
  var str = caller.id;
  
  var registerFirstElement = document.getElementById("Destinationinheritance");
     if(registerFirstElement.value.indexOf(str)>=0)
       { 
         return;
       }
       else
      { //register the element
        registerFirstElement.value +="_"+str;
      }

  var ChangeAmount = ParseIntForMonth(startIndex) + ParseIntForMonth(amountoFObjectsToChange);
  var startPosOfstr = str.indexOf("_resmal");
  var firstpartOfId = str.substr(0,(startPosOfstr-2));
 
  for(var i =(startIndex+1); i<ChangeAmount; i++)
     {
       var x = (i<10)? "0" + i : i;
       var idToChange = firstpartOfId+x+"_resmal";
       var elementToChange = document.getElementById(idToChange);
           elementToChange.selectedIndex = caller.selectedIndex;
     }
  }
   
   function limeReturnDateLargerThanDeparture(caller, toCompare)
   {
    var toCompareElement = document.getElementById(toCompare);
    var nxtButton = document.getElementById(findElement("_nextButton", "submit"));
    var ErrMsgDiv = document.getElementById("errMsgDiv");
    
    if(!RegMatchDate(toCompareElement))
    {
              toCompareElement.style.color = "#f00";
              ErrMsgDiv.innerHTML = "";
              ErrMsgDiv.innerHTML = "Ogiltigt utresedatum";
              nxtButton.disabled = true;
              return;
    }
    else if(!RegMatchDate(caller))
    {
              caller.style.color = "#f00";
              ErrMsgDiv.innerHTML = "";
              ErrMsgDiv.innerHTML = "Ogiltigt hemkomstdatum";
              nxtButton.disabled = true;
              return;
    }
    
    
    
    var splitStr = String(caller.value).split('-');
    var splittoCompStr = String(toCompareElement.value).split('-');  
    var CallerdateObj = new Date();
        CallerdateObj.setFullYear(ParseIntForMonth(splitStr[0]),ParseIntForMonth(splitStr[1]) -1 , ParseIntForMonth(splitStr[2]));
    var toCompDateObj = new Date();
        toCompDateObj.setFullYear(ParseIntForMonth(splittoCompStr[0]),ParseIntForMonth(splittoCompStr[1]) -1 , ParseIntForMonth(splittoCompStr[2]));

    if(CallerdateObj <= toCompDateObj)
    {
              caller.style.color = "#f00";
              ErrMsgDiv.innerHTML = "";
              ErrMsgDiv.innerHTML = "Hemkomstdatum m&aring;ste minst vara 1 dag senare &auml;n utresedatum";
              nxtButton.disabled = true;
              return;
    }
    else
    {
     ErrMsgDiv.innerHTML = "";
      nxtButton.disabled = false;
      return;
    }
               
   }
   //************************************************************************************//
   function limecheckIfPaymentDateisLargerThanEventDate(element)
   {
     element.style.color="#000";
     var ErrMsgDiv = document.getElementById("errMsgDiv");
     var nxtButton = document.getElementById(findElement("_nextButton", "submit"));
     var elementToCompareId;
     var caller;
     if(element.id.indexOf("_paymentDate")>-1)
     { //paymentdate is calling
        caller = "pay";
       elementToCompareId = element.id.replace(/_paymentDate/,"_eventDate");
     }
     else
     {//eventDate is calling
        elementToCompareId = element.id.replace(/_eventDate/,"_paymentDate");
     }
     var elementToCompare = document.getElementById(elementToCompareId);
     if(elementToCompare.value=="" && caller=="pay")
     {//dont do anything
      nxtButton.disabled = true;
      return;
     }
     else if(elementToCompare.value=="" && caller!="pay")
     {
      nxtButton.disabled = true;
      ErrMsgDiv.innerHTML = "";
      ErrMsgDiv.innerHTML = "Betalningsdatum &auml;r obligatoriskt";
      elementToCompare.style.color ="#f00";
      return;
     }
     
          if(!RegMatchDate(element))
            {
              element.style.color = "#f00";
              ErrMsgDiv.innerHTML = "";
              ErrMsgDiv.innerHTML = "Ogiltigt betalningsdatum";
              nxtButton.disabled = true;
              return;
            }
            //set focus on element if value is empty.
          if(!RegMatchDate(elementToCompare))
            {
              elementToCompare.style.color = "#f00";
              ErrMsgDiv.innerHTML = "";
              ErrMsgDiv.innerHTML = "Ogiltigt Utresedatum";
              nxtButton.disabled = true;
              return;
            }
     //check witchone is actually calling, and build logic for the caller.
     
     
     var splitStr = String(element.value).split('-');
     var CallerdateObj = new Date();
         CallerdateObj.setFullYear(ParseIntForMonth(splitStr[0]),ParseIntForMonth(splitStr[1]) -1 , ParseIntForMonth(splitStr[2]));
     
        
     var splitStr2 = String(elementToCompare.value).split('-');
     var dateObj2 = new Date();
         dateObj2.setFullYear(ParseIntForMonth(splitStr2[0]),ParseIntForMonth(splitStr2[1]) -1 , ParseIntForMonth(splitStr2[2]));         
     
     var dateDiff = new Date();
     var timeDiff;
     var days;
     
     
     if(caller == "pay")
     {
      dateDiff.setTime(Math.abs(dateObj2.getTime() - CallerdateObj.getTime()));
      timeDiff = dateDiff.getTime();
      days = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); 
      
      if((CallerdateObj<dateObj2) && days>=3)
        {
            element.style.color="#000";
            elementToCompare.style.color="#000";
            ErrMsgDiv.innerHTML = "";
            nxtButton.disabled = false;
            return;
        }
      
        else 
        {
              ErrMsgDiv.innerHTML = "";
              ErrMsgDiv.innerHTML = "Betalningsdatum m&aring;ste minst vara 3 dagar mindre &auml;n evenemangsdatum";
            
            element.style.color="#f00";
            nxtButton.disabled = true;
            return;
        }
     }
     else
     {//om eventdate inte &auml;r mindre && dessutom 3 dagar mindre visa error
       dateDiff.setTime(Math.abs(CallerdateObj.getTime() - dateObj2.getTime()));
       timeDiff = dateDiff.getTime();
       days = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); 
      
      if(CallerdateObj>dateObj2 && days>=3)
       {
            element.style.color="#000";
            elementToCompare.style.color="#000";
            ErrMsgDiv.innerHTML = "";
            nxtButton.disabled = false;
            return;
       }
       else  //dateObj2 = paydate
       {
         ErrMsgDiv.innerHTML = "";
         ErrMsgDiv.innerHTML = "Utresedatum m&aring;ste minst vara 3 dagar st&ouml;rre &auml;n betalnignsdatum";
         element.style.color="#f00";
         nxtButton.disabled = true;
         return;
       }
     }
    ErrMsgDiv.innerHTML = ""; 
    element.style.color = "#000";
    elementToCompare.style.color = "#000";
    nxtButton.disabled = false;
   }
   
   //************************************************************************************//
   function checkIfPaymentDateisLargerThanEventDate(element)
   {
     element.style.color="#000";
     var ErrMsgDiv = document.getElementById("errMsgDiv");
     var nxtButton = document.getElementById(findElement("_nextButton", "submit"));
     var elementToCompareId;
     var caller;
     if(element.id.indexOf("_paymentDate")>-1)
     { //paymentdate is calling
        caller = "pay";
       elementToCompareId = element.id.replace(/_paymentDate/,"_eventDate");
     }
     else
     {//eventDate is calling
        elementToCompareId = element.id.replace(/_eventDate/,"_paymentDate");
     }
     var elementToCompare = document.getElementById(elementToCompareId);
     if(elementToCompare.value=="" && caller=="pay")
     {//dont do anything
      nxtButton.disabled = true;
      return;
     }
     else if(elementToCompare.value=="" && caller!="pay")
     {
      nxtButton.disabled = true;
      ErrMsgDiv.innerHTML = "";
      ErrMsgDiv.innerHTML = "Betalningsdatum &auml;r obligatoriskt";
      elementToCompare.style.color ="#f00";
      return;
     }
     
          if(!RegMatchDate(element))
            {
              element.style.color = "#f00";
              ErrMsgDiv.innerHTML = "";
              ErrMsgDiv.innerHTML = "Ogiltigt betalningsdatum";
              nxtButton.disabled = true;
              return;
            }
            //set focus on element if value is empty.
          if(!RegMatchDate(elementToCompare))
            {
              elementToCompare.style.color = "#f00";
              ErrMsgDiv.innerHTML = "";
              ErrMsgDiv.innerHTML = "Ogiltigt Evenemangsdatum";
              nxtButton.disabled = true;
              return;
            }
     //check witchone is actually calling, and build logic for the caller.
     
     
     var splitStr = String(element.value).split('-');
     var CallerdateObj = new Date();
         CallerdateObj.setFullYear(ParseIntForMonth(splitStr[0]),ParseIntForMonth(splitStr[1]) -1 , ParseIntForMonth(splitStr[2]));
     
        
     var splitStr2 = String(elementToCompare.value).split('-');
     var dateObj2 = new Date();
         dateObj2.setFullYear(ParseIntForMonth(splitStr2[0]),ParseIntForMonth(splitStr2[1]) -1 , ParseIntForMonth(splitStr2[2]));         
     
     var dateDiff = new Date();
     var timeDiff;
     var days;
     
     
     if(caller == "pay")
     {
      dateDiff.setTime(Math.abs(dateObj2.getTime() - CallerdateObj.getTime()));
      timeDiff = dateDiff.getTime();
      days = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); 
      
      if((CallerdateObj<dateObj2) && days>=3)
        {
            element.style.color="#000";
            elementToCompare.style.color="#000";
            ErrMsgDiv.innerHTML = "";
            nxtButton.disabled = false;
            return;
        }
      
        else 
        {
              ErrMsgDiv.innerHTML = "";
              ErrMsgDiv.innerHTML = "Betalningsdatum m&aring;ste minst vara 3 dagar mindre &auml;n evenemangsdatum";
            
            element.style.color="#f00";
            nxtButton.disabled = true;
            return;
        }
     }
     else
     {//om eventdate inte &auml;r mindre && dessutom 3 dagar mindre visa error
       dateDiff.setTime(Math.abs(CallerdateObj.getTime() - dateObj2.getTime()));
       timeDiff = dateDiff.getTime();
       days = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); 
      
      if(CallerdateObj>dateObj2 && days>=3)
       {
            element.style.color="#000";
            elementToCompare.style.color="#000";
            ErrMsgDiv.innerHTML = "";
            nxtButton.disabled = false;
            return;
       }
       else  //dateObj2 = paydate
       {
         ErrMsgDiv.innerHTML = "";
         ErrMsgDiv.innerHTML = "Evenemangsdatumet m&aring;ste minst vara 3 dagar st&ouml;rre &auml;n betalnignsdatum";
         element.style.color="#f00";
         nxtButton.disabled = true;
         return;
       }
     }
    ErrMsgDiv.innerHTML = ""; 
    element.style.color = "#000";
    elementToCompare.style.color = "#000";
    nxtButton.disabled = false;
   }


function CheckIfReturnDateIsLargetThanDepartureDate(element)
{
     var elementToCompareId = element.id.replace(/_HemReseDatum/,"_UtReseDatum");
     var elementToCompare = document.getElementById(elementToCompareId);
     
     var splitStr = String(element.value).split('-');
     var dateObj = new Date();
         dateObj.setFullYear(ParseIntForMonth(splitStr[0]),ParseIntForMonth(splitStr[1]) -1 , ParseIntForMonth(splitStr[2]));
     
        
     var splitStr2 = String(elementToCompare.value).split('-');
     var dateObj2 = new Date();
         dateObj2.setFullYear(ParseIntForMonth(splitStr2[0]),ParseIntForMonth(splitStr2[1]) -1 , ParseIntForMonth(splitStr2[2]));         
     
     if(dateObj2>dateObj)
        return true;  //true == returndate is larger than departuredate
   return false;     
}


function DoInheritanceForSecondDate(caller, amountoFObjectsToChange, startIndex)
{
    var nxtButton = document.getElementById(findElement("_nextButton", "submit"));
     var firstTime = -1;
     var str = caller.id;
     
     if(!RegMatchDate(caller))
     {
      return;
     }
     
      var ErrMsgDiv = document.getElementById("errMsgDiv");
     if(CheckIfReturnDateIsLargetThanDepartureDate(caller))
        {
         
          ErrMsgDiv.innerHTML="";
          ErrMsgDiv.innerHTML="Hemkomstdatum &auml;r mindre &auml;n utresedatum";
          
          caller.style.color = "#f00";
         //Fi** fox hack.
            nxtButton.disabled = true;
          return;
        }
       
     ErrMsgDiv.innerHTML ="";
     //reset textColor
     nxtButton.disabled = false;
     caller.style.color = "#000";
     var registerFirstElement = document.getElementById("SecondControlinheritance");
     if(registerFirstElement.value.indexOf(str)>=0)
       { //first inheritance is done
//         caller.focus();
//         caller.select();
         return;
       }
       else
      { //register the element
        registerFirstElement.value +="_"+str;
      } 
    var ChangeAmount = ParseIntForMonth(startIndex) + ParseIntForMonth(amountoFObjectsToChange);
    var startPosOfstr = str.indexOf("_HemReseDatum");
    var firstpartOfId = str.substr(0,(startPosOfstr-2));
 
     for(var i =(startIndex+1); i<ChangeAmount; i++)
     {
        var x = (i<10)? "0" + i : i;
        var idToChange = firstpartOfId+x+"_HemReseDatum";
        var elementToChange = document.getElementById(idToChange);
        elementToChange.value = caller.value;
     }
    // caller.focus();
     //caller.select();
}

function DoInheritance(caller, amountoFObjectsToChange, startIndex)
{
 var firstTime = -1;
 var str = caller.id;
 
 var registerFirstElement = document.getElementById("FirstControlinheritance");
     if(registerFirstElement.value.indexOf(str)>=0)
       { 
         return;
       }
       else
      { //register the element
        registerFirstElement.value +="_"+str;
      } 
 var ChangeAmount = ParseIntForMonth(startIndex) + ParseIntForMonth(amountoFObjectsToChange);
 var startPosOfstr = str.indexOf("_UtReseDatum");
 var firstpartOfId = str.substr(0,(startPosOfstr-2));
 
     for(var i =(startIndex+1); i<ChangeAmount; i++)
     {
       var x = (i<10)? "0" + i : i;
       var idToChange = firstpartOfId+x+"_UtReseDatum";
        var elementToChange = document.getElementById(idToChange);
        elementToChange.value = caller.value;
     }
     
      for(var i =(startIndex+1); i<ChangeAmount; i++)
     {
       var x = (i<10)? "0" + i : i;
       var temp = (startIndex<10) ? "0" + startIndex: startIndex;
       var idToChange = firstpartOfId+x+"_HemReseDatum";
        var idToGetValuefrom = firstpartOfId+temp+"_HemReseDatum";
        var elementToChange = document.getElementById(idToChange);
        var elementTogetValueFrom = document.getElementById(idToGetValuefrom);
            elementToChange.value = elementTogetValueFrom.value;
     }
}


function AddAmountOfDaysToHiddenElement(caller, amountOfDaysToAdd, firstTimeArv, amountIngroup, startIndex)
{
 
  if(!RegMatchDate(caller))
     {
      return;
     }
 
 var elem = document.getElementById("AmountOfDaysToAdd");
     elem.value = amountOfDaysToAdd;
 var elementToChangeID = caller.id.replace(/UtReseDatum/,"HemReseDatum");
 var elementToChange = document.getElementById(elementToChangeID);

 //AddDaysToElement(caller.value,elementToChange, amountOfDaysToAdd);
 
 if(amountIngroup!='x')
  {
    DoInheritance(caller,amountIngroup,startIndex);
  }
  elementToChange.focus();
  elementToChange.select();
}


function AddDaysToElement(countFrom,elementToChange, amountOfDaysToAdd)
{

  var splitStr = String(countFrom).split('-');

  
  var dateObj = new Date(ParseIntForMonth(splitStr[0]),ParseIntForMonth(splitStr[1])-1 , ParseIntForMonth(splitStr[2]));
  dateObj.setDate(dateObj.getDate() + ParseIntForMonth(amountOfDaysToAdd));
  
  var mToSet = ((dateObj.getMonth() +1)<10)? "0" + String((dateObj.getMonth() + 1)) : String((dateObj.getMonth() +1));
  var dToSet = (dateObj.getDate()<10)? "0"+dateObj.getDate():dateObj.getDate();
  
  elementToChange.value = dateObj.getFullYear()+"-"+ mToSet +"-"+ dToSet;
  elementToChange.focus();
}

function EnableDisableTabortBtn()
{
 var tabortBtn;
 var checkad =checkIfChecked("_tabort","checkbox");
   
   for(var i = 0; i<document.aspnetForm.elements.length; i++)
         {
          var e = document.forms['aspnetForm'].elements[i];
          if((e.id.indexOf("_tbaortBtn")>0) && (e.type == "submit"))
            {
              tabortBtn = e;
            }
          }
          if(checked>0)
            tabortBtn.disabled = false;
          else
            tabortBtn.disabled = true;
 }

function checkIfChecked(index, typ)
{
    var checkad = 0;
    for(var i = 0; i<document.aspnetForm.elements.length; i++)
         {
          var e = document.forms['aspnetForm'].elements[i];
          if((e.id.indexOf(index)>0) && (e.type == typ))
            {
              if(e.checked==true) checkad += 1;
            }
          }
    return checkad;
}

function findElement(conStr, typ)
{
  var elementId = null;
  for(var i = 0; i<document.aspnetForm.elements.length; i++)
         {
          var e = document.forms['aspnetForm'].elements[i];
          if((e.id.indexOf(conStr)>0) && (e.type == typ))
            {
              elementId = e.id;
            }
          }
    return elementId;
}

function GetArrayOfTextBox(index)
{
    var textBox = new Array();
    for(var i = 0; i<document.aspnetForm.elements.length; i++)
         {
          var e = document.forms['aspnetForm'].elements[i];
          if((e.id.indexOf(index)>0) && (e.type == "text"))
            {
              textBox[textBox.length] = e;
            }
          }
  return textBox;
}


function BadInputDataInTextBoxes()
{
    var firstName = new Array();
    firstName = GetArrayOfTextBox("_Fornamn");
    var lastName = new Array();
    lastName = GetArrayOfTextBox("_Efternamn");
    var badInput = false;
    var bDay = new Array();
    bDay = GetArrayOfTextBox("_Personnr");
          
          
    for(var i=0; i<5; i++)
    {
        if(firstName[i].value != "" && lastName[i].value != "")
        {
            if(bDay[i].value != "")
            {
                if(!validatePersonnummer(this,bDay[i].value))
                {
                    badInput = true;
                    break;
                }
            }
        }
        else if( (firstName[i].value == "" && lastName[i].value != "") || (lastName[i].value == "" && firstName[i].value != ""))
        {
            badInput = true;
            break;
        }
        else if(firstName[i].value == "" && lastName[i].value == "" && bDay[i].value != "")
        {
            badInput = true;
            break;
        }
        
        if(i == 4 && firstName[0].value == "" && lastName[0].value == "" 
            && firstName[1].value == "" && lastName[1].value == "" 
            && firstName[2].value == "" && lastName[2].value == "" 
            && firstName[3].value == "" && lastName[3].value == "" 
            && firstName[4].value == "" && lastName[4].value == "")
            badInput = true;
    }
    return badInput;
}

function EnableDisableAddPersonbutton(elem)
{
    var checkad = checkIfChecked("produktCheckBox", "checkbox");
    var AddPersonBtn = document.getElementById(findElement("_steponeCtrl_AddPersonBtn", "submit"));
    var cBox = document.getElementById(elem.id);
    var Disabled = true;
      
    if(checkad==0)
    {
      Disabled = true;
    }
    else
    {
       if(checkad>3 )
       {
          elem.checked = false;
       } 
         
       if(BadInputDataInTextBoxes())
       {
            Disabled = true;
       }
       else
       {
            Disabled = false;
       }
    }
    AddPersonBtn.disabled = Disabled;
}

function EnableDisableRemoveButton()
{
     var checkad = checkIfChecked("_tabort", "checkbox");
   var removeBtn = document.getElementById(findElement("_tbaortBtn", "submit"));
     
     if(checkad==0)
     removeBtn.disabled = true;
     else
      removeBtn.disabled = false;
}

function EnableDisableAddPersonbuttonForText()
{
    var checkad = checkIfChecked("produktCheckBox", "checkbox");
    var AddPersonBtn = document.getElementById(findElement("_steponeCtrl_AddPersonBtn", "submit"));
    var Disabled = true;
      
    if(checkad==0)
    {
      Disabled = true;
    }
    else
    {
       if(BadInputDataInTextBoxes())
       {
            Disabled = true;
       }
       else
       {
            Disabled = false;
       }
    }
    AddPersonBtn.disabled = Disabled;
}


//SET TOOLTIP DESCRIPTIONS BELOW
//Extend or contract array as needed, example...
var description=new Array()
description[0]='This is tool-tip description 1'
description[3]='<b>asdasdasd</b><br />asdjasdasdasd <br /><b>asdasdasd</b><br />asdjasdasdasd <br /> <b>asdasdasd</b><br />asdjasdasdasd';

//Do not edit below here
iens6=document.all||document.getElementById

<!--GLOBAL VARIABLES-->
var thename
var theobj
var thetext
var winHeight
var winPositionFromTop
var winWidth
var startH=2
var openTimer
<!--END GLOBAL VARIABLES-->
<!--GLOBAL FUNCTIONS-->
function ietruebody()
{
  return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function setObj(text,theswitch,inwidth,inheight) 
{
	thetext=text;

	var arrXY = new Array();
	arrXY = GetWindowSize();
	 
	 winWidth = arrXY[0];
	 winHeight = arrXY[1];
	
	var ieTrueBody = ietruebody();
	
		thename = "viewer"
		theobj=document.getElementById? document.getElementById(thename):document.all.thename
		if(theobj==null)
		 return;
		
		winHeight=100
			if(iens6&&document.all) 
			{
				winPositionFromTop=!window.opera ? ieTrueBody.clientHeight : document.body.clientHeight
				
				var clWitdth = ietruebody().clientWidth
				//var lMargin = document.body.leftMargin;
				var clienWidth = ieTrueBody.clientWidth;
				
				//winWidth= clienWidth - lMargin;
			}
			if(iens6&&!document.all) 
			{
				winPositionFromTop=window.innerHeight
				winWidth=window.innerWidth;
			}
			if(theswitch=="override") 
			{
				//winWidth=inwidth
				winHeight=inheight
			}
		var divWidth = 20;
		theobj.style.width=parseInt(winWidth-divWidth)+"px"
		theobj.style.height=startH+"px"
			
			if(iens6&&document.all) {
				theobj.style.top=ieTrueBody.scrollTop+winPositionFromTop+"px"
				//window.status=winPositionFromTop
				theobj.innerHTML = ""
				theobj.insertAdjacentHTML("BeforeEnd","<center><table cellspacing=0 width="+inwidth+" height="+winHeight+" class='popuptable' ><tr><td valign=top>"+thetext+"</td></tr></table></center>")
			}
			if(iens6&&!document.all) {
				theobj.style.top=window.pageYOffset+winPositionFromTop+"px"
				theobj.innerHTML = ""
				theobj.innerHTML="<center><table cellspacing=0 width="+inwidth+" height="+winHeight+" class='popuptable'><tr><td valign=top>"+thetext+"</td></tr></table></center>"
			}
	
	viewIt()
}

function viewIt() 
{
	if(theobj==null)
	  return;

	if(startH<=winHeight) 
	{
		if(iens6) 
		{
			theobj.style.visibility="visible"
				if(iens6&&document.all) 
				{
					theobj.style.top=(ietruebody().scrollTop+winPositionFromTop)-startH+"px"
				}
				if(iens6&&!document.all) 
				{
					theobj.style.top=(window.pageYOffset+winPositionFromTop)-startH+"px"
				}
			theobj.style.height=startH+"px"
			startH+=2
			viewIt();
			//openTimer=setTimeout("viewIt()",0.01)
		}
	}else{
		clearTimeout(openTimer)
	}
}

function stopIt() 
{
	if(theobj==null)
	return;
		theobj.innerHTML = ""
		theobj.style.visibility="hidden"
		startH=2
	
}
<!--END GLOBAL FUNCTIONS-->


