function externWindowTitle(aTag) {
    var title = aTag.getAttribute("title");
    var newWindowTitle = "[Neues Fenster] ";
    // if the title is not defined
    if (!title) {
        title = newWindowTitle;
    }
    if (title.indexOf(newWindowTitle) < 0) {
       title = newWindowTitle + title;
    }
    aTag.setAttribute("title", title);
}


/*
 Don't change this method name, because its fix (see de.swr.cms.swr.servlets.generator.page.jsptags.SWRLinkATag)
*/
function windowOpenNew(url) {
    windowOpen(url, "newWindow", "");
}

/* copied from CMS document id=304  */
function setStartseite() {
  if (document.getElementById) {
    document.getElementById("setstart").style.behavior= "url(#default#homepage)";
    document.getElementById("setstart").sethomepage("http://www.swr.de/");
  }
  else if (document.all) {
    document.all.setstart.style.behavior= "url(#default#homepage)";
    document.all.setstart.sethomepage("http://www.swr.de/");
  }
}


function get_server_of_flashurl(url){
	// dbg("URL: "+url);
	var u1=url.split("//");
	var u2=u1[1].split("/");
	var fn = u2.pop();
	var server = '';


	if (u1[0] == 'rtmpt:')server = 'rtmpt://flashmedia.mdn.newmedia.nacamar.net/swr';
	if (u1[0] == 'rtmp:') server = 'rtmp://flashmedia.mdn.newmedia.nacamar.net/swr';
	if (u1[0] == 'http:') server = escape(url);
	// dbg("SERVER: "+server);
	return server;
}

function get_id_of_flashurl(url){
	var temp_url = url;
	var u1=url.split("//");
	var u2=u1[1].split("/");
	var fn = u2.pop();
	var filename = '';
	var server = '';
	if (u1[0]=='http:') {
		// dbg("classic http url "+myurl);
		filename=temp_url;
	} else {
		// dbg("TYPE: "+u1[0]);
		// if (u1[0] == 'rtmpt:')server = 'rtmpt://flashmedia.mdn.newmedia.nacamar.net/swr/';
		// if (u1[0] == 'rtmp:') server = 'rtmp://flashmedia.mdn.newmedia.nacamar.net/swr/';
		server = get_server_of_flashurl(url);
		if (server != '') {fn = url.replace(server, "")};
		filename = fn.split(".")[0]+"."+fn.split(".")[1];
		filename = filename.replace(/\s/,"");
		// dbg("ID: "+filename);
	}
	return filename;
}


/* Zitate im IE */
function fixIEQuotes()
{
  var objQuotes = document.getElementsByTagName('q');
  var strOpen, strClose;
  for (var i=0; i<objQuotes.length; i++)
  {
    if (isNested(objQuotes[i]))
    {
      // Double-quotes
      strOpen = document.createTextNode('\u2018');
      strClose = document.createTextNode('\u2019');
    }
    else
    {
      // Single-quotes
      strOpen = document.createTextNode('\u201c');
      strClose = document.createTextNode('\u201d');
    }
    // Insert quotation marks around quote
    objQuotes[i].parentNode.insertBefore(strOpen, objQuotes[i]);
    objQuotes[i].appendChild(strClose);

  }

  objQuotes = null;
}


function isNested(objElement)
{
  var objParent = objElement;
  do // Check if nested quote
  {
    objParent = objParent.parentNode;
    if (objParent.tagName && objParent.tagName.toLowerCase() == 'q')
      return true;
  } while (objParent.parentNode);

  return false;
}
if (navigator.appVersion.indexOf("MSIE") != -1) {
   jQuery(function() { fixIEQuotes(); });
}


function showByClass(className){
  jQuery('.' + className).show();
}


function hideByClass(className){
  
  jQuery('.' + className).each(function (i) {
        if (this.parentNode.id != "navispalte") {
          jQuery(this).hide();
        }
      });
}

/* fuer weiterempfehlen Formular */
function chkFormular() {
   form = document.getElementById("formular");
   var isError = false;
   var alertTxt = "";
   var mailRegex = new RegExp ("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])");


   if(form.elements["empfaenger"].value == "") {
		alertTxt += "Bitte geben Sie die E-Mail Adresse des Empf\u00e4ngers ein.\n";
		isError = true;
	} else {
      //if((form.elements["empfaenger"].value.indexOf('@') == -1) || (form.elements["empfaenger"].value.indexOf('.') == -1)) {
       if (!form.elements["empfaenger"].value.toLowerCase().match(mailRegex)) {
         alertTxt += "Die E-Mail Adresse des Empf\u00e4ngers ist ungueltig.\n";
         isError = true;
      }
   }
	if(form.elements["absname"].value == "") {
		alertTxt += "Bitte geben Sie Ihren Namen ein.\n";
      isError = true;
	}
	if(form.elements["absemail"].value == "") {
		alertTxt += "Bitte geben Sie Ihre E-Mail Adresse ein.\n";
		isError = true;
	} else {
      if(!form.elements["absemail"].value.toLowerCase().match(mailRegex)) {
         alertTxt += "Ihre E-Mail Adresse ist ung\u00fcltig.\n";
         isError = true;
      }
   }

   if(isError)
   {
      alert(alertTxt);
      return false;
   } else {
      return true;
   }
}


function clickFunction(id){
  jQuery('#' + id).click();
  return false;
}


function jumpTo(anchor){
  location.hash = anchor;
}

function show(tagId) {
  jQuery('#' + tagId).show();
}

function hide(tagId) {
  jQuery('#' + tagId).hide();
}
  

function toggle(tagId) {
   jQuery('#' + tagId).toggle();
}


function getParentCustomerServices(aTag){
  var tmpTag = aTag;
  for(var i=0; i<8 && !(tmpTag.className.indexOf('csl1') >=0 || tmpTag.className.indexOf('csl2') >= 0);i++)
  {
     tmpTag = tmpTag.parentNode;
  }
  return tmpTag;
}


//Bei onclick
function setDesc(aTag){
  if(getParentCustomerServices(aTag).className.indexOf('csl1') >= 0){
     if(typeof(descTagHeader) != 'undefined' && descTagHeader != null){
         getDescSpan(descTagHeader).removeAttribute('style');
     }
     descTagHeader = aTag;
     getDescSpan(descTagHeader).style.display='block';
  }
  if(getParentCustomerServices(aTag).className.indexOf('csl2') >= 0){
     if(typeof(descTagFooter) != 'undefined' && descTagFooter != null){
         getDescSpan(descTagFooter).removeAttribute('style');
     }
     descTagFooter = aTag;
     getDescSpan(descTagFooter).style.display='block';
  }
   return false;

}

function getDescSpan(aTag){
   for (i=0; i<aTag.childNodes.length; i++){
      if(aTag.childNodes[i].nodeName == 'SPAN'){
         return aTag.childNodes[i];
      }
   }
}

// Bei onMouseOut
function showDesc(aTag){
   if(getParentCustomerServices(aTag).className.indexOf('csl1') >= 0
      && typeof(descTagHeader) != 'undefined'
      && descTagHeader != null){
      getDescSpan(descTagHeader).style.display='block';
   }
   if(getParentCustomerServices(aTag).className.indexOf('csl2') >= 0
      && typeof(descTagFooter) != 'undefined'
      && descTagFooter != null ){
      getDescSpan(descTagFooter).style.display='block';
   }
   return false;
}


// Bei onMouseOver im Header und im Footer
function unfocusDesc(aTag){
   if(getParentCustomerServices(aTag).className.indexOf('csl1') >= 0
      && typeof(descTagHeader) != 'undefined'
      && descTagHeader != null
      && descTagHeader != aTag){
      getDescSpan(descTagHeader).style.display='none';
   }
   if(getParentCustomerServices(aTag).className.indexOf('csl2') >= 0
      && typeof(descTagFooter) != 'undefined'
      && descTagFooter != null
      && descTagFooter != aTag){
      getDescSpan(descTagFooter).style.display='none';
   }
   return false;
}

function closeDesc(locator){
    if(locator == 'header'
      && typeof(descTagHeader) != 'undefined'){
      getDescSpan(descTagHeader).removeAttribute('style');
      descTagHeader = null;
   }
   if(locator == 'footer'
      && typeof(descTagFooter) != 'undefined'){
      getDescSpan(descTagFooter).removeAttribute('style');
      descTagFooter = null;
   }
   return false;
}

 /*
    name - name of the cookie
    value - value of the cookie
    [expires] - expiration date of the cookie
      (defaults to end of current session)
    [path] - path for which the cookie is valid
      (defaults to path of calling document)
    [domain] - domain for which the cookie is valid
      (defaults to domain of calling document)
    [secure] - Boolean value indicating if the cookie transmission requires
      a secure transmission
    * an argument defaults when it is assigned null as a placeholder
    * a null placeholder is not required for trailing omitted arguments
 */
 function setCookie(name, value, expires, path, domain, secure) {
   var curCookie = name + "=" + escape(value) +
       ((expires) ? "; expires=" + expires.toGMTString() : "") +
       ((path) ? "; path=" + path : "") +
       ((domain) ? "; domain=" + domain : "") +
       ((secure) ? "; secure" : "");
   document.cookie = curCookie;
 }


 /*
   name - name of the desired cookie
   return string containing value of specified cookie or null
   if cookie does not exist
 */
 function getCookie(name) {
   var dc = document.cookie;
   var prefix = name + "=";
   var begin = dc.indexOf("; " + prefix);
   if (begin == -1) {
     begin = dc.indexOf(prefix);
     if (begin != 0) return null;
   } else
     begin += 2;
   var end = document.cookie.indexOf(";", begin);
   if (end == -1)
     end = dc.length;
   return unescape(dc.substring(begin + prefix.length, end));
 }

 // resize the fontsize, if its stored in the cookie
 function initFontsize() {                
   var fsizeCookie = getCookie("fontsize");
   if (fsizeCookie == null) {
     fsize = 10;
   } else {
      fsize = parseInt(fsizeCookie);
   }
   fontsize(fsize);
 }

 function resizeFontsize(factor) {          
  if (typeof fsize == 'undefined') {
      fsize = 10;
    }
    fsize += factor;  
    fontsize(fsize);
    return false;
 }

 function fontsize(fsizeToSet) {
    document.getElementsByTagName("body")[0].style.fontSize = fsizeToSet/10.0 + 'em';
    fsize = fsizeToSet;
    // set session cookie (expires == null)
    setCookie("fontsize", fsizeToSet, null, "/");
    return false;
 }

/**
 * Dieses Objekt muss in der JSP instanziert werden.
 * @param galleryId
 * @param images
 */
function Gallery(galleryId, images, imageWidths) {
  this.galleryId = galleryId;
  this.images = images;
  this.imageWidths = imageWidths;
  this.number = 0;
  this.actThumb = 0;
  this.actText = 0;
}

function showBigImage(gallery, number) {

    var numberMinus2 = number - 2;
    var numberMinus1 = number - 1;
    var numberPlus1 = number + 1;
    var numberPlus2 = number + 2;
    var nextImageTag = jQuery("#gallery_" + gallery.galleryId + "_" + numberPlus1);
    var previousImageTag = jQuery("#gallery_" + gallery.galleryId + "_" + numberMinus1);

    jQuery("#text_" + gallery.galleryId + "_" + gallery.actText).hide();

    if ((nextImageTag.length!=0) & (previousImageTag.length!=0)) {
        if (!nextImageTag.is(':visible') & previousImageTag.is(':visible')) {
            nextImageTag.show();
            jQuery("#gallery_" + gallery.galleryId + "_" + numberMinus2).hide();
            gallery.actThumb++;
        }
        else if (nextImageTag.is(':visible') & !previousImageTag.is(':visible')) {
            previousImageTag.show();
            jQuery("#gallery_" + gallery.galleryId + "_" + numberPlus2).hide();
            gallery.actThumb--;
        }
    }

    jQuery("#bigImage_" + gallery.galleryId).attr("src", gallery.images[number]);
    jQuery("#bigImage_" + gallery.galleryId).attr("style", "width:" + gallery.imageWidths[number] + "em");
    gallery.actText = number;
    gallery.number = number;
    jQuery("#text_" + gallery.galleryId + "_" + gallery.actText).show();
    trackIVW();
}

function nextThumb(gallery) {
    if (gallery.number < gallery.images.length-1) {
        showBigImage(gallery, gallery.number+1);
    }
}

function previousThumb(gallery) {
    if (gallery.number > 0) {
       showBigImage(gallery, gallery.number-1);
    }
}

function initGallery(gallery) {
    for (var i = 0; i < 3; i++) {
        jQuery("#gallery_" + gallery.galleryId + "_" + i).show();
        //show("gallery_" + gallery.galleryId + "_" + i);
    }
    //jQuery("#bigImage_" + gallery.galleryId).setAttribute("src", gallery.images[0]);
    jQuery("#bigImage_" + gallery.galleryId).attr("src", gallery.images[0]);

    jQuery("#gallery_" + gallery.galleryId).show();
    jQuery('#' + "text_" + gallery.galleryId + "_" + "0").show();
    
    //show("gallery_" + gallery.galleryId);
    //show("text_" + gallery.galleryId + "_" + "0");
}

/**
 * Diese Funktion laedt automatisch das IVW Pixel der aktuellen Seite nochmals, damit koennen Javascript Aktionen gezaehlt werden.
 */
function trackIVW() {
   //var elements = document.getElementsByClassName("tracking");
   var elements = jQuery(".tracking");
    if (elements != null && elements.length > 0) {
        var ivwPixel = new Image();
        ivwPixel.src = elements[0].src + "&date=" + new Date().getTime();
    }
}

function createTabContainer(divId){
  jQuery('#'+divId).tabs({
      onClick: function() {
          trackIVW();
      }
    });
}
