//globale Path

var path;


//beliebige Elemente in einem Array löschen

Array.prototype.array_cut = function(n) {
	if(n>=0 && n<this.length) {
		if(n<this.length) {
			var x = -1;
			while((++x)<this.length) {
				if(x>=n) {
					this[x] = this[x+1];
				}
			}
		}
		this.pop();
	}
};


// toggle elements visible/invisible, DHE, 11.02.07
// usage: call function with name of element to be toggled

function toggleLayer(whichLayer) {
  if (document.getElementById) {
    // this is the way the standards work
    var style2 = document.getElementById(whichLayer).style;
    style2.display = style2.display? "":"block";
  }
  else if (document.all) {
    // this is the way old msie versions work
    var style2 = document.all[whichLayer].style;
    style2.display = style2.display? "":"block";
  }
  else if (document.layers) {
    // this is the way nn4 works
    var style2 = document.layers[whichLayer].style;
    style2.display = style2.display? "":"block";
  }
}

// called on page load
function init() {
  fixmacie('cf', 'li');
  fixmacie('last-iteration', 'dl');
}

function initScrollLayer() {
    // arguments: id of layer containing scrolling layers (clipped layer), id of layer to scroll,
    // if horizontal scrolling, id of element containing scrolling content (table?)
    var wndo = new dw_scrollObj('viewport', 'scroller', 'slides');
}


re1=/^ */
re2=/ *$/
String.prototype.ltrim = function () { return this.replace(re1,""); } 
String.prototype.rtrim = function () { return this.replace(re2,""); } 
String.prototype.trim  = function () { return this.ltrim().rtrim(); } 


// http://www.positioniseverything.net/easyclearing.html
function fixmacie(classname, tagname) {
  clearstyle = 'clear:both; height:0; overflow:hidden;';

  /* Check if the browser is IE5 Mac */
  if( navigator.appVersion.indexOf('Mac')!=-1 && document.all) {
    /* Pass the class name on the container to fixmacie 
       (must be the FIRST classname if multiple classnames 
       are used on the li!) */    

    var tags = document.getElementsByTagName(tagname);
    for(var d = 0; d < tags.length; d++) {
      if(tags[d].className.indexOf(classname) == 0) {
        tags[d].innerHTML += '<div style="'+clearstyle+'"> </div>'; 
        /* The above html tags get added to the end of 
     the cleared container if the browser is IE/mac. */  
      } 
    }
  }
}


function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function arrayTrim(a){
  var tmp=new Array();
  for(j=0;j<a.length;j++)
    if(a[j]!='')
      tmp[tmp.length]=a[j];
  a.length=tmp.length;
  for(j=0;j<tmp.length;j++)
    a[j]=tmp[j];
  return a;
}

function str_replace(search, replace, subject) {
  retval = '';
  for (var i=0; i < subject.length; i++) {
    retval+= (subject.charAt(i) == search) ? replace : subject.charAt(i);
  }
  return retval;
}

// http://www.informit.com/isapi/product_id~%7BE40D98B6-703F-4ED9-9B6C-9DD2E731FAD5%7D/element_id~%7B26FC4DC0-4520-47D2-B188-EFF1FF8F2E10%7D/st~%7BB09E5FA9-ACC5-4D80-B7A6-5DA9841F043F%7D/content/articlex.asp
// emulate array.push-method for IE prior to 5.5
function Array_push() {
  var A_p = 0
  for (A_p = 0; A_p < arguments.length; A_p++) {
    this[this.length] = arguments[A_p]
  }
  return this.length
}

if (typeof Array.prototype.push == "undefined") {
  Array.prototype.push = Array_push
}

function min(val1, val2) {
  if (val1 <= val2) {
    return val1;
  }
  return val2;
}

function max(val1, val2) {
  if (val1 >= val2) {
    return val1;
  }
  return val2;
}

function getRef(layer) {
  var ref;
  if (_isN6())
    ref = eval(document.getElementById(layer));
  if (_isMSIE5())
    ref = eval("document.all."+layer);
  return ref;
}

function getQueryVariable(variable, query) {
  if (!query) {
    var query = window.location.search.substring(1);
  }
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
  // variable not found in query string
  return false;
}

function openWindow(url, width, height, resizable, scrollbars, targetName) {
  width = (width === undefined) ? 770 : width;
  height = (height === undefined) ? 570 : height;
  wleft = (screen.width - width) / 2;
  wtop  = (screen.height - height) / 2;
  targetName = targetName ? targetName : 'new';
  resizable = resizable ? resizable : 'no';
  scrollbars = scrollbars ? scrollbars : 'no';
  
  window.open(url, targetName, 'toolbar=no,location=no,directories=no,scrollbars='+scrollbars+',status=no,menubar=no,resizable='+resizable+',width='+width+',height='+height+',left='+wleft+',top='+wtop);
}

function openUrl(url, targetName) {
  window.open(url, targetName);
}

function isInt(str) {
  var i = parseInt(str);

  if (isNaN (i))
    return false;

  i = i.toString();
  if (i != str)
    return false;

  return true;
}

function submitCart() {
	
	
	//Übergabe aller notwendigen Werte die sich in Hidden Fields befinden
	itemname = document.bestellung.item_name.value;
	amount = document.bestellung.amount.value;
	id = document.bestellung.item_number.value;
	email = document.bestellung.business.value;
	
	var f = document.bestellung;
	
	//Überprüfen ob es SelectFelder gibt
	
	function pruefen(f){
	var i;  //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++) {
   	
      i = f.elements[j];
      if (i.type=="select-one" || i.type=="select-multiple")
	 return true;
	  else return false;
   }
	
}


	function selected(f){
   var n=0;	
   var i;  //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++) {
      i = f.elements[j];
      
   if (i.type=="select-one" || i.type=="select-multiple") {
   	 fehler = 0;
   if (i.selectedIndex == 0){ 
   		fehler++;
      alert('Please select a value for '+i.value);
	  
   }
   	}
		}
	if (fehler == 0 ){
   	
	return fehler;
   }
	
	}


function selectLinks(){
	
   var linkstring = ""; 	
   var n=0;	
   var i;  //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++) {
      i = f.elements[j];
      
   if (i.type=="select-one" || i.type=="select-multiple") {
   	 
	if(i.name != 'shipping'){
	linkstring +=	"&on"+n+"="+i.value;
	n++;
		
	}
	if (i.name == 'shipping'){
		
		linkstring += "&shipping"+"="+i.value;
	}
	
	
	
}


}
	
if (linkstring != "")

return linkstring;

	
}	
	
	




//wenn es select felder gibt prüfen, ob hier ein Wert Selektiert wurde

if (pruefen(f) == true){
	
//Wenn Selectfelder vorhanden prüfen ob ein Wert ausgewählt wurde
if (selected(f)== 0){

//Werte holen und Link zusammenbauen
if (selectLinks()){
	linkstring = selectLinks();
	
	location.href = '/shop?action=add_item&id='+id+'&qty=1&type=article'+linkstring;
	
	
}	


}
}

//Wenn keine Selectfelder vorhanden, nur die Werte aus Hidden Fields übergeben
else{

      	location.href = '/shop?action=add_item&id='+id+'&qty=1&type=article'


	
}


}








function submitCartPub() {
	
	
	//Übergabe aller notwendigen Werte die sich in Hidden Fields befinden
	itemname = document.bestellung.item_name.value;
	amount = document.bestellung.amount.value;
	id = document.bestellung.item_number.value;
	email = document.bestellung.business.value;
	
	var f = document.bestellung;
	
	//Überprüfen ob es SelectFelder gibt
	
	function pruefen(f){
	var i;  //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++) {
   	
      i = f.elements[j];
      if (i.type=="select-one" || i.type=="select-multiple")
	 return true;
	  else return false;
   }
	
}


	function selected(f){
   var n=0;	
   var i;  //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++) {
      i = f.elements[j];
      
   if (i.type=="select-one" || i.type=="select-multiple") {
   	 fehler = 0;
   if (i.selectedIndex == 0){ 
   		fehler++;
      alert('Please select a value for '+i.value);
	  
   }
   	}
		}
	if (fehler == 0 ){
   	
	return fehler;
   }
	
	}


function selectLinks(){
	
   var linkstring = ""; 	
   var n=0;	
   var i;  //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++) {
      i = f.elements[j];
      
   if (i.type=="select-one" || i.type=="select-multiple") {
   	 
	if(i.name != 'shipping'){
	linkstring +=	"&on"+n+"="+i.value;
	n++;
		
	}
	if (i.name == 'shipping'){
		
		linkstring += "&shipping"+"="+i.value;
	}
	
	
	
}


}
	
if (linkstring != "")

return linkstring;

	
}	
	
	




//wenn es select felder gibt prüfen, ob hier ein Wert Selektiert wurde

if (pruefen(f) == true){
	
//Wenn Selectfelder vorhanden prüfen ob ein Wert ausgewählt wurde
if (selected(f)== 0){

//Werte holen und Link zusammenbauen
if (selectLinks()){
	linkstring = selectLinks();
	
	location.href = '/publications?action=add_item&id='+id+'&qty=1'+linkstring;
	
	
}	


}
}

//Wenn keine Selectfelder vorhanden, nur die Werte aus Hidden Fields übergeben
else{
	
	location.href = '/publications?action=add_item&id='+id+'&qty=1'
	
}


}






function submitCartPubShop() {
	
	
	//Übergabe aller notwendigen Werte die sich in Hidden Fields befinden
	itemname = document.bestellung.item_name.value;
	amount = document.bestellung.amount.value;
	id = document.bestellung.item_number.value;
	email = document.bestellung.business.value;
	
	var f = document.bestellung;
	
	//Überprüfen ob es SelectFelder gibt
	
	function pruefen(f){
	var i;  //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++) {
   	
      i = f.elements[j];
      if (i.type=="select-one" || i.type=="select-multiple")
	 return true;
	  else return false;
   }
	
}


	function selected(f){
   var n=0;	
   var i;  //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++) {
      i = f.elements[j];
      
   if (i.type=="select-one" || i.type=="select-multiple") {
   	 fehler = 0;
   if (i.selectedIndex == 0){ 
   		fehler++;
      alert('Please select a value for '+i.value);
	  
   }
   	}
		}
	if (fehler == 0 ){
   	
	return fehler;
   }
	
	}


function selectLinks(){
	
   var linkstring = ""; 	
   var n=0;	
   var i;  //Enthält das jeweilige Formularelement
   for (var j=0; j<f.elements.length; j++) {
      i = f.elements[j];
      
   if (i.type=="select-one" || i.type=="select-multiple") {
   	 
	if(i.name != 'shipping'){
	linkstring +=	"&on"+n+"="+i.value;
	n++;
		
	}
	if (i.name == 'shipping'){
		
		linkstring += "&shipping"+"="+i.value;
	}
	
	
	
}


}
	
if (linkstring != "")

return linkstring;

	
}	
	
	




//wenn es select felder gibt prüfen, ob hier ein Wert Selektiert wurde

if (pruefen(f) == true){
	
//Wenn Selectfelder vorhanden prüfen ob ein Wert ausgewählt wurde
if (selected(f)== 0){

//Werte holen und Link zusammenbauen
if (selectLinks()){
	linkstring = selectLinks();
	
	location.href = '/publication_shop?action=add_item&id='+id+'&qty=1&type=publication'+linkstring;
	
	
}	


}
}

//Wenn keine Selectfelder vorhanden, nur die Werte aus Hidden Fields übergeben
else{
	
	location.href = '/publication_shop?action=add_item&id='+id+'&qty=1&type=publication'
	
}


}












function UpdateQtyPub(item)
			{
				itemId = item.name; 
				newQty = item.options[item.selectedIndex].text;
				
				document.location.href = '/cart?action=update_item&id='+itemId+'&qty='+newQty+'&type=Publication';
			}
			
function UpdateQtyArt(item)
			{
				itemId = item.name; 
				newQty = item.options[item.selectedIndex].text;
				
				document.location.href = '/cart?action=update_item&id='+itemId+'&qty='+newQty+'&type=Article';
			}			
			
function UpdateShipping(item)
			{
				 itemId = item.name;
				newShipping = item.options[item.selectedIndex].value;
				newCountry  = item.options[item.selectedIndex].text;
				document.location.href = '/cart?shippingCost='+newShipping+'&country='+newCountry;
			}
			
function changepic(img_name,img_src) {
document[img_name].src=img_src;
}

function changevid(img_name,img_src,vidpath,popup) {
if(popup != 1){
document[img_name].src=img_src;
}
if(vidpath!= null){
	path = vidpath;
}
}

function vidpopup(){
	
	maxWin(path,'Video');
}



function changecaption(divname,captiontext){
	
	 document.getElementById("imgreplacecaption").innerHTML=captiontext; 
	
	
}




var wstat
var ns4up = (document.layers) ? 1 : 0
var ie4up = (document.all) ? 1 : 0
var xsize = screen.width
var ysize = screen.height
var breite=xsize/2
var hoehe=ysize/2
var xpos=0
var ypos=0
function maxWin(url,name){
  name = (name === undefined) ? "newWindow" : name;
  wstat=window.open(url,name,"scrollbars=no,status=no,toolbar=no,location=no,directories=no,resizable=no,menubar=no,width="+screen.availWidth+",height="+screen.availHeight+",screenX="+xpos+",screenY="+ypos+",top="+ypos+",left="+xpos)
}



/*http://forum.de.selfhtml.org/archiv/2003/1/t35978/ ----- Werte von CSS Klassen tauschen     */
function changeClassProperty(classname,prop,val)
{
  var rules,docstyle=document.styleSheets.item(0);
  if(docstyle.rules)rules=docstyle.rules;
  if(docstyle.cssRules)rules=docstyle.cssRules;
  var rl=rules.length;

  for(var i=0;i<rl;i++)
  {
    if(rules.item(i).selectorText=="."+classname)rules.item(i).style[prop]=val;
  }
}



/*
Diese Beispielfunktion erwartet vier Parameter

a
    gibt an, welche Aktion die Funktion ausfŸhren soll.
o
    das Objekt, auf das die Aktion angewandt wird.
c1
    der Name der ersten Klasse
c2
    der Name der zweiten Klasse

Mšgliche Aktionen sind:

swap
    tauscht Klasse c1 gegen Klasse c2 aus.
add
    fŸgt Klasse c1 dem Objekt o hinzu.
remove
    lšscht Klasse c1.
check
    prŸft, ob Klasse c1 schon dem Objekt o hinzugefŸgt wurde und gibt true oder false zurŸck. 







*/

function cssjs(a,o,c1,c2)
{
	switch (a){
		case 'swap':
		   n=document.getElementsByName('subnavi').length;
		   for(x=0;x<n;x++){
		   	document.getElementsByName('subnavi')[x].className = document.getElementsByName('subnavi')[x].className.replace(c2,c1);			
			
		   }
			
			o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
			
		break;
		case 'add':
			if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
			
		break;
		case 'remove':
			var rep=o.className.match(' '+c1)?' '+c1:c1;
			o.className=o.className.replace(rep,'');
		break;
		case 'check':
			return new RegExp('\\b'+c1+'\\b').test(o.className)
		break;
	}
}




