<!--

//Globals
var objFrm
var objBrw = new Object()
	objBrw.NE4 = false
	objBrw.Opera = false
	objBrw.IE = false
	objBrw.NE6 = false
var bSubmitted = false
var msg = new Object()
var sLang 	
	
function processIni() {
	objFrm = document.forms.frmMain
	objBrw.NE4 = (document.layers)? true:false
	objBrw.Opera = (navigator.userAgent.indexOf("Opera") != -1) ? true: false
	objBrw.IE = (document.all && !objBrw.Opera)? true:false
	objBrw.NE6 = (document.getElementById && !document.all) ? true:false
	
	var bResultsPage = (objFrm.Source.value == "resultspage")? true : false


	if(!bResultsPage) {
		if ("text" == objFrm.elements[0].type) objFrm.elements[0].focus()		
		objFrm.SupportsScript.value = 'True'
		}
	else if (objBrw.IE && objFrm.TabSelected.value == '1') formatBold()
		

	//defaults
	bSubmitted = false
	

	sLang = objFrm.Language.value.toString().toLowerCase()
	if (sLang == '') sLang == 'se'

	// populate msg object
	
	if(sLang =='en'){
			msg.pleasewait = 'Please wait, search in progress ..'
			msg.error='Javascript error:'
			msg.min2chars = 'Please type a seach-word with minimum 2 letters '
			msg.timeformat = 'You have not stated a valid time:'
			msg.dateformat = 'You have used an incorrect date format (yymmdd): '
			msg.noselection = 'No travel alternative selected'
			msg.validto = 'Jouneys can be searched until '
			msg.nameit = 'Name journey'
			msg.remove = 'Remove this journey'
			}
	else if(sLang == 'de') {
			msg.pleasewait = 'Bitte warten, Verbindung wirt gesucht ..'
			msg.error='Javascript :'
			msg.min2chars = 'Suchwort (mind. 2 Buchstaben) eingeben'
			msg.timeformat = 'Sie gaben eine ungültige Uhrzeit an: '
			msg.dateformat = 'Ungültiges Datumformat (Jahr-Monat-Tag): '
			msg.noselection = 'Keine Reise-alternative gewählt'
			msg.validto = 'Reisesuche möglich bis einschl. '
			msg.nameit = 'Reise benennen'
			msg.remove = 'Reise entfernen'
			}
	else if(sLang == 'dk'){
			msg.pleasewait = 'Vent venligst, søgningen pågår ..'
			msg.error='Javascript fel:'
			msg.min2chars = 'indtast et søgeord med mindst 2 bogstaver'
			msg.timeformat = 'Du har angivet et ugyldigt klokkeslæt: '
			msg.dateformat = 'Du har angivet forkert datoformat (ååmmdd): '
			msg.noselection = 'Inget resalternativ valt'
			msg.validto = 'Rejser kan søges til og med '
			msg.remove= 'Fjern rejse'
			msg.nameit = 'Namge resa'
			}
	else {
			msg.pleasewait = 'v.v. vänta sökning pågår ..'
			msg.error='Javascript fel:'
			msg.min2chars = 'Du måste ange minst 2 tecken'
			msg.timeformat = 'Du har angivit ett icke giltigt klockslag: '
			msg.dateformat = 'Du har angivit fel datum-format (ååmmdd): '
			msg.noselection = 'Inget resalternativ valt'
			msg.validto = 'Resor kan sökas t o m '
			msg.nameit = 'Namge resa'
			msg.remove = 'Ta bort denna resa'		
			}
	
}

//Line feed
var lnbreak = (navigator.appVersion.lastIndexOf('Win') != -1)? "\r\n":"\n"

//Global ClientScript Error Handling & logging
function errorHandler(message, url, line)
{
	alert(msg.error + message) //for dubugging purposes only!		
	
 	// stop the event from bubbling up to the default window.onerror handler
   	return true
}

// install the global error-handler
window.onerror = errorHandler

//initialize
window.onload = processIni



function form_onSubmit(objForm){

	if (objFrm == null) return false
	
	if (bSubmitted) {
		alert(msg.pleasewait)
		return false //prevents multi button press
		}

	var objCtr
	
	objCtr = objFrm.inpPointFr
	if ("text" == objCtr.type) {
		if(objCtr.value.length < 2){alert(msg.min2chars);objCtr.focus();return false}
		}
	objCtr = objFrm.inpPointTo
	if ("text" == objCtr.type) {	
		if(objCtr.value.length < 2){alert(msg.min2chars);objCtr.focus();return false}
		}
	if(!objBrw.Opera) bSubmitted = true
	return true
}


function formatBold(){

	var iNumElems = objFrm.elements.length;
  	
	// Get all checkboxes
  	for (var i=0; i<iNumElems; i++){
    	var eElem =  objFrm.elements[i];
    	if ("checkbox" == eElem.type){
      		toggleBold(eElem, eElem.value-1) 
    		}    
  	}
	
	
}


function toggleBold(oChkBox,num) {
	if (objBrw.IE){	
	for (var i=1; i<7; i++){
		if(oChkBox.checked){document.all("row" + String(num) + String(i)).style.fontWeight="bold"}
		else{document.all("row" + String(num) + String(i)).style.fontWeight="normal"	}
		}

	oChkBox.blur()
	}
}


function checkNumeric(oInpBox){
	var inpValue = oInpBox.value
	var sNumericVal = ""
	var i = 0
	while ((i < inpValue.length) ){
		if ( (inpValue.charAt(i) >= "0") && (inpValue.charAt(i) <= "9" )) sNumericVal += inpValue.charAt(i)
		i++
		}
	
	oInpBox.value = sNumericVal
}

function checkTime(oInpTime){	
	
	if(oInpTime.value.length==2) oInpTime.value = oInpTime.value + "00"
	if(oInpTime.value.length==3) oInpTime.value = "0" + oInpTime.value
	
	var retVal = false
	var strVal = oInpTime.value
	
	if(strVal.length == 4){
		if(!isNaN(strVal)){
			while(strVal.charAt(0) == '0') strVal = strVal.substring(1, strVal.length)
			if(strVal == '') strVal = '0'
			var intTime = parseInt(strVal)
			if(intTime<2400 && intTime >= 0){
				if(intTime%100<60){
					retVal = true
				}
			}
		}
	}

	if (retVal == false) {
			alert(msg.timeformat + oInpTime.value)		
			if(objBrw.NE4) objFrm.selDirection.focus() //prevents recursion i NE4
			}
				
}



function submitAction(sAction,iInd){	

	// action options: details;overview;retour;previous;next
	//ver 04b: call processIni if window_onLoad not executed
	if (objFrm == null) processIni() 
	if (objFrm.cmdAction == null) return
	
	sAction = sAction.toLowerCase()

	if (sAction=='personal') objFrm.Personal.value = true		
	else if (sAction=='overview' || sAction=='details' || sAction=='itinerary' || sAction == 'mapwithitinerary' ) objFrm.Personal.value = false


	if (sAction=='itinerary' || sAction=='details' || sAction=='personal' || sAction=='mapwithitinerary'){
		
		var iNumElems = objFrm.elements.length;
  		var iChecked = -1

		// Get all checkboxes
  		for (var i=0; i<iNumElems; i++){
    		var eElem = objFrm.elements[i];
    		if ("checkbox" == eElem.type){ 
			iChecked = 0
			if(eElem.checked) {
				iChecked = 1
				break //exit loop
				}
			}    
  		}
		
		if (iChecked == 0 ){
			alert(msg.noselection)	
			return 
		}
		
	}


	objFrm.action="resultspage.asp"
	objFrm.cmdAction.value=sAction


	if (sAction=='retour'){
		var bLite=objFrm.LiteMode.value.toString().toLowerCase()
		if(bLite == 'true') objFrm.action="queryPage_lite.asp"
		else objFrm.action="queryPage_adv.asp"
	}
	
	else if (sAction=='querypage_lite.asp' || sAction=='querypage_adv.asp' || sAction=='myjourney.asp'){
		objFrm.action=sAction
		objFrm.cmdAction.value="chtab"
	}

	
	objFrm.submit()		
	

}

function NewSearch(sTarget){
	if (objFrm == null) processIni() 
	if (objFrm.cmdAction == null) return

	if (sTarget=='querypage_lite.asp' || sTarget=='querypage_adv.asp' || sTarget=='queryStation.asp'){
		objFrm.action=sTarget
		objFrm.cmdAction.value=""
		if (objFrm.Source.value !="querypage_adv") objFrm.inpDate.value=""
		objFrm.inpTime.value=""
		objFrm.submit()	
	}
}


function wOpen(inURL,inHeight,inWidth,sName){
	var newWindow
	var xLeft
	var yTop
	newWindow=window.open (inURL, sName, 'resizable=1,scrollbars=0,width='+inWidth+',height='+inHeight)
	xLeft=(screen.width-inWidth)/2
	yTop=(screen.height-inHeight-50)/2
	newWindow.moveTo(xLeft,yTop) // absolute positioning
	newWindow.focus()
}

function wOpenHelp(inType,strParam){
	if (objFrm == null) return 
	//inType = 0(index) 1(help) 2(faq)

	var sUrl= 'help/default.asp?'
	if (inType == 0) sUrl += 'show=' + strParam
	else if(inType == 1) sUrl += 'page=' + strParam
	else sUrl += 'faq=true'

	sUrl += '&lang=' + sLang 
	sUrl += '&EU_spirit=' + objFrm.EU_Spirit.value 

	wOpen(sUrl, 545, 445, 'help')
}

function wOpenDev(inURL,inHeight,inWidth){
	if (objFrm == null) processIni() 
	if (objFrm.CacheFile == null) return
	
	var sUrl = inURL + '&id=' + objFrm.CacheFile.value

	var newWindow=window.open (sUrl, 'Trafikstörning', 'resizable=1,scrollbars=1,width='+inWidth+',height='+inHeight)
	var xLeft=(screen.width-inWidth)/2
	var yTop=(screen.height-inHeight-50)/2
	newWindow.moveTo(xLeft,yTop) // absolute positioning
	newWindow.focus()

}

///////////////////// Customer specific code - ST sweco maps /////////////////////////////////////

function wOpenMap(inType,w,h){

	
	if (objFrm == null) return 
	//inType = 0(from) 1(to) -1(queryStation)

	var sUrl = 'http://www.karta.skanetrafiken.se'
	var currDomain = document.domain

	if (currDomain.indexOf("skanetrafiken.se") != -1) {sUrl = 'http://www.karta.skanetrafiken.se'; document.domain='skanetrafiken.se'}
	if (currDomain.indexOf("skanetrafiken.skane.se") != -1) {sUrl = 'http://www.karta.skanetrafiken.skane.se';document.domain='skanetrafiken.skane.se'}


	sUrl +=  '/selectwindow/selectwindow6.aspx?'

	sUrl += 'optFrTo=' + inType 	
	sUrl += '&lang=' + sLang + '&optType='

	if (inType != -1) {
	//new EU-Spirit regionbox
		if (inType == 0) sUrl += objFrm.selRegionFr.selectedIndex	
		else sUrl += objFrm.selRegionTo.selectedIndex	

		sUrl += "&rsh=" + getRSH()
	}else{
		sUrl += "0"
	}

	var newWindow	
	newWindow=window.open (sUrl, 'OpenMap','resizable=1,scrollbars=0,width=516,height=560')

}


function wOpenShowOnMap(iFrTo){

	var sUrl = ''
	var currDomain = document.domain

	if (currDomain.indexOf("skanetrafiken.se") != -1) {sUrl = 'http://www.karta.skanetrafiken.se'; document.domain='skanetrafiken.se'}
	if (currDomain.indexOf("skanetrafiken.skane.se") != -1) {sUrl = 'http://www.karta.skanetrafiken.skane.se';document.domain='skanetrafiken.skane.se'}


	sUrl +=  '/selectwindow/selectwindow6.aspx?'


	var sName
	var iItemIndex
	var i 
	
	sUrl += 'lang=' + sLang 

	sUrl += '&optFrTo=' + iFrTo + "&"

	if (iFrTo==0){//From 		
		
		iItemIndex = objFrm.selPointFr.selectedIndex	
		i = iItemIndex - 5
		if(i < 0) i=0
		

		for (var j=i; j<i+10; j++){
			if(j < objFrm.selPointFr.length){	
				sName = objFrm.selPointFr.options[j].value
				if(objFrm.Source.value != 'querypage_adv'){
					sName = sName.substring(0, sName.length-2)					
				}					
				sName = URLEncode(sName)
				sUrl += 'item=' + sName + aCoordsFr[j] + '&'	
				}
			}
			sUrl += 'selectedIndex=' + (iItemIndex - i)


		}
	else if (iFrTo==1){//To 
		iItemIndex = objFrm.selPointTo.selectedIndex	
		i = iItemIndex - 5
		if(i < 0) i=0
		

		for (var j=i; j<i+10; j++){
			if(j < objFrm.selPointTo.length){
				sName = objFrm.selPointTo.options[j].value
				if(objFrm.Source.value != 'querypage_adv'){
					sName = sName.substring(0, sName.length-2)					
				}
				sName = URLEncode(sName)
				sUrl += 'item=' + sName + aCoordsTo[j] + '&'	
				}
			}
			sUrl += 'selectedIndex=' + (iItemIndex - i)


		}
	else if (iFrTo==2){//Interm
		iItemIndex = objFrm.selPointInterm.selectedIndex	
		sName=URLEncode(objFrm.selPointInterm.options[iItemIndex].text)
		sUrl += 'name=' + sName + aCoordsInterm[iItemIndex]
		}

	else if (iFrTo==-1){//queryStation
		iItemIndex = objFrm.selSingleStation.selectedIndex	
		i = iItemIndex - 5
		if(i < 0) i=0
		

		for (var j=i; j<i+10; j++){
			if(j < objFrm.selSingleStation.length){
				sName = objFrm.selSingleStation.options[j].value				
				sName = URLEncode(sName)
				sUrl += 'item=' + sName + aCoordsFr[j] + '&'	
				}
			}
			sUrl += 'selectedIndex=' + (iItemIndex - i)

		}

	sUrl += "&rsh=" + getRSH()

	var newWindow	
	newWindow=window.open (sUrl, 'ShowOnMap','resizable=1,scrollbars=0,width=516,height=540')

}

function getRSH(){
	if (objFrm == null) return 0
	if (objFrm.LiteMode.value=="True" ) return 0

	var RSHsum = 0
	var iNumElems = objFrm.elements.length
		for (var i=0; i<iNumElems; i++){
    		var eElem = objFrm.elements[i]
    		if ("RSH" == eElem.name){
			if(eElem.checked == true) RSHsum += eElem.value
			}   
		} 
	
	return parseInt(RSHsum)

}

//Encode URL on client rather then Servrer.URLEncode
function URLEncode(inUrlString)
{
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetci
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()&?/:=[]";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = inUrlString;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "%20";				
		} else if (ch == "," || ch == "&") {
		    encoded += ""; //forbidden chars in Sweco code
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" + ch + "' cannot be encoded using standard URL encoding.\n" +
				        "(URL encoding only supports 8-bit characters.)\n" +
						"A space (+) will be substituted." );
				encoded += "+";
			} else {				
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for	
	return  encoded;
} 
//-->
