// JavaScript Document


function check_email(formname, feldname) {
	// Überprüft , ob die eingegebene eMailadresse aus dem Header richtig ist
	if(ask_to_insert_email=="")
		ask_to_insert_email="Bitte gültige eMail-Adresse angeben.";
	eval("is_available=document.forms."+formname+"."+feldname);
	if(!is_available)
		return true;
	email = eval("document.forms."+formname+"."+feldname+".value");

/*	format = /^(.+)@(.+)\.(.{2,3})/;
	format.exec(email);
	if (!(RegExp.$1 && RegExp.$2 && RegExp.$3)) {
		alert("Bitte gültige eMail-Adresse angeben.");
		document.forms.newsletter.email.focus();
	}
	else
		document.forms.newsletter.submit();*/
		
		
		
	// werden regular expressions unterstuetzt?
	var supported = 0;
	if (window.RegExp) 
	{
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) 
			supported = 1;
	}
	if (!supported) 
	{
		if(!((email.indexOf(".") > 2) && (email.indexOf("@") > 0)))
		{
			alert(ask_to_insert_email);
			eval("document.forms."+formname+"."+feldname+".focus()");
			return false;
		}
		else
		{

//			eval("document.forms."+formname+".submit()");
			return true;	
		}
	}
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9öÖäÄüÜ\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	if(!(!r1.test(email) && r2.test(email)))
	{
		alert(ask_to_insert_email);
//		eval("document.forms."+formname+"."+feldname+".focus();");
		return false;
	}
	else
	{
//		alert("email ok");
//			eval("document.forms."+formname+".submit();");

		return true;	
	}
}

function check_date(tag, monat, jahr)
{
/* 	Diese Funktion überprüft ein Datum auf
	seine Gültigkeit */
//	var jahr=parseInt(ChkDate.substring(6,10), 10);
//	var monat=parseInt(ChkDate.substring(3,5), 10);
//	var tag=parseInt(ChkDate.substring(0,2), 10);

	if ((tag<=31) && (tag>=1) && (monat>=1) && (monat<=12))		// Tag zwischen 1 und 31, Monat zwischen 1 und 12?
   	{	if((monat==1)||(monat==3)||(monat==5)||(monat==7)||(monat==8)||(monat==10)||(monat==12)) //Monate mit 31 Tagen?
   		{
			return true;
		}
       	else
       	{	if ((tag<=30) && (tag>=1))							// Tag zwischen 1 und 30
			{	if((monat==4)||(monat==6)||(monat==9)||(monat==11))	// Monate mit 30 Tagen?
				{
					return true;
				}
				else											// Sonstige Monate (Februar)
				{	if ((tag<=28) && (tag>=1)) 					// Tag zwischen 1 und 28?
					{
						return true;
					}
               		else			
               		{	if(tag==29)								// Wenn Tag == 29 muss es ein Schaltjahr sein 
                   		{	if ((jahr%4)==0)					// ...das heisst durch 4 teilbar sein
                       		{	if ((jahr%100)!=0) 				// und durch Hundert teilbar sein 
								{
									return true;
								}
                           		else
                           		{	if ((jahr%400)==0) 			// wenn nicht durch hundert teilbar, dann durch 400
									{	return true;
									}
                                   	else 
									{	return false;
									}
								}
                       		}
                       		else 
							{ 		return false;
							}
						}
                   		else 
						{	return false;
						}
               		}
           		}
			}
        	else
			{ 	return false;
			}
       }
   	}
    else 
	{
		return false;
	}

}

function replace_all(suchausdruck,ersetzedurch,original,do_alert)
{
	if(suchausdruck=="")
		return original;
	suchausdruck=suchausdruck.replace(/\//g,"\\\/");	// / zu \/ umwandeln
	suchausdruck=suchausdruck.replace(/\?/g,"\\\?");	// ? zu \? umwandeln
	suchausdruck=suchausdruck.replace(/\./g,"\\\.");	// . zu \. umwandeln
	suchausdruck=suchausdruck.replace(/\+/g,"\\\+");	// . zu \+ umwandeln
	suchausdruck=suchausdruck.replace(/\$/g,"\\\$");	// . zu \+ umwandeln


//	eval("returncode=do_replace(/"+suchausdruck+"/gi, ersetzedurch, original);");
	if(do_alert==true)
		alert(suchausdruck);
	eval("returncode=original.replace(/"+suchausdruck+"/gi, ersetzedurch);");

	return returncode;
}

function dez_to_hex(dez)
{
	if(dez=="")
		dez="0";
	else
		dez=dropLeadingZeros(dez);
	var RGB = new Array(256);
	var k = 0;
	var hex = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
	
	for (i = 0; i < 16; i++) {	
		for (j = 0; j < 16; j++) {		
			RGB[k] = hex[i] + hex[j];
			k++;
		}
	}
	return RGB[dez];
}

function dropLeadingZeros(num){
	if(typeof(num)!="string")
		num=String(num);

	while (num.charAt(0) == "0") {
		newTerm = num.substring(1, num.length);
		num = newTerm;
	}
	if (num == "") 
		num = "0";
	return Number(num);
}

function change_bgcol(obj, r,g,b)
{
	if ((myobj=MM_findObj(obj))!=null)
		if(myobj.style)
			myobj.style.backgroundColor="#"+dez_to_hex(r)+dez_to_hex(g)+dez_to_hex(b);
		else	
			myobj.bgColor="#"+dez_to_hex(r)+dez_to_hex(g)+dez_to_hex(b);
	
}


/* Convert CMYK to RGB. */


	var frac_0=0;
	var frac_1=100;
	var not_k;
	var frac_1_0bits=3;
	var frac_bits=15;


function convert_cmyk_to_rgb(c,m,y,k) // const gs_imager_state * pis,  frac rgb[3])
{	
	var use_adobe_cmyk_rgb=true;
	var rgb=Array();
	c=Number(c);
	m=Number(m);
	y=Number(y);
	k=Number(k);
    switch (k) {
	case frac_0:
	    rgb[0] = frac_1 - c;
	    rgb[1] = frac_1 - m;
	    rgb[2] = frac_1 - y;
	    break;
	case frac_1:
		rgb[0] = rgb[1] = rgb[2] = frac_0;
	    break;
	default:
		/* R = 1.0 - min(1.0, C + K), etc. */
		not_k = frac_1 - k;

		rgb[0] = (c > not_k ? frac_0 : not_k - c);
		rgb[1] = (m > not_k ? frac_0 : not_k - m);
		rgb[2] = (y > not_k ? frac_0 : not_k - y);
	
    }
	return Array(rgb[0],rgb[1],rgb[2]);
}



function other_convert_cmyk_to_rgb(c,m,y,k)
{
//		alert("c="+c+", m="+m+", y="+y+", k="+k);
		var red=Number(c)+Number(k);
		var green=Number(m)+Number(k);
		var blue=Number(y)+Number(k);
//		alert("red="+red+", green="+green+", blue="+blue);
		
		red=(red-100)*(-1);
		green=(green-100)*(-1);
		blue=(blue-100)*(-1);
		
		red=Math.abs(Math.round(red/100*255,0));
		green=Math.abs(Math.round(green/100*255,0));
		blue=Math.abs(Math.round(blue/100*255,0));
//		alert("red="+red+", green="+green+", blue="+blue);

		return Array(red,green,blue);
}

function change_textcol(obj, c,m,y,k)
{
	what=obj.substr(0,4);
	fehler=false;
	if(isNaN(c)||c<0||c>100)
	{	alert("Der Cyan-Wert ist ungültig (0-100)!");
		if ((myobj=MM_findObj(what+"schriftcyan"))!=null)
			myobj.focus();
		fehler=true;
	}
	if(isNaN(m)||m<0||m>100)
	{	alert("Der Magenta-Wert ist ungültig (0-100)!");
		if ((myobj=MM_findObj(what+"schriftmagenta"))!=null)
			myobj.focus();

		fehler=true;
	}
	if(isNaN(y)||y<0||y>100)
	{	alert("Der Gelb-Wert ist ungültig (0-100)!");
		if ((myobj=MM_findObj(what+"schriftyellow"))!=null)
		{	alert(setze);
			myobj.focus();
		}
		fehler=true;
	}	
	if(isNaN(k)||k<0||k>100)
	{	alert("Der Schwarz-Wert ist ungültig (0-100)!");
		if ((myobj=MM_findObj(what+"schriftblack"))!=null)
			myobj.focus();
	
		fehler=true;
	}
	cols=convert_cmyk_to_rgb(c,m,y,k);
	r=cols[0];
	g=cols[1];
	b=cols[2];	

	if(fehler)
		return false;
//	alert("#"+dez_to_hex(r)+dez_to_hex(g)+dez_to_hex(b));
	if ((myobj=MM_findObj(obj))!=null)
		if(myobj.style)
		{
			myobj.style.color="#"+dez_to_hex(r)+dez_to_hex(g)+dez_to_hex(b);
		}
		else
		{
			myobj.fgColor="#"+dez_to_hex(r)+dez_to_hex(g)+dez_to_hex(b);
		}
}

function show_win(openfile)
{
  /* 	Argumente:
	openfile: URL der zu öffenden Datei

	OPTIONAL:
	an 2. Stelle: width, Breite des zu öffnenden Fensters
	an 3. Stelle: height, Höhe des zu öffnenden Fensters
	an 4. Stelle: params, Parameter des zu öffnenden Fensters
	an 5. Stelle: name des Fensters
  Wenn die optionalen Parameter nicht belegt sind, werden Standartwerte eingesetzt */
	
  var winwidth, winheight, params;	
  argumente=show_win.arguments;
  if(argumente.length>=2)
	winwidth=argumente[1];
  else
	winwidth=530;

  if(argumente.length>=3)
	winheight=argumente[2];
  else
	winheight=560;

  if(argumente.length>=4)
	params="width="+winwidth+",height="+winheight+","+argumente[3];
  else
	params="width="+winwidth+",height="+winheight+",resizable=yes,scrollbars=no,location=no,status=no";

  if(argumente.length>=5)
	win_name=argumente[4];
  else
	win_name="Info";
//alert(params);

	var win_var;
	win_var=window.open(openfile,win_name,params);
	win_var.resizeTo(winwidth, winheight);
	win_var.focus();
}

function trim(value) 
{
   var temp = value;
   var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
   if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
   var obj = / +/g;
   temp = temp.replace(obj, " ");
   if (temp == " ") { temp = ""; }
   return temp;
}

//-->

