﻿var d = document;
var mac = (navigator.appVersion.indexOf("Mac")!=-1) ? true : false;

if( mac && navigator.appVersion.indexOf("MSIE 5.0")!=-1 )
{
	d.write('<link rel="stylesheet" href="../css/screen_macie5.css" type="text/css" />');
}


var _TimeOut = null;
var _CI = null;
var _ItemList = new Array();
var _arrowGif = '<img align="right" border="0" alt="" class="subnav" src="../img/_arrow.gif">';
var _delay = 200;
var _count = 0;

function ActionItem(item, P, isMain, idSub, O)
{
	_ItemList[_ItemList.length] = item;
	var index = _ItemList.length - 1;
	idSub =(!idSub) ? 'null' :('\'' + idSub + '\'');
	O = '\'' + O + '\'';
	P = '\'' + P + '\'';
	return ' onmouseover="Over(this,' + P + ',' + isMain + ',' + idSub + ',' + O + ',' + index + ')" onmouseout="Out(this,' + _delay + ')" ';
}

function Draw(menu, O, P)
{
	var P =(P != null) ? P : '';
	var str = '<div class="'+ P +'M">';
	var strSub = '';
	if(!O) O = 'hbr';
	var OStr = String(O);
	var OSub = 'v' + OStr.substr(1, 2);
	var item, idSub, hasChild;

	for(var i = 0; i < menu.length; ++i)
	{
		item = menu[i];
		if(!item) continue;
		if(!item) continue;
		if (d.URL.match("/"+item[2])){
		str += '<a href="'+ item[2] +'" title="'+ item[4] +'" class="'+ P +'lvl2a"';
		}
		else
		{
		str += '<a href="'+ item[2] +'" title="'+ item[4] +'" class="'+ P +'lvl2"';
		}
		hasChild =(item.length > 5);
		idSub = hasChild ? '_' +(++_count) : null;
		str += ActionItem(item, P, 1, idSub, O ) + '>';
		str += hasChild ? _arrowGif : "";
		str += item[1];
		str += '</a>';
		if(hasChild) strSub += DrawSM(item, P, idSub, OSub );
	}
	d.write( str + strSub + '</div>' );
}

function DrawSM(sm, P, id, O )
{
	var str = '<div class="SM" id="' + id + '">';
	var strSub = '';
	var item, idSub, hasChild;

	for(var i = 5; i < sm.length; ++i)
	{
		item = sm[i];
		if(!item) continue;
		hasChild =(item.length > 5);
		idSub = hasChild ? '_' + (++_count) : null;
		str += '<a href="'+ item[2] +'" title="'+  item[4]  +'" class="'+ P +'lvl3"' + ActionItem(item, P, 0, idSub, O ) + '>';
		if(hasChild)
		{
			str += _arrowGif;
			strSub += DrawSM(item, P, idSub, O);
		}
		str += item[1];
		str += '</a>';
	}
	str += '</div>' + strSub;
	return str;
}

function Over(o, P, isMain, idSub, O, index)
{
	clearTimeout(_TimeOut);

	if(!o.Prefix)
	{
		o.Prefix = P;
		o.IsMain = isMain;
	}

	var thisM = GetThisM(o, P);
	if(!thisM.Items) thisM.Items = new Array();
	for(var i = 0; i < thisM.Items.length; ++i)
	{
		if(thisM.Items[i] == o) break;
	}
	if(i == thisM.Items.length)
	{
		thisM.Items[i] = o;
	}

	if(_CI)
	{
		if(_CI == thisM) return;

		var thatPrefix = _CI.Prefix;
		var thatM = GetThisM(_CI, thatPrefix);
		if(thatM != thisM.PM)
		{
			if(thatM.id != idSub) HideM(thatM, thisM, thatPrefix);
		}
	}

	_CI = o;

	var item = _ItemList[index];

	if(idSub)
	{
		var sm = d.getElementById(idSub);
		ShowSM(o, P, sm, O);
	}
}

function Out(o, delayTime)
{
	if(!delayTime) delayTime = _delay;
	_TimeOut = window.setTimeout('HideMTime()', delayTime);
}


function MoveSM(o, sm, O)
{
	var mode = String(O);
	if(mode.charAt(0) == 'h')
	{
		if(mode.charAt(1) == 'b') sm.style.top =(GetY(o) + o.offsetHeight) + 'px';
		else sm.style.top =(GetY(o) - sm.offsetHeight) + 'px';
		if(mode.charAt(2) == 'r') sm.style.left =(GetX(o)) + 'px';
		else sm.style.left =(GetX(o) + o.offsetWidth - sm.offsetWidth) + 'px';
	}
	else
	{
		if(mode.charAt(2) == 'r') sm.style.left =(GetX(o) + o.offsetWidth) + 'px';
		else sm.style.left =(GetX(o) - sm.offsetWidth) + 'px';
		if(mode.charAt(1) == 'b')sm.style.top =(GetY(o)) + 'px';
		else sm.style.top =(GetY(o) + o.offsetHeight - sm.offsetHeight) + 'px';
	}
}

function ShowSM(o, P, sm, O)
{
	if(!sm.PM)
	{
		var thisM = GetThisM(o, P);
		sm.PM = thisM;
		if(!thisM.SM) { thisM.SM = new Array(); }
		thisM.SM[thisM.SM.length] = sm;
	}

	MoveSM(o, sm, O);
	sm.style.visibility = 'visible';

	if(d.all)
	{
		sm.Overlap = new Array();
		// IFRAME?, OBJECT?
		HideControl("SELECT", sm);
	}
}

function HideMTime()
{
	if(_CI)
	{
		var P = _CI.Prefix;
		HideM(GetThisM(_CI, P), null, P);
	}
}

function HideM(thisM, currentM, P)
{
	var str = P + 'SM';
	if(thisM.SM)
	{
		for(var i = 0; i < thisM.SM.length; ++i)
		{
			HideSM(thisM.SM[i], P);
		}
	}

	while(thisM && thisM != currentM)
	{
		if(thisM.className == str)
		{
			thisM.style.visibility = 'hidden';
			ShowControl(thisM);
		}
		else break;
		thisM = GetThisM(thisM.PM, P);
	}
}

function HideSM(thisM, P)
{
	if(thisM.style.visibility == 'hidden') return;
	if(thisM.SM)
	{
		for(var i = 0; i < thisM.SM.length; ++i)
		{
			HideSM(thisM.SM[i], P);
		}
	}
	thisM.style.visibility = 'hidden';
	ShowControl(thisM);
}

function HideControl(tagName, sm)
{
	var x = GetX(sm);
	var y = GetY(sm);
	var w = sm.offsetWidth;
	var h = sm.offsetHeight;

	for(var i = 0; i < d.all.tags(tagName).length; ++i)
	{
		var o = d.all.tags(tagName)[i];
		if(!o || !o.offsetParent) continue;

		var ox = GetX(o);
		var oy = GetY(o);
		var ow = o.offsetWidth;
		var oh = o.offsetHeight;

		if(ox >(x + w) ||(ox + ow) < x) continue;
		if(oy >(y + h) ||(oy + oh) < y) continue;
		sm.Overlap[sm.Overlap.length] = o;
		o.style.visibility = "hidden";
	}
}

function ShowControl(sm)
{
	if(sm.Overlap)
	{
		var i;
		for(i = 0; i < sm.Overlap.length; ++i)
			sm.Overlap[i].style.visibility = "";
	}
	sm.Overlap = null;
}

function GetThisM(o, P)
{
	var str1 = P + 'SM';
	var str2 = P + 'M';
	while(o)
	{
		if(o.className == str1 || o.className == str2)
			return o;
		o = o.parentNode;
	}
	return null;
}

function GetX(o)
{
	var x = 0;
	do
	{
		x += o.offsetLeft;
		o = o.offsetParent;
	}
	while(o);
	return x;
}

function GetY(o)
{
	var y = 0;
	do
	{
		y += o.offsetTop;
		o = o.offsetParent;
	}
	while(o);
	return y;
}

function CheckMembershipValue( val )
{
	var container = d.getElementById( "membership-number-container" );
	if( val.indexOf("dü") == -1 ) 
	{
		container.style.display = "none";
	}
	else
	{
		container.style.display = "block";
	}
}

function WriteFlashTag ( file_name , movie_width , movie_height ){
	document.write(
	  '<object class="right" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' + movie_width + '" height="' + movie_height + '" id="file_name" align="middle">'
	+ '<param name="allowScriptAccess" value="sameDomain" />'
	+ '<param name="movie" value="../doc/' + file_name + '.swf" />'
	+ '<param name="quality" value="high" />'
	+ '<param name="bgcolor" value="#ffffff" />'
	+ '<embed class="right" src="../doc/' + file_name + '.swf" quality="high" bgcolor="#ffffff" width="' + movie_width + '" height="' + movie_height + '" name="' + file_name + '" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'
	+ '</object>');
}


var tickerHeight	= "110px";
var tickerSpeed 	= 1;
var tickerBody, tickerCss, tickerContainer, tickerBodyHeight;

function InitTicker()
{
	tickerContainer = d.getElementById("ticker");
	tickerBody = d.getElementById("tickerBody");
	var bodyString = tickerBody.innerHTML;
	tickerBody.innerHTML = bodyString + bodyString + bodyString + bodyString + bodyString;
	tickerBodyHeight = tickerBody.offsetHeight;
	tickerCss = tickerBody.style;
	
	tickerContainer.style.height = "100px";
	tickerContainer.onmouseover = function() { tickerSpeed=0; }
	tickerContainer.onmouseout  = function() { tickerSpeed=1; }
	
	tickerCss.position = "absolute";
	tickerCss.left		 = "0px";
	tickerCss.height	 = "80px";
	tickerCss.top		 = "10px";
	window.setInterval("ScrollTicker()",60)
}

function ScrollTicker()
{
	if ( parseInt(tickerCss.top) > ( tickerBodyHeight*(-1) ) )
	{
		tickerCss.top = parseInt(tickerCss.top)-tickerSpeed +"px";
	}
	else
	{
		tickerCss.top = tickerHeight;
	}
}

function popUp(what,lang,width,height){
  popUpWindow = window.open('','popUp','resizable=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,toolbar=0,width=' + width + ',height=' + height);
  var term;
  if (lang=='de') term='Fenster schlie&szlig;en';
  else if (lang=='en') term='close window';
  else term='close window';
  popUpWindow.document.write('<html><head><title>PopUp</title><link rel="stylesheet" type="text/css" href="../css/screen.css" media="screen" /></head><body><p style="margin-top: 15px; text-align: center"><img src=' + what + ' ></p><p style="margin-top: 15px; text-align: center"><a class="inline" href="javascript:window.close()"><s>»</s> '+term+'</a></p></body></html>');
  return false
 }
 
 
 //FORMS
 
 function CheckFreelancerSearch( form )
{
 
  try
  {
	
    if ( 
    		! CheckString( form.elements["lastname"] )  	
    		&& ! CheckString( form.elements["city"] )   
    		&& ! CheckString( form.elements["srcLangMain"] )   
    		&& ! CheckString( form.elements["targetLangMain"] )   
    		&& ! CheckString( form.elements["speciality"] )  
    	 )
  	 {
  		var message;
  		
  		switch( currentLanguage )
  		{
  			case "de":
  				message = "Bitte spezifizieren Sie mindestens ein Kriterium, da die Liste der Resultate sonst zu lang werden würde.";
  				break;
  			default:
  				message = "A minimum of one formfield must be specified to submit the form.";
  			break;
  		}
	    alert( message );
	   
	    return false;
	  }
	  
  }
  catch( exception )
  {
    window.status = exception.description;
  }
  
  return true;
}

function ValidateForm( form )
{
  try
  {
    var productName = form.elements["ID"].value;
     
    switch( productName )
    {
    	case "Feedback":
       
        if ( ! CheckString( form.elements["Date"] ) )
	     {
		    alert( "Bitte geben Sie das Schulungsdatum an." );
		    form.elements["Date"].focus();
		    return false;
	     }
	     
	      if ( ! CheckString( form.elements["Trainer"] ) )
	     {
		    alert( "Bitte geben Sie Ihre/Ihren Schulungsleiterin/Schulungsleiter an." );
		    form.elements["Trainer"].focus();
		    return false;
	     }
	     
	      if ( ! CheckString( form.elements["Location"] ) )
	     {
		    alert( "Bitte geben Sie den Schulungsort an." );
		    form.elements["Location"].focus();
		    return false;
	     }
	     
	     

      break;
      
      default: break;
    }
  }
  catch( exception )
  {
    window.status = exception.description;
  }
  
  return true;
}

function CheckString( e )
{
	if(e && e.value=="" )
	{
		return false;
	}
	return true;
}

function CheckEmail( str )
{
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

	var matchArray=str.match(emailPat)
	if (matchArray==null) {
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null) {
	    return false
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
	    // this is an IP address
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
			return false
		    }
	    }
	    return true
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
	    return false
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 ||
	    domArr[domArr.length-1].length>3) {
	   return false
	}

	if (len<2) {
	   return false
	}

	return true;
}

