/*** functions-standard.js ***/

// Modification log
// (date)      (author) (activity/purpose)
// 20050419 ASO         Rettet opp en bug i printFlashXHTML for bakgrunnsfarger p� prosentvise flasher
// 20050201 ASO         La til parameter p� printFlashXHTML for � spesifisere ID til object taggen
// 20050201 ASO         La til sjekk p� flash v8 for IE (just in case)
// 20050201 ASO         printFlashXHMTL er oppgradert til � ta mot prosentvise h�yder og variabelt antall parametre til flashen via en ekstra assosiativ array
// 20040414 ASO         La til en ekstra parameter i funksjonen printFlashXHTML for � sette farge p� flashen
// 20040323 ASO         La inn funksjoner knyttet til � sette inn flash element
// 20040319 CA       ny funksjon, externalLinks()
// 20040506 CA       endret isNotValidEmailFormat() slik at den aksepterer TLD inntil 4 karakterer
// Todo
// (date)      (author) (activity/purpose)

/**
 * Diverse javascriptfunksjoner, standard for alle siter
 *
 * @author Anders S. Oefsdahl <anders at apt no>
 * @author Christopher Aalholm <christopher at apt no>
 * @version 1.0.6
 * @copyright apt as 2004-2005
 */

/**
 * Om debug/tracer layer skal vises eller ikke
 * @var  boolean
 */
var boolDoTrace            = false;
/**
 * Navn p� layer som debug/trace funksjonen skal bruke
 * @var  string
 */
var strTracerDestination   = "divTrace";
/**
 * Max antall linjer i debug/trace vinduet f�r �verste linje cleares, sett til 0 om vinduet aldri skal cleares
 * @var  integer
 */
var intTracerMaxLines      = 20;
/**
 * Om brukeren har rett versjon av flash
 * @var  boolean
 */
var hasRightVersion = false;
/**
 * Om brukeren har installert versjon 4 av flash
 * @var  boolean
 */
var flash4Installed = false;
/**
 * Om brukeren har installert versjon 5 av flash
 * @var  boolean
 */
var flash5Installed = false;
/**
 * Om brukeren har installert versjon 6 av flash
 * @var  boolean
 */
var flash6Installed = false;
/**
 * Om brukeren har installert versjon 7 av flash
 * @var  boolean
 */
var flash7Installed = false;
/**
 * Hvilken flashversjon som er p�krevd, kan overstyres i funksjonen printFlashXHTML()
 * @var  integer
 */
var requiredFlashVersion = 6;
/**
 * Maks versjoner av flash som er laget
 * @var  integer
 */
var maxVersion          = 7;
/**
 * Installert versjon av flash hos brukeren
 * @var  integer
 */
var installedVersion = 0;
/**
 * Om brukeren bruker Internet Explorer eller ikke
 * @var  boolean
 */
var isIE    = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
/**
 * Om brukeren sitter p� Windows eller ikke
 * @var  boolean
 */
var isWin   = (navigator.appVersion.indexOf("Windows") != -1) ? true : false;

/**
 * Om brukeren har internet explorer og sitter p� windows, skriv ut vbscript som sjekker flashversjon
 */
if ((isIE) && (isWin)) {
   document.write('<scr' + 'ipt language="VBScript"\>\n');
   document.write('on error resume next \n');
   document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
   document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');
   document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');
   document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');
   document.write('flash8Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8"))) \n');
   document.write('</scr' + 'ipt\> \n');
}

/**
 * Skriver ut debug/trace informasjon
 *
 * @access public
 * @param string  strOutput         Debug/trace informasjonen som skal brukes
 * @param integer intAddTimestamp      Om du �nsker � legge til timestamp p� tracingen, sett denne variablen til 1, standardverdi er 0
 * @return void
 */
function doTrace(strOutput, intAddTimestamp) {
   if (boolDoTrace) {
      var d = document.getElementById(strTracerDestination);
      var boolAddTimestamp;
      if (!intAddTimestamp)   boolAddTimestamp=false; else boolAddTimestamp=true;
      if (d) {
         strTimestamp = "";
         if (boolAddTimestamp) {
            var objDate = new Date();
            strTimestamp = getPaddedString(objDate.getHours(), "0", 2)+":"+getPaddedString(objDate.getMinutes(), "0", 2)+":"+getPaddedString(objDate.getSeconds(), "0", 2)+":"+getPaddedString(objDate.getMilliseconds(), "0", 3);
         }
         var arrMatches = d.innerHTML.match(/<br/g);
         if (arrMatches != null) {
            if (intTracerMaxLines>0) {
               if (arrMatches.length > intTracerMaxLines) {
                  var strInnerHTML = d.innerHTML;
                  var intPos = strInnerHTML.indexOf("<br");
                  d.innerHTML = (intPos!=-1) ? strInnerHTML.substr(intPos+4) : strTimestamp+": "+strOutput+"<br />\n";
               } else d.innerHTML += strTimestamp+": "+strOutput+"<br />\n";
            } else d.innerHTML += strTimestamp+": "+strOutput+"<br />\n";
         } else {
            if (intTracerMaxLines>0) {
               d.innerHTML = (d.innerHTML.length > 1000) ? strTimestamp+": "+strOutput+"<br />\n" : d.innerHTML+strTimestamp+": "+strOutput+"<br />\n";
            } else d.innerHTML += strTimestamp+": "+strOutput+"<br />\n";
         }
      }
   }
}

/**
 * Legger til x antall karakterer til en text
 *
 * @access public
 * @param string  strValue    Stringen som skal f�r noe tillagt
 * @param string  strPadValue    Stringen som blir lagt til
 * @param integer intLength      Hvor mange tegn strengen skal v�re totalt
 *
 * @return string Den nye strengen
 */
function getPaddedString(strValue, strPadValue, intLength) {
   var strRet = "";
   strValue = strValue.toString();
   for (var i=0; i<(intLength-strValue.length); i++) {
      strRet += strPadValue;
   }
   strRet += strValue;
   return (strRet);
}

/**
 * Bytter ut .src p� ett bilde med ett annet
 *
 * @access public
 * @param string  strName     ID til bildet
 * @param integer intState Integer som spesifiserer tilstand til bildet, 0=_off.gif og 1=_on.gif
 * @return void
 */
function swapImg(strName,intState){
   var i;
   var newPath = "";
   var img  = document.images[strName];
   var imgSrc  = img.src;
   var path    = imgSrc.split('/');
   var imgname = path[(path.length-1)].split('_');
   for(i=0;i<(path.length-1);i++){
      newPath += path[i]+'/';
   }
   var newState   = (intState) ? '_on.gif':'_off.gif';
   var newName    = imgname[0]+newState;
   var newSrc     = newPath+newName;
   img.src     = newSrc;
}

/**
 * Fjerner spacer i en string med regul�rt uttrykk
 *
 * @access public
 * @param string  strText     Teksten som skal f� spacer fjernet
 * @return string Den nye teksten uten spacer
 */
function removeSpaces(strText) {
    var re   = /[\s]/g;
    return strText.replace(re,'');
}

/**
 * Sjekker om en streng er ett tall (enten float eller integer)
 *
 * @access public
 * @param string  strInput Teksten som skal sjekkes
 * @return boolean   True om teksten er en integer eller float
 */
function isNumber(strInput){
   var item = parseInt(strInput, 10);
   if(isNaN(item)){
      return false;
   }
   item = parseFloat(strInput);
   if(isNaN(strInput)) {
      return false;
   }
   return true;
}

/**
 * Sjekker om en string er tom
 *
 * @access public
 * @param string  strInput Strengen som skal sjekkes
 * @return boolean   True om teksten er tom
 */
function isEmpty(strInput){
   var str = removeSpaces(strInput);
   if(str == "" || str == null || str.length == 0){
      return true;
   }else{
      return false;
   }
}

/**
 * Sjekker om en radioknapp er trykket
 *
 * @access public
 * @param object objRadio  Object av typen input type radio
 * @return boolean   True om radioknappen er markert
 */
function radioChecked(objRadio){
   var boolChecked = false;
   for(i=0;i<objRadio.length;i++){
      if(objRadio[i].checked){
         boolChecked = true;
      }
   }
   return boolChecked;
}

/**
 * Sjekker om en streng er en gyldig epost via ett regul�rt uttrykk
 *
 * @access public
 * @param string  strEmail Strengen som skal sjekkes
 * @return boolean   True om strengen er en epostadresse
 */
function isNotValidEmailFormat(strEmail){
   var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
   var check=/@[\w\-]+\./;
   var checkend=/\.[a-zA-Z]{2,4}$/;
   if(((strEmail.search(exclude) != -1)||(strEmail.search(check)) == -1)||(strEmail.search(checkend) == -1)){
      return true;
   } else {
      return false;
   }
}

/**
 * Sjekker om en string er ett gyldig telefonnummer
 *
 * @access public
 * @param string  strNo Tallet som skal sjekkes
 * @param string  strType  Om nummeret skal v�re mobilnummer eller vanlig tlfnummer, sett til 'mobile' om du vil sjekke p� mobilnummer
 * @return boolean   True om nummeret er ett norsk telefonnummer (uten +47) foran
 */
function notValidPhonenumber(strNO, strType){
   var re = (strType == 'mobile') ? /^[489]/ : /^[23567]/;
   var strNumber = removeSpaces(strNO);
   if(strNumber.length != 8){
      return true;
   }
   if(!isNumber(strNumber)){
      return true;
   }
   if(strNumber.search(re) == -1){
      return true;
   }
   return false;
}

/**
 * Sjekker alle anchors p� en side og setter target="_blank" dersom de har rel="external"
 *
 * @access private
 * @return void
 * @since 1.0.1
 */
function externalLinks(){
   if (!document.getElementsByTagName) return;
   var anchors = document.getElementsByTagName("a");
   for(var i=0;i<anchors.length; i++){
      var anchor = anchors[i];
      if(anchor.getAttribute("href") && anchor.getAttribute("rel") == "external"){
         anchor.target = "_blank";
      }
   }
}

/**
 * Sjekker om brukeren har rett flash versjon
 *
 * @access public
 * @param integer intRequired Hvilken flashversjon som er p�krevd
 * @return boolean   Returnerer verdien av variablen hasRightVersion
 * @see printFlashXHTML()
 * @since 1.0.2
 */
function checkForFlash(intRequired){
   hasRightVersion = false;
   if(!isIE){
      flash4Installed = false;
      flash5Installed = false;
      flash6Installed = false;
      flash7Installed = false;
   }
   requiredFlashVersion = (intRequired) ? intRequired : requiredFlashVersion;
   if(navigator.plugins){
      if(navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]){
         var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
         var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
         var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
         flash4Installed = flashVersion == 4;
         flash5Installed = flashVersion == 5;
         flash6Installed = flashVersion >= 6;
         flash7Installed = flashVersion >= 7;
         flash8Installed = flashVersion >= 8;
      }
   }
   for(var i = 4; i <= maxVersion; i++){
      if (eval("flash" + i + "Installed") == true){
         installedVersion = i;
      }
   }
   if (installedVersion >= requiredFlashVersion){
      hasRightVersion = true;
   }
   return hasRightVersion;
}

/**
 * Skriver ut object tag som er XHTML kompatibel for � sette inn flash element
 *
 * @access public
 * @param integer intRequired       Hvilken flashversjon brukeren m� ha
 * @param string  strFlashSwfUrl    URL til flash elementet
 * @param integer intWidth       Bredde p� flashelementet
 * @param integer intHeight         H�yde p� flashelementet
 * @param string  strFallbackImageUrl  URL til fallbackbilde
 * @param string  strLink           Link som blir lagt til fallbackbildet om det er satt
 * @param string  strSitemapUrl     Eventuellt imagemap som skal legges p� fallbackbildet
 * @param string  strFallbackHTML      Alternativ HTML for � legge inn om ikke bruker har rett flashversjon
 * @param string  strColor       Bakgrunnsfarge p� flashen (ink #), default satt til ingenting, dvs ingen param sendes til flash
 * @param string  arrParams         Assosiativ array med parametre til flashen, default er menu=false, quality=high, allowScriptAccess=sameDomain
 * @param string  strID          ID p� object taggen
 * @return void
 * @see checkForFlash()
 * @since 1.0.2
 */
function printFlashXHTML(intRequired,strFlashSwfUrl,intWidth,intHeight,strFallbackImageUrl,strLink,strSitemapUrl,strFallbackHTML,strColor,arrParams,strID) {
   var str = '';
   var sitemap = (strSitemapUrl) ? ' usemap="#'+strSitemapUrl+'" ':'';
   if(checkForFlash(intRequired)){
      var strColorUse = (strColor) ? '<param name="bgcolor" value="'+strColor+'">' : '';
      var strAttrID = (strID) ? 'id="'+strID+'"' : '';
      if (arrParams) {
         arrFlashParams = arrParams;
      } else {
         var arrFlashParams = new Array();
         arrFlashParams.menu = 'false';
         arrFlashParams.quality = 'high';
         arrFlashParams.allowScriptAccess = 'sameDomain';
      }
      if (intWidth.toString().indexOf('%')==-1) {
         /**
          * Kode som genererer flashtag for spesifisert bredde/h�yde
          */
         str += '<object type="application/x-shockwave-flash" data="'+strFlashSwfUrl+'" width="'+intWidth+'" height="'+intHeight+'" '+strAttrID+'>';
         str += '<param name="movie" value="' + strFlashSwfUrl + '" />';
         for (key in arrFlashParams) {
            str += '<param name="'+key+'" value="'+eval('arrFlashParams.'+key)+'" />';
         }
         str += strColorUse;
         str += '</object>';
      } else {
         /**
          * Kode som genererer flashtag for prosentvis bredde/h�yde, fordi det er % flash og 4.01 doctype brukes m� vi skrive ut object og embed
          */
         str += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="'+intWidth+'" height="'+intHeight+'" '+strAttrID+'>';
         str += '<param name="movie" value="' + strFlashSwfUrl + '" />';
         str += strColorUse;
         for (key in arrFlashParams) {
            str += '<param name="'+key+'" value="'+eval('arrFlashParams.'+key)+'" />';
         }
         str += '  <embed bgcolor="'+strColor+'" src="'+ strFlashSwfUrl+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+intWidth+'" height="'+intHeight+'" ';
         for (key in arrFlashParams) {
            str += key+'="'+eval('arrFlashParams.'+key)+'" ';
         }
         str += '></embed></object>';
      }
   }else{
      if(strFallbackImageUrl){
         if(strLink){
            str += '<div><a href="'+strLink+'"><img src="' + strFallbackImageUrl + '" width="' + intWidth + '" height="' + intHeight + '" alt="" '+sitemap+'/></a></div>';
         }else{
            str += '<div><img src="' + strFallbackImageUrl + '" width="' + intWidth + '" height="' + intHeight + '" alt="" '+sitemap+'/></div>';
         }
      } else if (strFallbackHTML) {
         str += strFallbackHTML;
      }
   }
   document.write(str);
}

/*** functions-other.js ***/

function popUp(strURL, strName, strType, strHeight, strWidth) {
   var strOptions="";
   if (strType=="popup")
      strOptions="location=0,menubar=1,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,height="+strHeight+",width="+strWidth;
   if (strType=="minimal")
      strOptions="location=0,menubar=0,resizable=0,scrollbars=0,status=0,titlebar=0,toolbar=0,height=1,width=1";
   window.open(strURL, strName, strOptions);
}
function popUp2(strURL, strName, strType, strHeight, strWidth) {
   var strOptions="";
   var width = 20 + Number(strWidth);
   var height = 30 + Number(strHeight);
   if(width > 800){
	var x = 800 / width;
	width = 800;
	height = height * x;
   }
   if(height > 600){
	var y = 600 / height;
	height = 600;
	width = width * y;
   }
   strOptions="location=no,menubar=no,resizable=yes,scrollbars=no,status=no,titlebar=no,toolbar=no,height="+height+",width="+width;
   window.open(strURL, strName, strOptions);
}
/*
Builds the query string for the recipe search form. The form passed in as a parameter
must have a query input field.
*/
function buildRecipeQuery(form){
   var query = '';
   var queries = 0;
   for (var i=0; i < form.length; i++){
      if(form.elements[i].type == 'select-one' && form.elements[i].value){
         if (queries == 0){
            query += '('
         } else if (queries > 0) {
            query += ' and ';
         }

         // Course type - multivalue
         if (form.elements[i].name == 'coursetype') {
            query += 'data/course/' + form.elements[i].value + '="true"' ;
         }
         // Occasion - multivalue
         else if (form.elements[i].name == 'occasion') {
            query += 'data/occasion/' + form.elements[i].value + '="true"' ;
         }
         // Season - multivalue
         else if (form.elements[i].name == 'season') {
            query += 'data/season/' + form.elements[i].value + '="true"' ;
         }
         else {
            // Product, Cooking time, difficulty, cuisine and/or cooking method
            query += 'data/key/' + form.elements[i].name;
            if (form.elements[i].name == 'raw_material') {
               query += '/content/@key';
            }
            query += '="' + form.elements[i].value + '"';
         }
         queries = queries + 1;
      }
   }
   if (queries > 0){
      query += ')'
   }
   form.query.value = query;
}
/* New function for building the recipe query. */

function buildRecipeQuery2(form ){		
	var query = '';
	var queries = 0;
								
	for (var i=0; i < form.length; i++){
		if(form.elements[i].type == 'select-one' && form.elements[i].value){
			if (queries == 0){
	            query += '('
	        } else if (queries > 0) {
	           	query += ' and ';
	        }
	        if (form.elements[i].name == 'coursetype') {
	           	query += 'data/course_new/content/@key="' + form.elements[i].value + '"';
	        }else if (form.elements[i].name == 'occasion') {
	           	query += 'data/occasion_new/content/@key="' + form.elements[i].value + '"';
	        }else if (form.elements[i].name == 'raw_material') {
	           	query += 'data/key/raw_material/content/@key="' + form.elements[i].value + '"';
	        }else if (form.elements[i].name == 'time') {
	           	query += 'data/key/time_new/content/@key="' + form.elements[i].value + '"';
	        }else if (form.elements[i].name == 'difficulty') {
	            query += 'data/key/difficulty_new/content/@key="' + form.elements[i].value + '"';
	        }
	    
	        queries = queries + 1;
		}
	}
	if (queries > 0){
      query += ')'
   	}
	form.query.value = query;
}


/*
Opens a new window for print preview. The page id is supplied as id parameter.
A query is built based on the formCookbookScreen form.
*/
function openPrintView( id ){
   var keys = new Array();
   var j = 0;
   var boxes = document.getElementById('formCookbookScreen').boxes.length;
   if( boxes == undefined ) {
      boxes = 1;
   }
   /*
   Special treatment when only one box - since there's no array incoming for the boxes, only
   one value.
   */
   if( boxes == 1 ) {
      if( document.getElementById('formCookbookScreen').boxes.checked == true) {
         keys[j] = document.getElementById('formCookbookScreen').boxes.value;
         j++;
      }
   }
   else {
      for( i = 0; i < boxes; i++) {
         if( document.getElementById('formCookbookScreen').boxes[i].checked == true) {
            keys[j] = document.getElementById('formCookbookScreen').boxes[i].value;
            j++;
         }
      }
   }

   var query = '';
   if( keys.length > 0 ) {
      query = '(';
      for( i = 0; i<keys.length; i++) {
         query += '@key=' + keys[i];
         if( i != keys.length - 1) {
            query += ' OR ';
         }
      }
      query += ')';
   }
   var openString = '';
   if(  keys.length > 0 ) {
      openString = 'page?id=' + id + '&query=' + query;
      window.open(openString);
   }
}

function submitDeleteForm( key) {
   document.getElementById('formDeleteItem').key.value = key;
   document.getElementById('formDeleteItem').submit();
}


/*
Submits the add-to-cookbook-form.
*/
function addToCookbook() {
   document.getElementById('formAddToCookbook').submit();
}

/*
Opens the page used to send a link for a page to a friend. The id of
the page, and the url to send, is supplied as parameters.
*/
function openSendPage(sendPageId) {
   window.open('page?id=' + sendPageId,'sendpage','resizable=1,width=705,height=400');
}
function openSendPageItaly(sendPageId) {
   window.open('page?id=' + sendPageId,'sendpage','resizable=1,width=705,height=440');
}



function validateSendPageForm(form) {
}

/*
Builds the article search query
*/
function buildArticleQuery(form, defaultSearchText, currentYear, area){
   var query = '';
   var queries = 0;
   for (var i=0; i < form.length; i++){
      if(form.elements[i].type != 'button' && form.elements[i].value && form.elements[i].value != defaultSearchText){
         queries = queries + 1;
      }
   }
   if (queries > 0){
      var searchText = form.search.value;
      var from = form.fromMonth.value;
      var to = form.toMonth.value;
      var year = form.year.value;
      if(!year && (from || to)){
         year = currentYear;
      }
      if(!from && (to || year)){
         from = year + '-01-01';
      }else if(from){
         from = year + '-' + from + '-01';
      }
      if((!to && (from || year)) || to == '01'){
         to = (parseInt(year) + 1) + '-01-01';
      }else if(to){
         to = year + '-' + to + '-01';
      }
      var firstElement = true;

      query += '(data/section/' + area + '="true"';
      firstElement = false;

      if(searchText && searchText != defaultSearchText){
         if(!firstElement) {
            query += ' AND ';
         }
         else {
            query += '(';
         }
         query += 'data/* CONTAINS "' + searchText + '"';
         firstElement=false;
      }

      if(from || to || year){
         if(!firstElement) {
            query += ' AND ';
         }
         else {
            query += '(';
         }
         query += '@publishfrom >= "' + from + '" AND @publishfrom < "' + to + '"';
         firstElement=false;

      }
      if(!firstElement) {
         query += ')';
      }
   }
   form.query.value = query;
}

function buildAdviceQuery(form,defaultSearchText){
   var query = '';
   var queries = 0;
   var defaultProductText = 'all products';
   var defaultCategoryText  = 'all categories';
   for (var i=0; i < form.length; i++){
      if(form.elements[i].type != 'button' && form.elements[i].value && form.elements[i].value != defaultSearchText){
         queries = queries + 1;
      }
   }
   if (queries > 0){
      var searchText = form.search.value;
      var product = form.product.value;
      var category = form.category.value;

      var firstElement = true;

      if( (searchText && searchText != defaultSearchText) || (product  && product != defaultProductText) ) {
         query = '(';
         if(searchText && searchText != defaultSearchText){
            query += '(data/heading CONTAINS "' + searchText + '" OR data/article/text CONTAINS "' + searchText + '" OR data/article/preface CONTAINS "' + searchText + '" OR data/teaser/preface CONTAINS "' + searchText + '" OR data/teaser/heading CONTAINS "' + searchText + '")';
            firstElement = false;
         }
         if( product  && product != defaultProductText) {
            if(!firstElement) {
               query += ' AND ';
            }
            query += 'data/related/raw_material/content/@key="' + product + '"';
         }
         query += ')';
      }
   }
   form.query.value = query;
   form.categories.value = category;
}

function buildEventFilterQuery(form, defaultSearchText, allMarketsText, allKindsText, allTargetsText, allTypesText ){
   var query = '';
   var queries = 0;

   for (var i=0; i < form.length; i++){
      if(form.elements[i].type != 'button' && form.elements[i].value && form.elements[i].value != defaultSearchText){
         queries = queries + 1;
      }
   }
   if (queries > 0){
      var searchText = form.search.value;
      var market = form.market.value;
      var kind = form.kind.value;
      var target = form.target_group.value;
      var type = form.type.value;

      var firstElement = true;

      var query;

      if( market  && market != allMarketsText) {
         if(firstElement) {
            query += '(';
         } else {
            query += ' AND ';
         }
         query += 'data/market/content/@key="' + market + '"';
         firstElement = false;
      }
      if( kind  && kind != allKindsText ) {
         if(firstElement) {
            query += '(';
         } else {
            query += ' AND ';
         }
         firstElement = false;
         query += 'data/kind/content/@key="' + kind + '"';
      }
      if( target  && kind != allTargetsText) {
         if(firstElement) {
            query += '(';
         } else {
            query += ' AND ';
         }
         firstElement = false;
         query += 'data/target_group/content/@key="' + target + '"';
      }
      if( type  && kind != allTypesText ) {
         if(firstElement) {
            query += '(';
         } else {
            query += ' AND ';
         }
         firstElement = false;
         query += 'data/type/content/@key="' + type + '"';
      }
      if(searchText && searchText != defaultSearchText){
         if(firstElement) {
            query += '(';
         } else {
            query += ' AND ';
         }
         firstElement = false;
         query += 'data/* CONTAINS "' + searchText + '"';
      }
      if(!firstElement) {
         query += ')';
      }
   }
   form.query.value = query;
}

function buildEmployeeQuery(form, defaultDepartmentText, defaultSearchText){
   var query = '';
   var queries = 0
   for (var i=0; i < form.length; i++){
      if(form.elements[i].type != 'button' && form.elements[i].value && form.elements[i].value != defaultSearchText){
         queries = queries + 1;
      }
   }
   if (queries > 0){
      var searchText = form.search.value;
      var department = form.department.value;

      var firstElement = true;

      if( (searchText && searchText != defaultSearchText) || (department  && department != defaultDepartmentText) ) {
         query = '(';
         if(searchText && searchText != defaultSearchText){
            query += '(data/* CONTAINS "' + searchText + '" OR data/firstname CONTAINS "' + searchText + '" OR data/title CONTAINS "' + searchText + '" OR data/department CONTAINS "' + searchText + '" OR data/location CONTAINS "' + searchText + '")';
            firstElement = false;
         }
         if( department  && department != defaultDepartmentText) {
            if(!firstElement) {
               query += ' AND ';
            }
            query += 'data/department="' + department + '"';
         }
         query += ')';
      }
   }
   form.query.value = query;
}

function buildContactQuery(form, defaultSearchText, defaultTradeText, defaultRegionText){
   var query = '';
   var queries = 0;
   for (var i=0; i < form.length; i++){
      if(form.elements[i].type != 'button' && form.elements[i].value && form.elements[i].value != defaultSearchText){
         queries = queries + 1;
      }
   }
   if (queries > 0){
      var searchText = form.search.value;
      var trade = form.trade.value;
      var region = form.region.value;
      var startswith = form.startswith.value;

      var firstElement = true;



      if( startswith  && startswith != '') {
         if(!firstElement) {
            query += ' AND ';
         }
         else {
            query += '(';
         }
         query += 'data/venture STARTS WITH "' + startswith + '"';
         firstElement = false;
      }

      if( trade  && trade != defaultTradeText) {
         if(!firstElement) {
            query += ' AND ';
         }
         else {
            query += '(';
         }
         query += 'data/trade/' + trade + ' LIKE "true"';
         firstElement = false;
      }
      if( region  && region != defaultRegionText) {
         if(!firstElement) {
            query += ' AND ';
         }
         else {
            query += '(';
         }
         firstElement = false;
         query += 'data/region/' + region + ' LIKE "true"';
      }
      if(searchText && searchText != defaultSearchText){
         if(!firstElement) {
            query += ' AND ';
         }
         else {
            query += '(';
         }
         firstElement = false;
         query += '(data/* CONTAINS "' + searchText + '")';
      }
      if(!firstElement) {
         query += ')';
      }
   }
   form.query.value = query;
}

function validateInvitationUserinput(form, errorMailText, errorNameText, fromText, inviteText, menuText, writesText) {

   var errorColor = "#FFCCCC";
   var bgColor = "white";
   var validateInput = new Array;
   var error = "";

   validateInput['to_email'] = new Object();
   validateInput['from_name'] = new Object();

   validateInput['to_email'].pattern = /^.+\@.+\..{2,4}$/;
   validateInput['to_email'].error = errorMailText;

   validateInput['from_name'].pattern = /^.{2,50}$/;
   validateInput['from_name'].error = errorNameText;

   for( var i=0; i < form.length; i++ ){
      if ( validateInput[form.elements[i].name] ){
         if ( !validateInput[form.elements[i].name].pattern.test(form.elements[i].value) ){
            error += document.getElementById(form.elements[i].name + "_txt").innerHTML + " -> " + validateInput[form.elements[i].name].error + "\n";
            document.getElementById(form.elements[i].name).style.backgroundColor = errorColor;
         }
         else {
            document.getElementById(form.elements[i].name).style.backgroundColor = bgColor;
         }
      }
   }

   if ( error != ''){
      alert( error );
      return false;
   }
   else{
      document.getElementById('to').value = document.getElementById('to_name').value + ';' + document.getElementById('to_email').value;
      document.getElementById('subject').value = fromText + ' ' + document.getElementById('from_name').value + '!';
      var text = "-------------\n\n" + document.getElementById('from_name').value + " " + inviteText + ".\n\n" + menuText + ": " + window.opener.location + ".";
      if (document.getElementById('message').value != '') {
         text += "\n\n" + document.getElementById('from_name').value + " " + writesText + ":\n" + document.getElementById('message').value;
      }
      document.getElementById('text').value = text;
      return true;
   }
}

function validateHuman(form, errorMsg) {
    if (form.question.value == form.answer.value)
        return true;
    else
    {
        alert( errorMsg );
        return false;
    }
}

function validateBuyerUserinput(form, requiredText) {
   var error = 0;
   if(form.venture.value == '') {
      error++;
   }
   if(form.contact_person.value == '') {
      error++;
   }
   if(form.email.value == '') {
      error++;
   }
   if(form.fax.value == '') {
      error++;
   }
   if(form.phone.value == '') {
      error++;
   }
   if(form.country.value == '') {
      error++;
   }
   if(form.text.value == '') {
      error++;
   }

   if ( error > 0){
      alert( requiredText );
      return false;
   }else{
      return true;
   }
}

function validateExporterUserinput(form, requiredText) {
   var error = 0;
   if(form.company.value == '') {
      error++;
   }
   if(form.organization_number.value == '') {
      error++;
   }
   if(form.ceo.value == '') {
      error++;
   }
   if(form.post_address.value == '') {
      error++;
   }
   if(form.zip.value == '') {
      error++;
   }
   
   if ( error > 0){
      alert( requiredText );
      return false;
   }else{
      return true;
   }
}

function validateUserinput(form, errorMailText, errorNameText, fromText, tipText, url, addressText, writesText) {
   var errorColor = "#FFCCCC";
   var bgColor = "white";
   var validateInput = new Array;
   var error = "";

   validateInput['to_email'] = new Object();
   validateInput['from_name'] = new Object();

   validateInput['to_email'].pattern = /^.+\@.+\..{2,4}$/;
   validateInput['to_email'].error = errorMailText;

   validateInput['from_name'].pattern = /^.{2,50}$/;
   validateInput['from_name'].error = errorNameText;

   for( var i=0; i < form.length; i++ ){
      if ( validateInput[form.elements[i].name] ){
         if ( !validateInput[form.elements[i].name].pattern.test(form.elements[i].value) ){
            error += document.getElementById(form.elements[i].name + "_txt").innerHTML + " -> " + validateInput[form.elements[i].name].error + "\n";
            document.getElementById(form.elements[i].name).style.backgroundColor = errorColor;
         }
         else {
            document.getElementById(form.elements[i].name).style.backgroundColor = bgColor;
         }
      }
   }

   if ( error != ''){
      alert( error );
      return false;
   }else{
      document.getElementById('to').value = document.getElementById('to_name').value + ';' + document.getElementById('to_email').value;
      document.getElementById('subject').value = fromText + ' ' + document.getElementById('from_name').value + '!';
      var text = "--------\n\n" + document.getElementById('from_name').value + " " + tipText + " " + url + ".\n\n" + addressText + " " + window.opener.location + ".";
      if (document.getElementById('message').value != '') {
         text += "\n\n" + document.getElementById('from_name').value + " " + writesText + ":\n" + document.getElementById('message').value;
      }
      document.getElementById('text').value = text;
      return true;
   }
}

function validateUserinputNoPopup(form, errorMailText, errorNameText, fromText, tipText, url, addressText, writesText) 
{
   var errorColor = "#FFCCCC";
   var bgColor = "white";
   var validateInput = new Array;
   var error = "";
   validateInput['to_email'] = new Object();
   validateInput['from_name'] = new Object();
   validateInput['to_email'].pattern = /^.+\@.+\..{2,4}$/;
   validateInput['to_email'].error = errorMailText;
   validateInput['from_name'].pattern = /^.{2,50}$/;
   validateInput['from_name'].error = errorNameText;
   for( var i=0; i < form.length; i++ )
   {
      if ( validateInput[form.elements[i].name] )
      {
         if ( !validateInput[form.elements[i].name].pattern.test(form.elements[i].value) )
         {
            error += document.getElementById(form.elements[i].name + "_txt").innerHTML + " -> " + validateInput[form.elements[i].name].error + "\n";
            document.getElementById(form.elements[i].name).style.backgroundColor = errorColor;
         }
         else 
         {
            document.getElementById(form.elements[i].name).style.backgroundColor = bgColor;
         }
      }
   }
   if ( error != '')
   {
      alert( error );
      return false;
   }
   else
   {
      document.getElementById('to').value = document.getElementById('to_name').value + ';' + document.getElementById('to_email').value;
      document.getElementById('subject').value = fromText + ' ' + document.getElementById('from_name').value; 
      
      var text = "\n" + document.getElementById('from_name').value + " " + tipText + "\n" + url + "\n\n" + addressText + " " + document.getElementById('sitename').value;

      if(document.getElementById('after-text') != null && document.getElementById('after-text').value != '')
      {
        text += " " + document.getElementById('after-text').value;
      }
      if (document.getElementById('message').value != '') 
      {
        text += "\n\n" + document.getElementById('from_name').value + " " + writesText + ":\n" + document.getElementById('message').value;
      }
      document.getElementById('text').value = text;
      return true;
   }
}







function validateLoginUserinput(form, requiredText){
   validateInput['uid'] = new Object();
   validateInput['password'] = new Object();
   validateInput['uid'].pattern = /^.+$/;
   validateInput['uid'].error = requiredText;
   validateInput['password'].pattern = /^.+$/;
   validateInput['password'].error = requiredText;
   return validate(form);
}

function validateChangePasswordUserinput(form, requiredText){
   validateInput['password'] = new Object();
   validateInput['newpassword1'] = new Object();
   validateInput['newpassword2'] = new Object();

   validateInput['password'].pattern = /^.+$/;
   validateInput['password'].error = requiredText;
   validateInput['newpassword1'].pattern = /^.+$/;
   validateInput['newpassword1'].error = requiredText;
   validateInput['newpassword2'].pattern = /^.+$/;
   validateInput['newpassword2'].error = requiredText;
   return validate(form);
}

function validateProfileUserinput(form, requiredText, missingText){
   validateInput['firstname'] = new Object();
   validateInput['surname'] = new Object();
   validateInput['email'] = new Object();

   validateInput['firstname'].pattern = /^.+$/;
   validateInput['firstname'].error = requiredText;
   validateInput['surname'].pattern = /^.+$/;
   validateInput['surname'].error = requiredText;
   validateInput['email'].pattern = /^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
   validateInput['email'].error = missingText;

   return validate(form);
}

function validateResetPasswordUserinput(form, missingText){
   validateInput['id'] = new Object();

   validateInput['id'].pattern = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
   validateInput['id'].error = missingText;

   return validate(form);
}
/*
Validation of form for ordering of material.
*/
function validateOrder(form, recipient){
	var error = true;
	var counter = 0;
	var fieldnames = new Array();
	for( var i=0; i<form.length; i++ ){
		if( startsWith("amount",form.elements[i].name) ){
			if( form.elements[i].value != '' && form.elements[i].value != NaN){
				fieldnames[counter] = form.elements[i].name;
				counter++;
				error = false;
			}
		}
	}
	if( error == true){
		return false;
	}
	var venture = form.venture.value;
	var name = form.name.value;
	var address = form.address.value;
	var zipcode = form.zipcode.value;
	var city = form.city.value;
	var country = form.country.value;
	if(venture == '' || name == '' || address == '' || zipcode == '' || city == '' || country == ''){
		return false;
	}
	var sort_order_names = 'name,address,zipcode,city,country,venture,email,phone,order,'+fieldnames.join()+',mail_group';
	form.to.value = recipient;
	form.from_email.value = recipient;
	form.sort_order.value = sort_order_names;
	return true;
}
/*
Validation of form for ordering of material.
*/
function validateOrder3(form, recipient){
	var rec = '';
	var pre = true;
	var regEx = new RegExp ("\\(a\\)") ;
	rec = recipient.replace(regEx, '@');
	var error = true;
	var counter = 0;
	var fieldnames = new Array();
	for( var i=0; i<form.length; i++ ){
		if( startsWith("amount",form.elements[i].name) ){
			if( form.elements[i].value != '' && form.elements[i].value != NaN){
				fieldnames[counter] = form.elements[i].name;
				counter++;
				error = false;
			}
		}
	}
	if( error == true){
		return false;
	}
	var venture = form.venture.value;
	var name = form.name.value;
	var address = form.address.value;
	var zipcode = form.zipcode.value;
	var city = form.city.value;
	var country = form.country.value;
	if(venture == '' || name == '' || address == '' || zipcode == '' || city == '' || country == ''){
		return false;
	}
	var sort_order_names = 'name,address,zipcode,city,country,venture,email,phone,order,'+fieldnames.join()+',mail_group';
	form.to.value = rec;
	form.from_email.value = rec;
	form.sort_order.value = sort_order_names;
	return true;
}
/*
Simple function for deciding if a string (str2) starts with another string(str2)
*/
function startsWith(str1, str2){
	var len = str1.length;
	var name = str2.substring(0, len);
	if( name == str1 ){
		return true;
	}
	return false;
}
/*** functions.js ***/

/**
 * Diverse javascriptfunksjoner, spesielt laget for siten
 *
 * @author Anders S. Oefsdahl <anders at apt no>
 * @version 1.0.0
 */

var objActiveGroup = '';

/**
 * Funksjoner som skal kj�res i onload-eventet legges inn her
 * @since 1.0.1
 */
window.onload = function(){
   externalLinks();
   setValueLISInactive();
}

/**
 * Setter class="active" p� li'en som a'en som kaller funksjonen ligger i
 * Nullstiller ogs� class om den globale objActiveGroup er satt
 *
 * @access  public
 * @since   20050622
 * @param   object   objLIA   Anchor taggen som trigger funksjonen
 * @return  void
 */
function setGroupActive(objLIA) {
   if (!objLIA.parentNode) {
      return;
   }
   if (objLIA.parentNode != objActiveGroup) {
      if (objActiveGroup != '') {
         strNewClass = objActiveGroup.className.replace('active', '');
         objActiveGroup.className = strNewClass;
         objActiveGroup = '';
      }
      if (objLIA) {
         if (objLIA.parentNode.className.indexOf('active')==-1) {
            objLIA.parentNode.className += ' active';
            objActiveGroup = objLIA.parentNode;
         }
      }
   } else {
      strNewClass = objActiveGroup.className.replace('active', '');
      objActiveGroup.className = strNewClass;
      objActiveGroup = '';
   }
}

/**
 * Henter ut alle <li> tagger i dokumentet, finner de som h�rer til <ul class="values"> og fjerner active fra deres klasse om bruker har javascript som st�tter objekt.parentNode
 *
 * @access  public
 * @since   20050622
 * @return  void
 */
function setValueLISInactive() {
/*
   if (!document.getElementsByTagName) {
      return;
   }
   var listelements = document.getElementsByTagName("li");
   if (listelements.length>0) {
      if (!listelements[0].parentNode) {
         return;
      }
      for (var i=0; i<listelements.length; i++) {
         var listelement = listelements[i];
         if (listelement.parentNode.className == 'values') {
            listelement.className = listelement.className.replace('active', '');
         }
      }
   }
*/
}
/**
 * Sender brukeren til adressen spesifisert i value-atributten til option-tagen
 *
 */

function gotoURL(select) {
   if (select.selectedIndex > 0) {
      document.location = select.options[select.selectedIndex].value;
   }
}

/*** sifr.js ***/

/* sIFR 2.0.1
   Copyright 2004 - 2005 Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben

   This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
*/

var hasFlash=function(){var a=6;if(navigator.appVersion.indexOf("MSIE")!=-1&&navigator.appVersion.indexOf("Windows")>-1){document.write('<script language="VBScript"\> \non error resume next \nhasFlash = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & '+a+'))) \n</script\> \n');if(window.hasFlash!=null)return window.hasFlash}if(navigator.mimeTypes&&navigator.mimeTypes["application/x-shockwave-flash"]&&navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){var b=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description;return parseInt(b.charAt(b.indexOf(".")-1))>=a}return false}();String.prototype.normalize=function(){return this.replace(/\s+/g," ")};if(Array.prototype.push==null){Array.prototype.push=function(){var i=0,a=this.length,b=arguments.length;while(i<b){this[a++]=arguments[i++]}return this.length}}if(!Function.prototype.apply){Function.prototype.apply=function(a,b){var c=[];var d,e;if(!a)a=window;if(!b)b=[];for(var i=0;i<b.length;i++){c[i]="b["+i+"]"}e="a.__applyTemp__("+c.join(",")+");";a.__applyTemp__=this;d=eval(e);a.__applyTemp__=null;return d}}function named(a){return new named.Arguments(a)}named.Arguments=function(a){this.oArgs=a};named.Arguments.prototype.constructor=named.Arguments;named.extract=function(a,b){var c,d;var i=a.length;while(i--){d=a[i];if(d!=null&&d.constructor!=null&&d.constructor==named.Arguments){c=a[i].oArgs;break}}if(c==null)return;for(e in c)if(b[e]!=null)b[e](c[e]);return};var parseSelector=function(){var a=/^([^#.>`]*)(#|\.|\>|\`)(.+)$/;function r(s,t){var u=s.split(/\s*\,\s*/);var v=[];for(var i=0;i<u.length;i++)v=v.concat(b(u[i],t));return v}function b(c,d,e){c=c.normalize().replace(" ","`");var f=c.match(a);var g,h,i,j,k,n;var l=[];if(f==null)f=[c,c];if(f[1]=="")f[1]="*";if(e==null)e="`";if(d==null)d=document;switch(f[2]){case "#":k=f[3].match(a);if(k==null)k=[null,f[3]];g=document.getElementById(k[1]);if(g==null||(f[1]!="*"&&!o(g,f[1])))return l;if(k.length==2){l.push(g);return l}return b(k[3],g,k[2]);case ".":if(e!=">")h=m(d,f[1]);else h=d.childNodes;for(i=0,n=h.length;i<n;i++){g=h[i];if(g.nodeType!=1)continue;k=f[3].match(a);if(k!=null){if(g.className==null||g.className.match("\\b"+k[1]+"\\b")==null)continue;j=b(k[3],g,k[2]);l=l.concat(j)}else if(g.className!=null&&g.className.match("\\b"+f[3]+"\\b")!=null)l.push(g)}return l;case ">":if(e!=">")h=m(d,f[1]);else h=d.childNodes;for(i=0,n=h.length;i<n;i++){g=h[i];if(g.nodeType!=1)continue;if(!o(g,f[1]))continue;j=b(f[3],g,">");l=l.concat(j)}return l;case "`":h=m(d,f[1]);for(i=0,n=h.length;i<n;i++){g=h[i];j=b(f[3],g,"`");l=l.concat(j)}return l;default:if(e!=">")h=m(d,f[1]);else h=d.childNodes;for(i=0,n=h.length;i<n;i++){g=h[i];if(g.nodeType!=1)continue;if(!o(g,f[1]))continue;l.push(g)}return l}}function m(d,o){if(o=="*"&&d.all!=null)return d.all;return d.getElementsByTagName(o)}function o(p,q){return q=="*"?true:p.nodeName.toLowerCase().replace("html:", "")==q.toLowerCase()}return r}();var sIFR=function(){var a="http://www.w3.org/1999/xhtml";var b=false;var c=false;var d;var ah=[];var al=document;var ak=al.documentElement;var am=window;var au=al.addEventListener;var av=am.addEventListener;var f=function(){var g=navigator.userAgent.toLowerCase();var f={a:g.indexOf("applewebkit")>-1,b:g.indexOf("safari")>-1,c:navigator.product!=null&&navigator.product.toLowerCase().indexOf("konqueror")>-1,d:g.indexOf("opera")>-1,e:al.contentType!=null&&al.contentType.indexOf("xml")>-1,f:true,g:true,h:null,i:null,j:null,k:null};f.l=f.a||f.c;f.m=!f.a&&navigator.product!=null&&navigator.product.toLowerCase()=="gecko";if(f.m)f.j=new Number(g.match(/.*gecko\/(\d{8}).*/)[1]);f.n=g.indexOf("msie")>-1&&!f.d&&!f.l&&!f.m;f.o=f.n&&g.match(/.*mac.*/)!=null;if(f.d)f.i=new Number(g.match(/.*opera(\s|\/)(\d+\.\d+)/)[2]);if(f.n||(f.d&&f.i<7.6))f.g=false;if(f.a)f.k=new Number(g.match(/.*applewebkit\/(\d+).*/)[1]);if(am.hasFlash&&(!f.n||f.o)){var aj=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description;f.h=parseInt(aj.charAt(aj.indexOf(".")-1))}if(g.match(/.*(windows|mac).*/)==null||f.o||f.c||(f.d&&(g.match(/.*mac.*/)!=null||f.i<7.6))||(f.b&&f.h<7)||(!f.b&&f.a&&f.k<124)||(f.m&&f.j<20020523))f.f=false;if(!f.o&&!f.m&&al.createElementNS)try{al.createElementNS(a,"i").innerHTML=""}catch(e){f.e=true}f.p=f.c||(f.a&&f.k<312)||f.n;return f}();function at(){return{bIsWebKit:f.a,bIsSafari:f.b,bIsKonq:f.c,bIsOpera:f.d,bIsXML:f.e,bHasTransparencySupport:f.f,bUseDOM:f.g,nFlashVersion:f.h,nOperaVersion:f.i,nGeckoBuildDate:f.j,nWebKitVersion:f.k,bIsKHTML:f.l,bIsGecko:f.m,bIsIE:f.n,bIsIEMac:f.o,bUseInnerHTMLHack:f.p}}if(am.hasFlash==false||!al.getElementsByTagName||!al.getElementById||(f.e&&f.p))return{UA:at()};function af(e){if((!k.bAutoInit&&(am.event||e)!=null)||!l(e))return;b=true;for(var i=0,h=ah.length;i<h;i++)j.apply(null,ah[i]);ah=[]}var k=af;function l(e){if(c==false||k.bIsDisabled==true||((f.e&&f.m||f.l)&&e==null&&b==false)||(al.body==null||al.getElementsByTagName("body").length==0))return false;return true}function m(n){if(f.n)return n.replace(new RegExp("%\d{0}","g"),"%25");return n.replace(new RegExp("%(?!\d)","g"),"%25")}function as(p,q){return q=="*"?true:p.nodeName.toLowerCase().replace("html:", "")==q.toLowerCase()}function o(p,q,r,s,t){var u="";var v=p.firstChild;var w,x,y,z;if(s==null)s=0;if(t==null)t="";while(v){if(v.nodeType==3){z=v.nodeValue.replace("<","&lt;");switch(r){case "lower":u+=z.toLowerCase();break;case "upper":u+=z.toUpperCase();break;default:u+=z}}else if(v.nodeType==1){if(as(v,"a")&&!v.getAttribute("href")==false){if(v.getAttribute("target"))t+="&sifr_url_"+s+"_target="+v.getAttribute("target");t+="&sifr_url_"+s+"="+m(v.getAttribute("href")).replace(/&/g,"%26");u+='<a href="asfunction:_root.launchURL,'+s+'">';s++}else if(as(v,"br"))u+="<br/>";if(v.hasChildNodes()){y=o(v,null,r,s,t);u+=y.u;s=y.s;t=y.t}if(as(v,"a"))u+="</a>"}w=v;v=v.nextSibling;if(q!=null){x=w.parentNode.removeChild(w);q.appendChild(x)}}return{"u":u,"s":s,"t":t}}function A(B){if(al.createElementNS&&f.g)return al.createElementNS(a,B);return al.createElement(B)}function C(D,E,z){var p=A("param");p.setAttribute("name",E);p.setAttribute("value",z);D.appendChild(p)}function F(p,G){var H=p.className;if(H==null)H=G;else H=H.normalize()+(H==""?"":" ")+G;p.className=H}function aq(ar){var a=ak;if(k.bHideBrowserText==false)a=al.getElementsByTagName("body")[0];if((k.bHideBrowserText==false||ar)&&a)if(a.className==null||a.className.match(/\bsIFR\-hasFlash\b/)==null)F(a, "sIFR-hasFlash")}function j(I,J,K,L,M,N,O,P,Q,R,S,r,T){if(!l())return ah.push(arguments);aq();named.extract(arguments,{sSelector:function(ap){I=ap},sFlashSrc:function(ap){J=ap},sColor:function(ap){K=ap},sLinkColor:function(ap){L=ap},sHoverColor:function(ap){M=ap},sBgColor:function(ap){N=ap},nPaddingTop:function(ap){O=ap},nPaddingRight:function(ap){P=ap},nPaddingBottom:function(ap){Q=ap},nPaddingLeft:function(ap){R=ap},sFlashVars:function(ap){S=ap},sCase:function(ap){r=ap},sWmode:function(ap){T=ap}});var U=parseSelector(I);if(U.length==0)return false;if(S!=null)S="&"+S.normalize();else S="";if(K!=null)S+="&textcolor="+K;if(M!=null)S+="&hovercolor="+M;if(M!=null||L!=null)S+="&linkcolor="+(L||K);if(O==null)O=0;if(P==null)P=0;if(Q==null)Q=0;if(R==null)R=0;if(N==null)N="#FFFFFF";if(T=="transparent")if(!f.f)T="opaque";else N="transparent";if(T==null)T="";var p,V,W,X,Y,Z,aa,ab,ac;var ad=null;for(var i=0,h=U.length;i<h;i++){p=U[i];if(p.className!=null&&p.className.match(/\bsIFR\-replaced\b/)!=null)continue;V=p.offsetWidth-R-P;W=p.offsetHeight-O-Q;aa=A("span");aa.className="sIFR-alternate";ac=o(p,aa,r);Z="txt="+m(ac.u).replace(/\+/g,"%2B").replace(/&/g,"%26").replace(/\"/g, "%22").normalize() + S + "&w=" + V + "&h=" + W + ac.t;F(p,"sIFR-replaced");if(ad==null||!f.g){if(!f.g)p.innerHTML=['<embed class="sIFR-flash" type="application/x-shockwave-flash" src="',J,'" quality="best" wmode="',T,'" bgcolor="',N,'" flashvars="',Z,'" width="',V,'" height="',W,'" sifr="true"></embed>'].join("");else{if(f.d){ab=A("object");ab.setAttribute("data",J);C(ab,"quality","best");C(ab,"wmode",T);C(ab,"bgcolor",N)}else{ab=A("embed");ab.setAttribute("src",J);ab.setAttribute("quality","best");ab.setAttribute("flashvars",Z);ab.setAttribute("wmode",T);ab.setAttribute("bgcolor",N)}ab.setAttribute("sifr","true");ab.setAttribute("type","application/x-shockwave-flash");ab.className="sIFR-flash";if(!f.l||!f.e)ad=ab.cloneNode(true)}}else ab=ad.cloneNode(true);if(f.g){if(f.d)C(ab,"flashvars",Z);else ab.setAttribute("flashvars",Z);ab.setAttribute("width",V);ab.setAttribute("height",W);ab.style.width=V+"px";ab.style.height=W+"px";p.appendChild(ab)}p.appendChild(aa);if(f.p)p.innerHTML+=""}if(f.n&&k.bFixFragIdBug)setTimeout(function(){al.title=d},0)}function ai(){d=al.title}function ae(){if(k.bIsDisabled==true)return;c=true;if(k.bHideBrowserText)aq(true);if(am.attachEvent)am.attachEvent("onload",af);else if(!f.c&&(al.addEventListener||am.addEventListener)){if(f.a&&f.k>=132&&am.addEventListener)am.addEventListener("load",function(){setTimeout("sIFR({})",1)},false);else{if(al.addEventListener)al.addEventListener("load",af,false);if(am.addEventListener)am.addEventListener("load",af,false)}}else if(typeof am.onload=="function"){var ag=am.onload;am.onload=function(){ag();af()}}else am.onload=af;if(!f.n||am.location.hash=="")k.bFixFragIdBug=false;else ai()}k.UA=at();k.bAutoInit=true;k.bFixFragIdBug=true;k.replaceElement=j;k.updateDocumentTitle=ai;k.appendToClassName=F;k.setup=ae;k.debug=function(){aq(true)};k.debug.replaceNow=function(){ae();k()};k.bIsDisabled=false;k.bHideBrowserText=true;return k}();

if(typeof sIFR == "function" && !sIFR.UA.bIsIEMac){
/* sIFR.bHideBrowserText = true; */
   sIFR.setup();
};

/*** sifr-addons.js ***/

/* sIFR 2.0.1 Official Add-ons 1.2
   Copyright 2005 Mark Wubben

   This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
*/

if(typeof sIFR=="function")(function(){var j=document;var h=j.documentElement;sIFR.removeDecoyClasses=function(){function a(b){if(b&&b.className!=null)b.className=b.className.replace(/\bsIFR-hasFlash\b/,"")}return function(){a(h);a(j.getElementsByTagName("body")[0])}}();sIFR.preferenceManager={storage:{sCookieId:"sifr",set:function(a){var b=new Date();b.setFullYear(b.getFullYear()+3);j.cookie=[this.sCookieId,"=",a,";expires=",b.toGMTString(),";path=/"].join("")},get:function(){var a=j.cookie.match(new RegExp(";?"+this.sCookieId+"=([^;]+);?"));if(a!=null&&a[1]=="false")return false;else return true},reset:function(){var a=new Date();a.setFullYear(a.getFullYear()-1);j.cookie=[this.sCookieId,"=true;expires=",a.toGMTString(),";path=/"].join("")}},disable:function(){this.storage.set(false)},enable:function(){this.storage.set(true)},test:function(){return this.storage.get()}};if(sIFR.preferenceManager.test()==false){sIFR.bIsDisabled=true;sIFR.removeDecoyClasses()}sIFR.rollback=function(){function a(b){var c,d,e,f,g,h;var l=parseSelector(b);var i=l.length-1;var m=false;while(i>=0){c=l[i];l.length--;d=c.parentNode;if(c.getAttribute("sifr")=="true"){h=0;while(h<d.childNodes.length){c=d.childNodes[h];if(c.className=="sIFR-alternate"){e=c;h++;continue}d.removeChild(c)}if(e!=null){f=e.firstChild;while(f!=null){g=f.nextSibling;d.appendChild(e.removeChild(f));f=g}d.removeChild(e)}if(!sIFR.UA.bIsXML&&sIFR.UA.bUseInnerHTMLHack)d.innerHTML+="";d.className=d.className.replace(/\bsIFR\-replaced\b/,"")};m=true;i--}return m}return function(k){named.extract(arguments,{sSelector:function(a){k=a}});if(k==null)k="";else k+=">";sIFR.removeDecoyClasses();sIFR.bHideBrowserText=false;if(a(k+"embed")==false)a(k+"object")}}()})()

/*** flashobject.cs ***/

/**
 * FlashObject v1.2.3: Flash detection and embed - http://blog.deconcept.com/flashobject/
 *
 * FlashObject is (c) 2005 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof com == "undefined") var com = new Object();
if(typeof com.deconcept == "undefined") com.deconcept = new Object();
if(typeof com.deconcept.util == "undefined") com.deconcept.util = new Object();
if(typeof com.deconcept.FlashObjectUtil == "undefined") com.deconcept.FlashObjectUtil = new Object();
com.deconcept.FlashObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, redirectUrl, detectKey){
   this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
   this.skipDetect = com.deconcept.util.getRequestParameter(this.DETECT_KEY);
   this.params = new Object();
   this.variables = new Object();
   this.attributes = new Array();

   if(swf) this.setAttribute('swf', swf);
   if(id) this.setAttribute('id', id);
   if(w) this.setAttribute('width', w);
   if(h) this.setAttribute('height', h);
   if(ver) this.setAttribute('version', new com.deconcept.PlayerVersion(ver.toString().split(".")));
   if(c) this.addParam('bgcolor', c);
   var q = quality ? quality : 'high';
   this.addParam('quality', q);
   this.setAttribute('redirectUrl', '');
   if(redirectUrl) this.setAttribute('redirectUrl', redirectUrl);
   if(useExpressInstall) {
   // check to see if we need to do an express install
   var expressInstallReqVer = new com.deconcept.PlayerVersion([6,0,65]);
   var installedVer = com.deconcept.FlashObjectUtil.getPlayerVersion();
      if (installedVer.versionIsValid(expressInstallReqVer) && !installedVer.versionIsValid(this.getAttribute('version'))) {
         this.setAttribute('doExpressInstall', true);
      }
   } else {
      this.setAttribute('doExpressInstall', false);
   }
}
com.deconcept.FlashObject.prototype.setAttribute = function(name, value){
   this.attributes[name] = value;
}
com.deconcept.FlashObject.prototype.getAttribute = function(name){
   return this.attributes[name];
}
com.deconcept.FlashObject.prototype.getAttributes = function(){
   return this.attributes;
}
com.deconcept.FlashObject.prototype.addParam = function(name, value){
   this.params[name] = value;
}
com.deconcept.FlashObject.prototype.getParams = function(){
   return this.params;
}
com.deconcept.FlashObject.prototype.getParam = function(name){
   return this.params[name];
}
com.deconcept.FlashObject.prototype.addVariable = function(name, value){
   this.variables[name] = value;
}
com.deconcept.FlashObject.prototype.getVariable = function(name){
   return this.variables[name];
}
com.deconcept.FlashObject.prototype.getVariables = function(){
   return this.variables;
}
com.deconcept.FlashObject.prototype.getParamTags = function(){
   var paramTags = ""; var key; var params = this.getParams();
   for(key in params) {
        paramTags += '<param name="' + key + '" value="' + params[key] + '" />';
    }
   return paramTags;
}
com.deconcept.FlashObject.prototype.getVariablePairs = function(){
   var variablePairs = new Array();
   var key;
   var variables = this.getVariables();
   for(key in variables){
      variablePairs.push(key +"="+ variables[key]);
   }
   return variablePairs;
}
com.deconcept.FlashObject.prototype.getHTML = function() {
    var flashHTML = "";
    if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
        if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); }
        flashHTML += '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" id="'+ this.getAttribute('id') + '" name="'+ this.getAttribute('id') +'"';
      var params = this.getParams();
        for(var key in params){ flashHTML += ' '+ key +'="'+ params[key] +'"'; }
      pairs = this.getVariablePairs().join("&");
        if (pairs.length > 0){ flashHTML += ' flashvars="'+ pairs +'"'; }
        flashHTML += '></embed>';
    } else { // PC IE
        if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); }
        flashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" id="'+ this.getAttribute('id') +'">';
        flashHTML += '<param name="movie" value="' + this.getAttribute('swf') + '" />';
      var tags = this.getParamTags();
        if(tags.length > 0){ flashHTML += tags; }
      var pairs = this.getVariablePairs().join("&");
        if(pairs.length > 0){ flashHTML += '<param name="flashvars" value="'+ pairs +'" />'; }
        flashHTML += '</object>';
    }
    return flashHTML;
}
com.deconcept.FlashObject.prototype.write = function(elementId){
   if(this.skipDetect || this.getAttribute('doExpressInstall') || com.deconcept.FlashObjectUtil.getPlayerVersion().versionIsValid(this.getAttribute('version'))){
      if(document.getElementById){
         if (this.getAttribute('doExpressInstall')) {
            this.addVariable("MMredirectURL", escape(window.location));
            document.title = document.title.slice(0, 47) + " - Flash Player Installation";
            this.addVariable("MMdoctitle", document.title);
         }
         document.getElementById(elementId).innerHTML = this.getHTML();
      }
   }else{
      if(this.getAttribute('redirectUrl') != "") {
         document.location.replace(this.getAttribute('redirectUrl'));
      }
   }
}
/* ---- detection functions ---- */
com.deconcept.FlashObjectUtil.getPlayerVersion = function(){
   var PlayerVersion = new com.deconcept.PlayerVersion(0,0,0);
   if(navigator.plugins && navigator.mimeTypes.length){
      var x = navigator.plugins["Shockwave Flash"];
      if(x && x.description) {
         PlayerVersion = new com.deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
      }
   }else if (window.ActiveXObject){
      try {
         var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
         PlayerVersion = new com.deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
      } catch (e) {}
   }
   return PlayerVersion;
}
com.deconcept.PlayerVersion = function(arrVersion){
   this.major = parseInt(arrVersion[0]) || 0;
   this.minor = parseInt(arrVersion[1]) || 0;
   this.rev = parseInt(arrVersion[2]) || 0;
}
com.deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
   if(this.major < fv.major) return false;
   if(this.major > fv.major) return true;
   if(this.minor < fv.minor) return false;
   if(this.minor > fv.minor) return true;
   if(this.rev < fv.rev) return false;
   return true;
}
/* ---- get value of query string param ---- */
com.deconcept.util.getRequestParameter = function(param){
   var q = document.location.search || document.location.href.hash;
   if(q){
      var startIndex = q.indexOf(param +"=");
      var endIndex = (q.indexOf("&", startIndex) > -1) ? q.indexOf("&", startIndex) : q.length;
      if (q.length > 1 && startIndex > -1) {
         return q.substring(q.indexOf("=", startIndex)+1, endIndex);
      }
   }
   return "";
}

/* add Array.push if needed (ie5) */
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}

/* add some aliases for ease of use / backwards compatibility */
var getQueryParamValue = com.deconcept.util.getRequestParameter;
var FlashObject = com.deconcept.FlashObject;

/*** toolTip.js ***

/* This notice must be untouched at all times.

wz_tooltip.js    v. 3.25

The latest version is available at
http://www.walterzorn.com
or http://www.devira.com
or http://www.walterzorn.de

Copyright (c) 2002-2003 Walter Zorn. All rights reserved.
Created 1. 12. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
Last modified: 21. 4. 2004

Cross-browser tooltips working even in Opera 5 and 6,
as well as in NN 4, Gecko-Browsers, IE4+, Opera 7 and Konqueror.
No onmouseouts required.
Appearance of tooltips can be individually configured
via commands within the onmouseovers.

This program is free software;
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License
at http://www.gnu.org/copyleft/gpl.html for more details.
*/



////////////////  GLOBAL TOOPTIP CONFIGURATION  /////////////////////
var ttBgColor      = '#FFFFE1';
var ttBgImg        = '';           // path to background image;
var ttBorderColor  = 'black';
var ttBorderWidth  = 1;
var ttDelay        = 0;          // time span until tooltip shows up [milliseconds]
var ttFontColor    = 'black';
var ttFontFace     = 'tahoma,sans-serif';
var ttFontSize     = '11px';
var ttFontWeight   = 'normal';     // alternative is 'bold';
var ttOffsetX      = 8;            // horizontal offset of left-top corner from mousepointer
var ttOffsetY      = 19;           // vertical offset                   "
var ttPadding      = 3;            // spacing between border and content
var ttShadowColor  = '';
var ttShadowWidth  = 0;
var ttTitleColor   = '#ffffff';    // color of caption text
var ttWidth        = 100;
////////////////////  END OF TOOLTIP CONFIG  ////////////////////////



//////////////  TAGS WITH TOOLTIP FUNCTIONALITY  ////////////////////
// List may be extended or shortened:
var tt_tags = new Array('a','area','b','big','caption','center','code','dd','div','dl','dt','em','h1','h2','h3','h4','h5','h6','i','img','input','li','map','ol','p','pre','s','small','span','strike','strong','sub','sup','table','td','th','tr','tt','u','var','ul','layer','label');
/////////////////////////////////////////////////////////////////////



///////// DON'T CHANGE ANYTHING BELOW THIS LINE /////////////////////
var tt_obj,                // current tooltip
tt_objW = 0, tt_objH = 0,  // width and height of tt_obj
tt_objX = 0, tt_objY = 0,
tt_offX = 0, tt_offY = 0,
xlim = 0, ylim = 0,        // right and bottom borders of visible client area
tt_above = false,          // true if T_ABOVE cmd
tt_static = false,         // tt_obj static?
tt_sticky = false,         // tt_obj sticky?
tt_wait = false,
tt_vis = false,            // tooltip visibility flag
tt_dwn = false,            // true while tooltip below mousepointer
tt_u = 'undefined',
tt_inputs = new Array();   // drop-down-boxes to be hidden in IE


var tt_db = (document.compatMode && document.compatMode != 'BackCompat')? document.documentElement : document.body? document.body : null,
tt_n = navigator.userAgent.toLowerCase();

// Browser flags
var tt_op = !!(window.opera && document.getElementById),
tt_op6 = tt_op && !document.defaultView,
tt_ie = tt_n.indexOf('msie') != -1 && document.all && tt_db && !tt_op,
tt_n4 = (document.layers && typeof document.classes != "undefined"),
tt_n6 = (!tt_op && document.defaultView && typeof document.defaultView.getComputedStyle != "undefined"),
tt_w3c = !tt_ie && !tt_n6 && !tt_op && document.getElementById;

tt_n = '';


function tt_Int(t_x)
{
   var t_y;
   return isNaN(t_y = parseInt(t_x))? 0 : t_y;
}


function wzReplace(t_x, t_y)
{
   var t_ret = '',
   t_str = this,
   t_xI;
   while ((t_xI = t_str.indexOf(t_x)) != -1)
   {
      t_ret += t_str.substring(0, t_xI) + t_y;
      t_str = t_str.substring(t_xI + t_x.length);
   }
   return t_ret+t_str;
}
String.prototype.wzReplace = wzReplace;


function tt_N4Tags(tagtyp, t_d, t_y)
{
   t_d = t_d || document;
   t_y = t_y || new Array();
   var t_x = (tagtyp=='a')? t_d.links : t_d.layers;
   for (var z = t_x.length; z--;) t_y[t_y.length] = t_x[z];
   for (var z = t_d.layers.length; z--;) t_y = tt_N4Tags(tagtyp, t_d.layers[z].document, t_y);
   return t_y;
}


function tt_GetSelects()
{
   if (!tt_op6 && !tt_ie) return;
   var t_s = tt_op6? 'input' : 'select';
   if (document.all)
   {
      var t_i = document.all.tags(t_s).length; while (t_i--)
         tt_inputs[t_i] = document.all.tags(t_s)[t_i];
   }
   else if (document.getElementsByTagName)
   {
      var t_i = document.getElementsByTagName(t_s).length; while (t_i--)
         tt_inputs[t_i] = document.getElementsByTagName(t_s)[t_i];
   }
   var t_i = tt_inputs.length; while (t_i--)
   {
      tt_inputs[t_i].x = 0;
      tt_inputs[t_i].y = 0;
      var t_o = tt_inputs[t_i];
      while (t_o)
      {
         tt_inputs[t_i].x += t_o.offsetLeft || 0;
         tt_inputs[t_i].y += t_o.offsetTop|| 0;
         t_o = t_o.offsetParent;
      }
   }
}


function tt_Htm(tt, t_id, txt)
{
   var t_bgc = (typeof tt.T_BGCOLOR != tt_u)? tt.T_BGCOLOR : ttBgColor,
   t_bgimg   = (typeof tt.T_BGIMG != tt_u)? tt.T_BGIMG : ttBgImg,
   t_bc      = (typeof tt.T_BORDERCOLOR != tt_u)? tt.T_BORDERCOLOR : ttBorderColor,
   t_bw      = (typeof tt.T_BORDERWIDTH != tt_u)? tt.T_BORDERWIDTH : ttBorderWidth,
   t_ff      = (typeof tt.T_FONTFACE != tt_u)? tt.T_FONTFACE : ttFontFace,
   t_fc      = (typeof tt.T_FONTCOLOR != tt_u)? tt.T_FONTCOLOR : ttFontColor,
   t_fsz     = (typeof tt.T_FONTSIZE != tt_u)? tt.T_FONTSIZE : ttFontSize,
   t_fwght   = (typeof tt.T_FONTWEIGHT != tt_u)? tt.T_FONTWEIGHT : ttFontWeight,
   t_padd    = (typeof tt.T_PADDING != tt_u)? tt.T_PADDING : ttPadding,
   t_shc     = (typeof tt.T_SHADOWCOLOR != tt_u)? tt.T_SHADOWCOLOR : (ttShadowColor || 0),
   t_shw     = (typeof tt.T_SHADOWWIDTH != tt_u)? tt.T_SHADOWWIDTH : (ttShadowWidth || 0),
   t_tit     = (typeof tt.T_TITLE != tt_u)? tt.T_TITLE : '',
   t_titc    = (typeof tt.T_TITLECOLOR != tt_u)? tt.T_TITLECOLOR : ttTitleColor,
   t_w       = (typeof tt.T_WIDTH != tt_u)? tt.T_WIDTH  : ttWidth;
   if (t_shc || t_shw)
   {
      t_shc = t_shc || '#cccccc';
      t_shw = t_shw || 3;
   }
   if (tt_n4 && (t_fsz == '10px' || t_fsz == '11px')) t_fsz = '12px';


   var t_y = '<div id="' + t_id + '" style="position:absolute;z-index:1010;';
   t_y += 'left:0px;top:0px;width:' + (t_w+t_shw) + 'px;visibility:' + (tt_n4? 'hide' : 'hidden') + ';">';
   t_y += '<table border="0" cellpadding="0" cellspacing="0"' + (t_bc? (' bgcolor="' + t_bc + '"') : '') + ' width="' + t_w + '">';
   if (t_tit)
   {
      t_y += '<tr><td style="padding-left:3px;"><font color="' + t_titc + '" face="' + t_ff + '" ';
      t_y += 'style="color:' + t_titc + ';font-family:' + t_ff + ';font-size:' + t_fsz + ';"><b>';
      t_y += t_tit + '<\/b><\/font><\/td><\/tr>';
   }
   t_y += '<tr><td><table border="0" cellpadding="' + t_padd + '" cellspacing="' + t_bw + '" width="100%">';
   t_y += '<tr><td' + (t_bgc? (' bgcolor="' + t_bgc + '"') : '') + (t_bgimg? ' background="' + t_bgimg + '"' : '');
   if (tt_n6) t_y += ' style="padding:' + t_padd + 'px;"';
   t_y += '><font color="' + t_fc + '" face="' + t_ff + '"';
   t_y += ' style="color:' + t_fc + ';font-family:' + t_ff + ';font-size:' + t_fsz + ';font-weight:' + t_fwght + ';">';
   if (t_fwght == 'bold') t_y += '<b>';
   t_y += txt;
   if (t_fwght == 'bold') t_y += '<\/b>';
   t_y += '<\/font><\/td><\/tr><\/table><\/td><\/tr><\/table>';
   if (t_shw)
   {
      var t_spct = Math.round(t_shw*1.3);
      if (tt_n4)
      {
         t_y += '<layer bgcolor="' + t_shc + '" left="' + t_w + '" top="' + t_spct + '" width="' + t_shw + '" height="0"><\/layer>';
         t_y += '<layer bgcolor="' + t_shc + '" left="' + t_spct + '" align="bottom" width="' + (t_w-t_spct) + '" height="' + t_shw + '"><\/layer>';
      }
      else
      {
         var t_opa = tt_n6? '-moz-opacity:0.85;' : tt_ie? 'filter:Alpha(opacity=85);' : '';
         t_y += '<div id="' + t_id + 'R" style="position:absolute;background:' + t_shc + ';left:' + t_w + 'px;top:' + t_spct + 'px;width:' + t_shw + 'px;height:1px;overflow:hidden;' + t_opa + '"><\/div>';
         t_y += '<div style="position:relative;background:' + t_shc + ';left:' + t_spct + 'px;top:0px;width:' + (t_w-t_spct) + 'px;height:' + t_shw + 'px;overflow:hidden;' + t_opa + '"><\/div>';
      }
   }
   t_y += '<\/div>';
   return t_y;
}


function tt_Init()
{
   if (!(tt_op || tt_n4 || tt_n6 || tt_ie || tt_w3c)) return;

   var htm = tt_n4? '<div style="position:absolute;"><\/div>' : '',
   tags,
   t_tj,
   over,
   esc = 'return escape(';
   var i = tt_tags.length; while (i--)
   {
      tags = tt_ie? (document.all.tags(tt_tags[i]) || 1)
         : document.getElementsByTagName? (document.getElementsByTagName(tt_tags[i]) || 1)
         : (!tt_n4 && tt_tags[i]=='a')? document.links
         : 1;
      if (tt_n4 && (tt_tags[i] == 'a' || tt_tags[i] == 'layer')) tags = tt_N4Tags(tt_tags[i]);
      var j = tags.length; while (j--)
      {
         if (typeof (t_tj = tags[j]).onmouseover == 'function' && t_tj.onmouseover.toString().indexOf(esc) != -1 && !tt_n6 || tt_n6 && (over = t_tj.getAttribute('onmouseover')) && over.indexOf(esc) != -1)
         {
            if (over) t_tj.onmouseover = new Function(over);
            var txt = unescape(t_tj.onmouseover());
            htm += tt_Htm(
               t_tj,
               'tOoLtIp'+i+''+j,
               txt.wzReplace('& ','&')
            );

            t_tj.onmouseover = new Function('e',
               'tt_Show(e,'+
               '"tOoLtIp' +i+''+j+ '",'+
               (typeof t_tj.T_ABOVE != tt_u) + ','+
               ((typeof t_tj.T_DELAY != tt_u)? t_tj.T_DELAY : ttDelay) + ','+
               ((typeof t_tj.T_FIX != tt_u)? '"'+t_tj.T_FIX+'"' : '""') + ','+
               (typeof t_tj.T_LEFT != tt_u) + ','+
               ((typeof t_tj.T_OFFSETX != tt_u)? t_tj.T_OFFSETX : ttOffsetX) + ','+
               ((typeof t_tj.T_OFFSETY != tt_u)? t_tj.T_OFFSETY : ttOffsetY) + ','+
               (typeof t_tj.T_STATIC != tt_u) + ','+
               (typeof t_tj.T_STICKY != tt_u) +
               ');'
            );
            t_tj.onmouseout = tt_Hide;
            if (t_tj.alt) t_tj.alt = "";
            if (t_tj.title) t_tj.title = "";
         }
      }
   }
   document.write(htm);
}


function tt_EvX(t_e)
{
   var t_y = tt_Int(t_e.pageX || t_e.clientX || 0) +
      tt_Int(tt_ie? tt_db.scrollLeft : 0) +
      tt_offX;
   if (t_y > xlim) t_y = xlim;
   var t_scr = tt_Int(window.pageXOffset || (tt_db? tt_db.scrollLeft : 0) || 0);
   if (t_y < t_scr) t_y = t_scr;
   return t_y;
}


function tt_EvY(t_e)
{
   var t_y = tt_Int(t_e.pageY || t_e.clientY || 0) +
      tt_Int(tt_ie? tt_db.scrollTop : 0);
   if (tt_above) t_y -= (tt_objH + tt_offY - (tt_op? 31 : 15));
   else if (t_y > ylim || !tt_dwn && t_y > ylim-24)
   {
      t_y -= (tt_objH + 5);
      tt_dwn = false;
   }
   else
   {
      t_y += tt_offY;
      tt_dwn = true;
   }
   return t_y;
}


function tt_ReleasMov()
{
   if (document.onmousemove == tt_Move)
   {
      if (document.releaseEvents) document.releaseEvents(Event.MOUSEMOVE);
      document.onmousemove = null;
   }
}


function tt_HideInput()
{
   if (!(tt_ie || tt_op6) || !tt_inputs) return;
   var t_o;
   var t_i = tt_inputs.length; while (t_i--)
   {
      t_o = tt_inputs[t_i];
      if (tt_vis && tt_objX+tt_objW > t_o.x && tt_objX < t_o.x+t_o.offsetWidth && tt_objY+tt_objH > t_o.y && tt_objY < t_o.y+t_o.offsetHeight)
         t_o.style.visibility = 'hidden';
      else t_o.style.visibility = 'visible';
   }
}


function tt_GetDiv(t_id)
{
   return (
      tt_n4? (document.layers[t_id] || null)
      : tt_ie? (document.all[t_id] || null)
      : (document.getElementById(t_id) || null)
   );
}


function tt_GetDivW()
{
   return (
      tt_n4? tt_obj.clip.width
      : tt_obj.style.pixelWidth? tt_obj.style.pixelWidth
      : tt_obj.offsetWidth
   );
}


function tt_GetDivH()
{
   return (
      tt_n4? tt_obj.clip.height
      : tt_obj.style.pixelHeight? tt_obj.style.pixelHeight
      : tt_obj.offsetHeight
   );
}


// Compat with DragDrop Lib: Ensure z-index of tooltip is lifted beyond toplevel dragdrop element
function tt_SetDivZ()
{
   var t_i = tt_obj.style || tt_obj;
   if (window.dd && dd.z)
      t_i.zIndex = Math.max(dd.z+1, t_i.zIndex);
}


function tt_SetDivPos(t_x, t_y)
{
   var t_i = tt_obj.style || tt_obj;
   var t_px = (tt_op6 || tt_n4)? '' : 'px';
   t_i.left = (tt_objX = t_x) + t_px;
   t_i.top = (tt_objY = t_y) + t_px;
   tt_HideInput();
}


function tt_ShowDiv(t_x)
{
   if (tt_n4) tt_obj.visibility = t_x? 'show' : 'hide';
   else tt_obj.style.visibility = t_x? 'visible' : 'hidden';
   tt_vis = t_x;
   tt_HideInput();
}


function tt_Show(t_e, t_id, t_above, t_delay, t_fix, t_left, t_offx, t_offy, t_static, t_sticky)
{
   if (tt_obj) tt_Hide();
   var t_mf = document.onmousemove || null;
   if (window.dd && (window.DRAG && t_mf == DRAG || window.RESIZE && t_mf == RESIZE)) return;
   var t_uf = document.onmouseup || null;
   if (t_mf && t_uf) t_uf(t_e);

   tt_obj = tt_GetDiv(t_id);
   if (tt_obj)
   {
      tt_dwn = !(tt_above = t_above);
      tt_static = t_static;
      tt_sticky = t_sticky;
      tt_objW = tt_GetDivW();
      tt_objH = tt_GetDivH();
      tt_offX = t_left? -(tt_objW+t_offx) : t_offx;
      tt_offY = t_offy;
      if (tt_op) tt_offY += 21;
      if (tt_n4)
      {
         if (tt_obj.document.layers.length)
         {
            var t_sh = tt_obj.document.layers[0];
            t_sh.clip.height = tt_objH - Math.round(t_sh.clip.width*1.3);
         }
      }
      else
      {
         var t_sh = tt_GetDiv(t_id+'R');
         if (t_sh)
         {
            var t_h = tt_objH - tt_Int(t_sh.style.pixelTop || t_sh.style.top || 0);
            if (typeof t_sh.style.pixelHeight != tt_u) t_sh.style.pixelHeight = t_h;
            else t_sh.style.height = t_h + 'px';
         }
      }

      tt_GetSelects();

      xlim = tt_Int((tt_db && tt_db.clientWidth)? tt_db.clientWidth : window.innerWidth) +
         tt_Int(window.pageXOffset || (tt_db? tt_db.scrollLeft : 0) || 0) -
         tt_objW -
         (tt_n4? 21 : 0);
      ylim = tt_Int(window.innerHeight || tt_db.clientHeight) +
         tt_Int(window.pageYOffset || (tt_db? tt_db.scrollTop : 0) || 0) -
         tt_objH - tt_offY;

      tt_SetDivZ();
      t_e = t_e || window.event;
      if (t_fix) tt_SetDivPos(tt_Int((t_fix = t_fix.split(','))[0]), tt_Int(t_fix[1]));
      else tt_SetDivPos(tt_EvX(t_e), tt_EvY(t_e));

      window.tt_rdl = window.setTimeout(
         'if (tt_sticky)'+
         '{'+
            'tt_ReleasMov();'+
            'window.tt_upFunc = document.onmouseup || null;'+
            'if (document.captureEvents) document.captureEvents(Event.MOUSEUP);'+
            'document.onmouseup = new Function("window.setTimeout(\'tt_Hide();\', 10);");'+
         '}'+
         'else if (tt_static) tt_ReleasMov();'+
         'tt_ShowDiv(\'true\');',
         t_delay
      );

      if (!t_fix)
      {
         if (document.captureEvents) document.captureEvents(Event.MOUSEMOVE);
         document.onmousemove = tt_Move;
      }
   }
}


var tt_area = false;
function tt_Move(t_ev)
{
   if (!tt_obj) return;
   if (tt_n6 || tt_w3c)
   {
      if (tt_wait) return;
      tt_wait = true;
      setTimeout('tt_wait = false;', 5);
   }
   var t_e = t_ev || window.event;
   tt_SetDivPos(tt_EvX(t_e), tt_EvY(t_e));
   if (tt_op6)
   {
      if (tt_area && t_e.target.tagName != 'AREA') tt_Hide();
      else if (t_e.target.tagName == 'AREA') tt_area = true;
   }
}


function tt_Hide()
{
   if (window.tt_obj)
   {
      if (window.tt_rdl) window.clearTimeout(tt_rdl);
      if (!tt_sticky || tt_sticky && !tt_vis)
      {
         tt_ShowDiv(false);
         tt_SetDivPos(-tt_objW, -tt_objH);
         tt_obj = null;
         if (typeof window.tt_upFunc != tt_u) document.onmouseup = window.tt_upFunc;
      }
      tt_sticky = false;
      if (tt_op6 && tt_area) tt_area = false;
      tt_ReleasMov();
      tt_HideInput();
   }
}

tt_Init();

/*** validate.js ***/

var validateInput = new Array;

function validate(form){
   var status = true;
   for (var i=0; i < form.length; i++) {
      if (validateInput[form.elements[i].name]) {
         if (!validateInput[form.elements[i].name].pattern.test(Trim(form.elements[i].value))) {
            document.getElementById("msg_" + form.elements[i].name).innerHTML = validateInput[form.elements[i].name].error;
            document.getElementById("msg_" + form.elements[i].name).style.display = "block";
            form.elements[i].className = form.elements[i].className + " error";
            status = false;
         } else {
            var cls = form.elements[i].className;
            if(cls.indexOf('error') > 0) {
               cls = cls.substring(0, cls.indexOf(' error'));
            }
            form.elements[i].className = cls;
            document.getElementById("msg_" + form.elements[i].name).style.display = "none";
         }
      }
   }
   return status;
}

function Trim(strValue){
   return LTrim(RTrim(strValue));
}

function LTrim(strValue){
   var LTRIMrgExp = /^\s*/;
   return strValue.replace(LTRIMrgExp, '');
}

function RTrim(strValue){
   var RTRIMrgExp = /\s*$/;
   return strValue.replace(RTRIMrgExp, '');
}

function hideemail(name,domain,display){
	displayed=(typeof(display)=="undefined") ? name+"@"+domain : display;
	document.write('<a href=mailto:' + name + '@' + domain + '>' + displayed +'</a>');
}

function validateExporterUserinput2(form, requiredText, successPageId, emailAddress, comment) {
	for(var i=0; i < form.length; i++){
		if(form.elements[i].name == comment){
			form.elements[i].value = form.elements[i].value + '\n';
			i = form.length;
		}
	}
   var error = 0;
   if(form.company.value == '') {
      error++;
   }
   if(form.organization_number.value == '') {
      error++;
   }
   if(form.ceo.value == '') {
      error++;
   }
   if(form.post_address.value == '') {
      error++;
   }
   if(form.zip.value == '') {
      error++;
   }
   if(form.email.value == '') {
      error++;
   }
   
   if ( error > 0){
      alert( requiredText );
      return false;
   }else{
	   var redirect = "page?id="+successPageId+"&cname="+form.company.value;
	   redirect = redirect + "&orgnr="+form.organization_number.value;
	   redirect = redirect + "&ceo=" + form.ceo.value;
	   redirect = redirect + "&phone=" + form.phone.value;
	   redirect = redirect + "&fax=" + form.fax.value;
	   redirect = redirect + "&email=" + form.email.value;
	   redirect = redirect + "&site=" + form.homesite.value;
	   redirect = redirect + "&sadr=" + form.street_address.value;
	   redirect = redirect + "&padr=" + form.post_address.value;
	   redirect = redirect + "&zip=" + form.zip.value;
	   redirect = redirect + "&city=" + form.city.value;
	   redirect = redirect + "&cont=" + form.contact_person.value;
	   redirect = redirect + "&cmail=" + form.contact_email.value;
	   redirect = redirect + "&info=" + form.text.value;
	   redirect = encodeURI(redirect);
	   form.redirect.value = redirect;
	   form.to.value = form.email.value;
	   form.bcc.value = emailAddress;
	   
      return true;
   }
}
function createCookie(name,value,days,minutes) {
	if (days || minutes) {
		var date = new Date();
		if(minutes){
			date.setTime(date.getTime()+(minutes*60*1000));
			var expires = "; expires="+date.toGMTString();
		}else{
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}


function checkDisclaimer(){

var check = Document.getElementById("checkbox");

if(checkbox.checked){
button.disabled = false;
}
if(checkbox.checked == false){
button.disabled = true;
}

}
