

//Används av alla applicationer för att visa en info-sida
//function openInfoHelp(file_to_open,lang) {
//	filename = "/common/infopopup.asp?file=" + file_to_open +"&lang="+lang;
//	newHelpA = window.open(filename,"Information","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=600,height=420");
//        newHelpA.window.focus();
//}
function openInfoHelp(file_to_open) {
	filename = "/common/infopopup.asp?file=" + file_to_open;
	newHelpA = window.open(filename,"Information","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=600,height=435");
        newHelpA.window.focus();
}

//Används av reguljärbokningen för att visa info om en stuga
function openStugInfo(file_to_open) {       
        newHelpA = window.open(file_to_open,"Information","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=530,height=380");
        newHelpA.window.focus();
}
// Används för att visa artistinfo från kryssningsbokningen
function openArtistInfoPerAvgang(indatum,infartyg,insprak) {       
	newHelpA = window.open('/common/artistinfoperavgang.asp?datum=' + indatum+'&fartyg=' +infartyg+'&sprak=' +insprak,"Information","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=380");
        newHelpA.window.focus();
}

//Visar samtliga gemensamma hyttkategorier för valt fartyg i bokningen
function openCabinInfo(fartygCabin,path) {
   filename = "/common/infopopup.asp?file=" + path +fartygCabin.toLowerCase()+"_cabins.inc";
   newcabinInfo = window.open(filename,"Hyttinformation","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=670,height=500");
        newcabinInfo.window.focus();
}

//Anropas när man byter hyttkategori i dropdown-listan i bokningen, visar "bild" länken om man valt en hytt
function cabinKat() {
    alertQcabin();
   var hytTyp = document.getElementById("hyttKategori").value;
   oLayer=getLayer("hyttLayer");
   oLayer2=getLayer("hyttLayer2");
   if (hytTyp == "" || hytTyp == null) {
	   
      oLayer.style.visibility = 'hidden';
	  oLayer2.style.visibility = 'visible';
	 	
   }
   else {
      oLayer.style.visibility = 'visible';
	  oLayer2.style.visibility = 'hidden';
	  return hytTyp.toLowerCase();
	  
   }
}
var checkQ = 0;

function alertQcabin() {
	var cabinType = document.getElementById("hyttKategori").value; 
	var currentLocation = window.location.href;
	if(checkQ < 1) {
		if(cabinType.charAt(0) == 'Q') {
			checkQ++;
			if(currentLocation.match("/finland/")) {	
				alert("OBS!\n\nHyttkategorin du har valt saknar WC och dusch!\nDessa finns dock tillgängliga i hyttkorridoren.\nQ-hytterna har en lägre standard än våra övriga hytter.");
			}
			else if(currentLocation.match("/suomi/")){
				alert("HUOM!\n\nValitsemassasi hyttiluokassa ei ole suihkua eikä WC:tä,\nvaan ne sijaitsevat hyttikäytävällä.\nQ-hytit ovat tasoltaan muita vaatimattomampia.");
			}
			else if(currentLocation.match("/eesti/")){
				alert("N.B.!\n\nTeie poolt valitud kajutiklassis puudub WC ja dušš!\nNeed asuvad kajutite vahelises koridoris.\nQ-klassi kajutid on madalama standardiga, kui teised kajutid.");
			}
			else {
				alert("\nOBS!\n\nHyttkategorin du har valt saknar WC och dusch!\nDessa finns dock tillgängliga i hyttkorridoren.\nQ-hytterna har en lägre standard än våra övriga hytter.");
			}
		}
	}
}

//Kollar att email adressen fyller kraven
function isEmailNotValid(address) {
   var temp; 
   var i=0;
   var iAntalSnabelA=0;
   var iAntalW=0;
   var iKontrollAvSnabelA=0;
   var iKontrollAvPunkt=0;
   var sEmail=address;
   var emailFailed  = false;
   var atSym    = address.value.indexOf('@');
   var period   = address.value.lastIndexOf('.');   
   var space    = address.value.indexOf(' ');
   var colon    = address.value.indexOf(':');
   var scansign1 = address.value.indexOf(unescape('%E5'));  //å
   var scansign2 = address.value.indexOf(unescape('%E4'));  //ä
   var scansign3 = address.value.indexOf(unescape('%F6'));  //ö
   var scansign4 = address.value.indexOf(unescape('%C5'));  //Å
   var scansign5 = address.value.indexOf(unescape('%C4'));  //Ä
   var scansign6 = address.value.indexOf(unescape('%D6'));  //Ö
   var scansign7 = address.value.indexOf(unescape('%E6'));  //æ	
   var scansign8 = address.value.indexOf(unescape('%C6'));  //
   var comma    = address.value.indexOf(',');
   var scolon   = address.value.indexOf(';');
   var length   = address.value.length - 1;   // Array is from 0 to length-1
        
        for (i=0;i < sEmail.value.length;i++) {
            temp=sEmail.value.charAt(i);            
            if(temp=='@') {
                iKontrollAvSnabelA=i;
                iAntalSnabelA++;
            }
            if(temp=='w' && i<3) {
                iAntalW++;           
            } 

	    if(temp=='.') {
                iKontrollAvPunkt=i;
            } 	 
        }

        if(iAntalSnabelA>1 || iAntalW>=3 || iKontrollAvPunkt<iKontrollAvSnabelA) {
            emailFailed = true;
         }
        
	
   if ((atSym < 1) ||                     // '@' cannot be in first position
       (period <= atSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
       (period == length ) ||             // Must be atleast one valid char after '.'  
       (colon  != -1)      || 
       (scansign1 != -1)   ||
       (scansign2 != -1)   ||
       (scansign3 != -1)   ||
       (scansign4 != -1)   ||
       (scansign5 != -1)   ||
       (scansign6 != -1)   ||
       (scansign7 != -1)   ||
       (scansign8 != -1)   || 
       (scolon != -1)     ||  
       (comma  != -1)     ||        
       (space  != -1))                    // No empty spaces permitted
   {        
      emailFailed = true;
   }
   if (address.value.length == 0) {	  // Vi tillåter att email är tomt
	emailFailed = false;
   }
   return emailFailed;
}


// Kontrollerar om datumet är korrekt
function checkDate(date) {
   if ((date.value == "") || (date.value == null)) {
      return true;
   }
   // Observera att funktionen isNaN inte fungerar för IE3! 
	
   year=parseInt(date.value);
   if  ((isNaN(year)) || (year<1900) || (year>2050)) {
      return true;
   }
   return false;
}

// Kontroll av för- och efternamn på passagerarlistan
function checkNamn(namn) {
   //var punkt = namn.value.indexOf('.');
   var slash = namn.value.indexOf('/');
   var komma = namn.value.indexOf(',');
   if ((namn.value == "") || (namn.value == null) || (slash != -1) || (komma != -1)) 
   {
      return true;
   }
   return false;
}

//kontrollera att värdet i fältet är numeriskt
function isNumeriskt(theField) {
   var v = parseInt(theField.value);
   inStr = theField.value;
   inLen = inStr.length;
   for(var i=0; i<inLen; i++) {
      var ch = inStr.substring(i,i+1)
      if (ch < "0" || "9" < ch) {
         return true;
      }
   }
   return false;
}

// Kontroll om blanka fält
function isFieldBlank(theField) {
   if(theField.value == "" || isBlank(theField)) {
      return true;
   } else {
      return false;
   }
}

// Kontrollera att fältet inte innehåller "white space"
function isBlank(theField) {
   for(var i = 0;i < theField.value.length;i++) {
      var c = theField.value.charAt(i);
      if((c != ' ') && (c != '\n') && (c != '\t')) {
         return false;
      }
   }
   return true;
}
// Kontrollerar att datum är korrekt
function isDate (year, month, day) {
  // month argument must be in the range 1 - 12
  month = month - 1;  
  var tempDate = new Date(year,month,day); 
  if(day.substr(0,1)=="0"){
    day=day.substr(1,1);
   	
  } 
  if(tempDate.getFullYear() == year && month == tempDate.getMonth() && day == tempDate.getDate() && tempDate.getFullYear()>1900 && tempDate.getFullYear()<2050 ){
      return true;
  }else{ 
     return false
  }
}

// Stoppar onödiga tryckningar
var submitButton = 0;
function submitCheck() {
   if (submitButton == 0) {
      submitButton++;
      return true;
   } else {
      alert("Vänta på att bokningen genomförs.");
      return false;
   }
}

    function getHeight (target) {
      var r = -1;
      if (target.clientHeight) r = target.clientHeight;
      return r;
    }

function checkFontSize () {
      if (document.getElementById) {
        var h = getHeight (document.getElementById ('heightTestLayer'));
//        alert (h);
        if (h > 1) {
          if (currentStylesheet == 'smallest') {
            var smallestLimit = 12;
            var mediumLimit = 19;
          }
          if (currentStylesheet == 'smaller') {
            var smallestLimit = 8;
            var mediumLimit = 10;
          }
          if (currentStylesheet == 'medium') {
            var smallestLimit = 7;
            var mediumLimit = 10;
          }
          if (h < smallestLimit) {
//	    alert("hit");
            document.styleSheets (0).href = "/css/styles_smallest.css";
            currentStylesheet = 'smallest';
          }
          if (h > smallestLimit - 1 && h < mediumLimit + 1) {
            document.styleSheets (0).href = "/css/styles_small.css";
            currentStylesheet = 'smaller';
          }
          if (h > mediumLimit) {
            document.styleSheets (0).href = "/css/styles.css";
            currentStylesheet = 'medium';
          }
        }
      }
//      alert(document.styleSheets (0).href);
      autoResized = true;
      
      setTimeout ('autoResized = false', 100);
   
    }
   
    var currentStylesheet = 'medium';
    var autoResized = false;
   
function showresult(a,b,c,d) {
	//Båt,språk,datum,klocka (d används inte längre)
	popupWinSearch = window.open('/common/artister/getShipDateTime.aspx?ShipId=' + a + '&lang=' + b + '&Datum=' + c, 'Result', 'scrollbars=yes,resizable=yes,width=500,height=380');
	popupWinSearch.focus();
}
//Hämtar ett lager
function getLayer(sLayer){
	if (document.layers) var NS4 = true; else var NS4 = false;
	if (document.getElementById && !document.all) var NS6 = true; else NS6 = false;
	if (document.all && !window.opera) var IE = true; else var IE = false;
	
	if(NS6){
		sLayer = "document.getElementById('"+sLayer+"')"; 	
	}
	if(IE){
		sLayer = "document.all['"+sLayer+"']";
	}
	if(NS4){
		sLayer = "document.layers[''"+sLayer+"''])";	
	}
	return eval(sLayer);;
}
function showAvgangsInfo(i){
        oLayer=getLayer("avganginfo"+i);
	oLayer.style.visibility = "visible";

}
function hideAvgangsInfo(i){
	oLayer=getLayer("avganginfo"+i);
	oLayer.style.visibility = "hidden";
}
function underline(element) {
  element.style.textDecoration="underline";
} 
function removeUnderline(element) {
  element.style.textDecoration="none";
}
function checkElement(theValue) {
	if (document.getElementById(theValue) != null) {
		return true;
	} else {
		return false;
	}
}
function getCookie(check_name) {
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; 

	for ( i = 0; i < a_all_cookies.length; i++ ) {
		a_temp_cookie = a_all_cookies[i].split( '=' );
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
		if (cookie_name == check_name) {
			b_cookie_found = true;
			if ( a_temp_cookie.length > 1) {
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if (!b_cookie_found) {
		return null;
	}
}
function createCookie(name, value, expires) {
	var today = new Date();
	today.setTime( today.getTime() );
	if (expires) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name + "=" +escape( value ) + (( expires ) ? ";expires=" + expires_date.toGMTString() : "" );

}
function deleteCookie(name, path) {
	if (getCookie( name )) {
		document.cookie = name + "=" + 	( ( path ) ? ";path=" + path : ""); + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
	}
}
function checkCookies() {
	createCookie( 'test', 'none', '');
	if (getCookie('test')) {
		cookie_set = true;
		deleteCookie('test', '/', '');
		return true;
	} else {
		//if(language == 1) {
		//		alert("Matkapaketteja ei voi yhdistää muihin alennuksiin. Niiden yhteydessä voi käyttää ainoastaan henkilöluokkaa 'Aikuinen'. ");
		//}
		//if(language == 2) {
		//		alert("För att bokningen skall fungera så smidigt som möjligt rekommenderar vi att ni aktiverar kakor (cookies) i er webbläsare.");
		//}
		//if(language == 3) {
		//		alert("Broneerimisel vali menüüst reisijaks 'Täiskasvanu'. Toode ei kehti koos teiste allahindluste või sooduspakkumistega");
		//}
		cookie_set = false;
		return false;
	}
}
