/* Standardfunktionen für Fachhochschule Dortmund */

////////// neues Fenster öffnen mit Parameterübergabe ///////////////

function openWindow (url,windowName,opt) {
  // opt im Format "r,st,m,l=36,h=56"
  if (!opt) var opt = "";

  // array: searchString,parameter,default,...
  var optionParam = new Array(
    "m","menubar","no",
    "lo","locationbar","no",
    "st","status","no",
    "r","resizable","no",
    "sc","scrollbars","yes",
    "l=","left","150",
    "t=","top","100",
    "w=","width","500",
    "h=","height","600");

  var negate = new Array();
  negate["yes"] = "no";
  negate["no"] = "yes";

  var options = "";
  for (var i=0; i < optionParam.length; i+=3) {
    options += optionParam[i+1]+"=";

    pos = opt.indexOf(optionParam[i]);
    if (pos!=-1) {
      if (i<15) options += negate[optionParam[i+2]]; // m lo st r sc
        else { // l t w h
          eval("var regexp = /"+optionParam[i]+"(\\d+)/.exec(opt);");
          options += RegExp.$1;
        }
    } else options += optionParam[i+2];
    options += ",";
  }

  win = window.open(url,windowName,options.substr(1));
  win.focus();
}

////////// popup mit Paramterübergabe /////////////

var pop = null;

function popdown() {
  if (pop && !pop.closed) pop.close();
}

function popup(obj,w,h) {
  var url = (obj.getAttribute) ? obj.getAttribute('href') : obj.href;
  if (!url) return true;
  w = (w) ? w += 20 : 150;  // 150px*150px is the default size
  h = (h) ? h += 25 : 150;
  var args = 'width='+w+',height='+h+',resizable';
  popdown();
  pop = window.open(url,'',args);
  return (pop) ? false : true;
}

window.onunload = popdown;
window.onfocus = popdown;

////////// Eingabe eines Formular-Textfeldes prüfen /////////////////

function checkElement(element, pattern, message, ignoreNoInput, focusElement, defaultValue) {
  // focusElement = 1, falls ggf. Element focussiert werden soll
  // ignoreNoInput = 1, falls leeres Feld keinen Fehler anzeigen soll
  // defaultValue = 1, falls Element mit default-Wert belegt ist

  eval("var regexp = "+pattern+";"); // reg. Ausdruck
  var ok = regexp.test(element.value);

  if (!ok || defaultValue) {
    if (!element.value || defaultValue) { // Feld leer
      if (!ignoreNoInput && (message || defaultValue)) alert(message);
      } else alert("Ihre Eingabe ist nicht zulässig.");
    if (focusElement) {
      element.select();
      element.focus();
    }
    return false;
    } else return true;
}

////////// Element auf- oder zuklappen //////////////////////////////

function popupOrHide(elementId) {
  with(document.getElementById(elementId).style) {
   if (display == 'block') display = 'none';
     else  display = 'block';
  }
}

////////// Element auf- oder zuklappen Part II//////////////////////

var lastKeyword; // enthält id des letzten Eintrags

function pophide(element) {
  // Element schließen
  if (lastKeyword) {
    popupOrHide("def"+lastKeyword);
    document.getElementById("item"+lastKeyword).style.fontWeight = 'normal';
  }

   // Element öffnen
  if (lastKeyword != element) {
    popupOrHide("def"+element);
    document.getElementById("item"+element).style.fontWeight = 'bold';
    lastKeyword = element;
  } else lastKeyword = null;
}

////////// Block ausfaden ///////

function fadeBlock(state) {
	var allpics = 50;
	
	for (var i=0; i < allpics; i++) {
		var currentElement = 'pic' + i;
   	var dummyElement = 'dummy' + i;
   	
   	if(state == 0) {
   		if(document.getElementById(currentElement) != null) {		
   			new Effect.Opacity(currentElement, {duration:0.2, from:1, to:0.2});
   		}
   		if(document.getElementById(dummyElement) != null) {
   			new Effect.Opacity(dummyElement, {duration:0.2, from:1, to:0.2});
    	}
    } else {
    	if(document.getElementById(currentElement) != null) {		
   			tempOp = $(currentElement).getStyle('opacity');
   			if(tempOp < 1) {
   				new Effect.Opacity(currentElement, {duration:0.2, from:tempOp, to:1});
   			}
   		}
   		if(document.getElementById(dummyElement) != null) {
   			tempOp = $(dummyElement).getStyle('opacity');
   			if(tempOp < 1) {
   				new Effect.Opacity(dummyElement, {duration:0.2, from:tempOp, to:1});
    		}
    	}
    }
	}
}

////////// Element highlighten //////////////////////////////

function highLight(elementId) {
   
	// maximale Anzahl der Bilder
	var allpics = 50;
	//document.getElementById(elementId).style.MozOpacity ="1";
    //document.getElementById(elementId).style.opacity = "1";
    new Effect.Opacity(elementId, {duration:0, from:0.2, to:1});
	for (var i=0; i < allpics; i++) {
   var currentElement = 'pic' + i;
   var dummyElement = 'dummy' + i;
   if(document.getElementById(currentElement) != null) {		
   	if(currentElement != elementId) {
   		elop = $(currentElement).getOpacity();
   		
   		if(elop != 0.2) {
   			new Effect.Opacity(currentElement, {duration:0.2, from:elop, to:0.2});
 			}
   	}
   }
   //elop = $(dummyElement).getOpacity();
   if(document.getElementById(dummyElement) != null) {
   		delop = $(dummyElement).getOpacity();
   		if(delop != 0.2) {
   			new Effect.Opacity(dummyElement, {duration:0.2, from:delop, to:0.2});
   		}
   }
  }

} 	

////////// Element unhighlighten //////////////////////////////

function unhighLight(elementId) {
   		document.getElementById(elementId).style.MozOpacity ="0.2";
   		document.getElementById(elementId).style.opacity = "0.2";
} 

////////// News highlighten //////////////////////////////

function highLightNews(elementId,status) {
	if(status == 0) {
		document.getElementById(elementId).style.fontWeight = "normal";
	} else {
		document.getElementById(elementId).style.fontWeight = "bold";
	}
}
////////// Stringfunktion trim realisieren //////////////////////////  

function trim(value) {
  var s = value;
  while (s.charAt(0) == " ") {
    s = s.substr(1);
  };
  while (s.charAt(s.length - 1) == " ") {
    s = s.substr(0, s.length - 1);
  };
  return s;
};

////////// Link aus select-Box //////////////////////////////////////

function linkToValue(fSelect) {
  var linkData = fSelect.options[fSelect.selectedIndex].value.split("|");
  var url = linkData[1];
  if (url) {
    if (linkData[0] == "1") {
      win = window.open(url);
      win.focus();
    } else top.location.href = url;
  }
}

////////// Link zu JTrade ///////////////////////////////////////////

function callUpJTrade(id) {
  location.href = 'http://app.jtrade.de/?' + id;
}

/////////// default-Eintrag in Eingabefeld realisieren //////////////

var defaultText = true;

function handleDefaultText(fElement, defaultTextName) {
  if (!defaultTextName) { // onFocus
    if (defaultText) fElement.value = "";
    } else { // onBlur
    fElement.value = trim(fElement.value);
    if (fElement.value == "") {
      fElement.value = defaultTextName;
      defaultText = true;
    } else defaultText = false;
  }
}

