/**
 * @author axels
 */

var menuId;
var openMenu;
var openMainMenu = 0;
var submenuId;
var subopenMenu;
var linkNameState = 0;
var div_more =1;

function showSubMenu(id){

	if(openMenu == 1 && menuId == id){
		Effect.BlindUp(id, { duration: 1, scaleFrom: 100, scaleTo: 0 });
		openMenu = 0;
	}else if(openMenu == 1){
		Effect.BlindUp(menuId, { duration: 1, scaleFrom: 100, scaleTo: 0 });
		Effect.BlindDown(id, { duration: 1, scaleFrom: 0, scaleTo: 100 });
		menuId = id;
	}else{
		Effect.BlindDown(id, { duration: 1, scaleFrom: 0, scaleTo: 100 });
		openMenu = 1;
		menuId = id;
	}

}

function showMainMenu(id){

if(openMainMenu == 1){
		Effect.BlindUp(id, { duration: 1, scaleFrom: 100, scaleTo: 0 });
		openMainMenu = 0;

	}else{
		Effect.BlindDown(id, { duration: 1, scaleFrom: 0, scaleTo: 100 });
		openMainMenu = 1;
	}

}

function subSubMenu(id){

	if(subopenMenu == 1 && submenuId == id){
		Effect.BlindUp(id, { duration: 1.0, scaleFrom: 100, scaleTo: 0 });
		subopenMenu = 0;
	}else if(subopenMenu == 1){
		Effect.BlindUp(submenuId, { duration: 1.0, scaleFrom: 100, scaleTo: 0 });
		Effect.BlindDown(id, { duration: 1.0, scaleFrom: 0, scaleTo: 100 });
		submenuId = id;
	}else{
		Effect.BlindDown(id, { duration: 1.0, scaleFrom: 0, scaleTo: 100 });
		subopenMenu = 1;
		submenuId = id;
	}

}

function changeLinknameByClick(){
	if(linkNameState == 0){
		document.getElementById('dyn').innerHTML = '[-]';
		linkNameState = 1;
	}else{
		document.getElementById('dyn').innerHTML = '[+]';
		linkNameState = 0;
	}

}

function showMoreTopGames(tr_ids){

    if(tr_ids)
    ids = tr_ids.split(",");


   if(div_more){
            document.getElementById("less").style.display="none";
            document.getElementById("mehr").style.display="";
        for(a = 1; a <ids.length; a++){
            Effect.BlindDown(ids[a], { duration: 1.0, scaleFrom: 0, scaleTo: 100 });
            //document.getElementById(ids[a]).style.display="none";
        }
        div_more=0;
    }else{
        document.getElementById("less").style.display="";
        document.getElementById("mehr").style.display="none";
        for(a = 1; a < ids.length; a++){
            Effect.BlindUp(ids[a], { duration: 1.0, scaleFrom: 100, scaleTo: 0 });
            //document.getElementById(ids[a]).style.display="";
        }
        div_more =1;
    }


}

function showStatistics(page){
	window.location.href = page;
}


/*
 * #####################################################################################################################
 *  Formular validierungen
 */
function EMail(s)
{
 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
  }

 if(a == true)
 {
  reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                   '(\\.)([a-zA-Z]{2,4})$');
  res = (reg.test(s));
 }
 else
 {
  res = (s.search('@') >= 1 &&
         s.lastIndexOf('.') > s.search('@') &&
         s.lastIndexOf('.') >= s.length-5)
 }

return(res);
}

function checkInvitationMdc(){
    if(document.invite.friendsemail.value != ''){
        var formEmails = document.invite.friendsemail.value;
        var eMails = formEmails.split(';');
        for(a = 0; a < eMails.length; a++){
            eMails[a] = eMails[a].replace(' ', '');
            eMails[a] = eMails[a].replace('\n', '');
            if(EMail(eMails[a]) == false){
                alert('Eine oder mehrere EMails sind nicht g\u00fcltig!');
                document.invite.friendsemail.focus();
                return false;

            }
        }

    }

    document.invite.submit();
}



function mdc_CheckDatums(){
	var start = document.getElementById('contStart').value;
	var end = document.getElementById('contEnd').value;

	if(start > end){

		alert('FEHLER');
		document.getElementById('contEnd').value = '';
	}
}

function isTA(id){

if(document.defaultCharset){y='Int.Explorer';
           if(document.compatMode)y+='-6';
           else if(window.createPopup)y+='-5.5';
           else if(document.uniqueID)y+='-5';
          else y='-4';}
          else
          {
            y = 0;
          }


		if(y == 0)
		{
			if(id != 0){
				document.getElementById('ta').style.display = 'table-row';
			}else{
				document.getElementById('ta').style.display = 'none';
			}
		}
		else
		{
			if(id != 0){

				document.getElementById('ta').style.display = 'inline';
			}else{

				document.getElementById('ta').style.display = 'none';
			}
		}
}

function isCA(id){

if(document.defaultCharset){y='Int.Explorer';
           if(document.compatMode)y+='-6';
           else if(window.createPopup)y+='-5.5';
           else if(document.uniqueID)y+='-5';
          else y='-4';}
          else
          {
            y = 0;
          }


	if(id != 0){
	       if(y == 0){
		      document.getElementById('ca').style.display = 'table-row';
		   }else{
		      document.getElementById('ca').style.display = 'inline';
		   }
	}else{
		document.getElementById('ca').style.display = 'none';
	}
}


function isTimeSpace(id){



if(document.defaultCharset){y='Int.Explorer';
           if(document.compatMode)y+='-6';
           else if(window.createPopup)y+='-5.5';
           else if(document.uniqueID)y+='-5';
          else y='-4';}
          else
          {
            y = 0;
          }









			if(y == 0)
			{
				if(id == 0){
					document.getElementById('st').style.display = 'table-row';
					document.getElementById('et').style.display = 'table-row';
				}else if(id == 1){
					document.getElementById('st').style.display = 'table-row';
					document.getElementById('et').style.display = 'none';
				}else if(id == 2){
					document.getElementById('st').style.display = 'table-row';
					document.getElementById('et').style.display = 'none';
				}else{
					document.getElementById('st').style.display = 'none';
					document.getElementById('et').style.display = 'none';
				}
			}
			else
			{
			 if(id == 0){
		        document.getElementById('st').style.display = 'inline';
		        document.getElementById('et').style.display = 'inline';
		    }else if(id == 1){
		        document.getElementById('st').style.display = 'inline';
		        document.getElementById('et').style.display = 'none';
		    }else if(id == 2){
		        document.getElementById('st').style.display = 'inline';
		        document.getElementById('et').style.display = 'none';
		    }else{
		        document.getElementById('st').style.display = 'none';
		        document.getElementById('et').style.display = 'none';
		    }

			}

}



// Functions to check the Date

/**
 *
 * @param {Object} y 	= 	year
 * @param {Object} m	=	month
 *
 * @return {int} d	= last Day in a Month
 * this funtion retunrs the last day in a month to check if the date is equal... look 29.2
 */
 function getLastDateInMonth(y, m){
        var d = new Date(y, m+1, 1);
        d.setTime(d.getTime() - 12*3600*1000);
		d = Date.parse(d);
		d = d / 1000;
        return d;
 }

/**
 *
 * @param {Object} startDatum
 * @param {Object} startZeit
 * @param {Object} endDatum
 * @param {Object} endZeit
 * @param {Object} fullCheck --> 1 == start und end datum prüfung --- 0 == nur startdatum prüfung
 *
 */
function dateCheck(startDatum, startZeit, endDatum, endZeit, fullCheck){
	// ermitteln des aktuellen Datums
		var currDate = new Date();

		var isDate = currDate.getTime() / 1000;
		isDate = Math.round(isDate);




	// umwandeln des eingegebenen Startdatums in unixtime
		startDatum = startDatum.split('.');
	// zum erzeugen des Date Objects muss der Monat um 1 reduziert werden weil --> 0 = Januar 11 = Dezember
		startDatum[1] = startDatum[1] - 1;
	// wird zur prüfung auf ein equal date benötigt
		var startMonth = startDatum[1];
		var startYear = startDatum[2];

		startZeit = startZeit.split(':');
// maximal erlaubtes Datum um Jahr 2038 Bug zu umgehen -- 31.12.2037
        var maxDatum = new Date(2037,12,31,23,59,59)

        maxDatum = maxDatum.getTime();
        maxDatum = maxDatum / 1000;

		var startCompDatum = new Date(startDatum[2], startDatum[1], startDatum[0], 12, 00, 00);
		startDatum = new Date(startDatum[2], startDatum[1], startDatum[0], startZeit[0], startZeit[1], 00);

		startCompDatum = startCompDatum.getTime();
		startDatum = startDatum.getTime();

	// umwandeln des eingegebenen Enddatums in unixtime
		endDatum = endDatum.split('.');
	// zum erzeugen des Date Objects muss der Monat um 1 reduziert werden weil --> 0 = Januar 11 = Dezember
		endDatum[1] = endDatum[1] - 1;
	// wird zur prüfung auf ein equal date benötigt
		var endMonth = endDatum[1];
		var endYear = endDatum[2];

		endZeit = endZeit.split(':');

		var endCompDatum = new Date(endDatum[2], endDatum[1], endDatum[0], 12, 00, 00);
		endDatum = new Date(endDatum[2], endDatum[1], endDatum[0], endZeit[0], endZeit[1], 00);


		endCompDatum = endCompDatum.getTime();
		endDatum = endDatum.getTime();

	// umrechnen von ms auf s
		startDatum = startDatum / 1000;
		startCompDatum = startCompDatum / 1000;
		endDatum = endDatum / 1000;
		endCompDatum = endCompDatum /1000;


	// runden der datumsangaben
		startDatum = Math.round(startDatum);
		endDatum = Math.round(endDatum);
		currDate = Math.round(isDate);



		if(fullCheck == 1){
			// fullcheck == 1 validert start und enddatum
			var minBout = 60 * 60 * 4;

			var lastDate = getLastDateInMonth(startYear, startMonth);
			if(lastDate < startCompDatum){
				alert('Das eingebene Startdatum ist ung\u00fcltig!\nBitte korrigiere Deine Eingabe.');
				return false;
			}

			lastDate = getLastDateInMonth(endYear, endMonth);
			if(lastDate < endCompDatum){
				alert('Das eingebene Enddatum ist ung\u00fcltig!\nBitte korrigiere Deine Eingabe.');
				return false;
			}


			if(startDatum < isDate){
				alert('Das Startdatum muss in der Zukunft liegen!');
				return false;
			}
			if(startDatum == endDatum){
				alert('Zwischen Start- und Enddatum muss eine Differenz sein!');
				return false;
			}
			if(startDatum > endDatum){
				alert('Das Stardatum muss kleiner als das Enddatum sein!');
				return false;
			}

			if(endDatum < isDate){
				alert('Das Enddatum muss in der Zukunft liegen!');
				return false;
			}
			if(endDatum > maxDatum){
			     alert('Das Enddatum muss vor dem 01.01.2038 liegen');
			     return false;
			}

			var difference = endDatum - startDatum;

			if(minBout > difference){
				alert('Ein Contest muss mindestens 4 Stunden dauern');
				return false;
			}
		}else{
			// fullcheck != 1 validiert nur startdatum

			var lastDate = getLastDateInMonth(startYear, startMonth);
			if(lastDate < startCompDatum){
				alert('Das eingebene Startdatum ist ung\u00fcltig!\nBitte korrigiere Deine Eingabe.');
				return false;
			}


			if(startDatum < isDate){
				alert('Das Startdatum muss in der Zukunft liegen!');
				return false;
			}
		}

}



function contestFormCheck(){

	var startDatum = document.contest.conteststart.value;
	var startZeit = document.contest.startzeit.value;
	var endDatum = document.contest.contestend.value;
	var endZeit = document.contest.endzeit.value;

	var notAllowed = '[*%&$;/]';
	var nameRegEx = new RegExp(notAllowed);


	if(document.contest.contestname.value == ''){
		alert('Bitte geben Sie einen Namen f\u00fcr das Spiel ein.');
		document.contest.contestname.focus();
		return false;
	}
	var contestname = document.contest.contestname.value;
	var check = nameRegEx.exec(contestname);
	if(check != null){
		alert('Der Contest Name enth\u00e4lt ung\u00fcltige Zeichen!\nBitte entferne folgendes Zeichen: "'+check+'"');
		document.contest.contestname.focus();
		return false;

	}


	if(document.contest.timespace.value == '0'){

			if(document.contest.conteststart.value == ''){
				alert('Bitte gib eine Start Datum f\u00fcr das Spiel ein.');
				document.contest.contest_start.focus();
				return false;
			}

			if(document.contest.contestend.value == ''){
				alert('Bitte geben Sie eine End Datum f\u00fcr das Spiel ein.');
				document.contest.contest_end.focus();
				return false;
			}

			if(document.contest.startzeit.value == ''){
				alert('Bitte gib eine Start Zeit f\u00fcr das Spiel ein.');
				document.contest.startzeit.focus();
				return false;
			}

			if(document.contest.endzeit.value == ''){
				alert('Bitte gib eine End Zeit f\u00fcr das Spiel ein.');
				document.contest.endzeit.focus();
				return false;
			}

			if(dateCheck(startDatum, startZeit, endDatum, endZeit, 1) == false){
				document.contest.conteststart.focus();
				return false;
			}
	}
	if(document.contest.timespace.value == '1' || document.contest.timespace.value == '2' ){
			if(document.contest.conteststart.value == ''){
				alert('Bitte gib eine Start Datum f\u00fcr das Spiel ein.');
				document.contest.conteststart.focus();
				return false;
			}
			if(document.contest.startzeit.value == ''){
				alert('Bitte gib eine Start Zeit f\u00fcr das Spiel ein.');
				document.contest.startzeit.focus();
				return false;
			}

			if(dateCheck(startDatum, startZeit, endDatum, endZeit, 0) == false){
				document.contest.conteststart.focus();
				return false;
			}
	}



	if(document.contest.listtype.value == ''){
		alert("Bitte w\u00e4hle mindestens eine Wertpapierliste aus.")
		document.contest.listtype.focus();
		return false;
	}



	if(document.contest.startkapital.value == '' || document.contest.startkapital.value < 1){
		alert('Bitte gib ein Startkaptital f\u00fcr das Spiel ein.\nDas Startkaptital muss eine Zahl zwischen 1 und 999.999 sein');
		document.contest.startkapital.value = '';
		document.contest.startkapital.focus();
		return false;
	}
	document.contest.startkapital.value = document.contest.startkapital.value.replace(',', '.');
	document.contest.startkapital.value = parseFloat(document.contest.startkapital.value, 2);

	if(isNaN(document.contest.startkapital.value)){
		alert('Bitte gib ein Startkaptital f\u00fcr das Spiel ein.\nDas Startkaptital muss eine Zahl zwischen 1 und 999.999 sein');
		document.contest.startkapital.value = '';
		document.contest.startkapital.focus();
		return false;
	}


//	if(document.contest.accept_agb.checked == false){
//		alert('Du musst die gesonderten AGB f\u00fcr den\nMulti Depot Contest akzeptieren.')
//		document.contest.accept_agb.focus();
//		return false;
//	}


	document.contest.submit();

}




function contestFormCheckStep2(){


	document.contest.fee.value = document.contest.fee.value.replace(',', '.');
	document.contest.interestrate.value = document.contest.interestrate.value.replace(',', '.');

	var fee = document.contest.fee.value;
	var interestrate = document.contest.interestrate.value;
	var order_delay = document.contest.orderdelay.value;
	var diversity = document.contest.diversity.value;
	var min_trades = document.contest.mintrades.value;
	var max_trades = document.contest.maxtrades.value;
	var min_user = document.contest.minuser.value;
	var max_user = document.contest.maxuser.value;
	var seedcapital = document.contest.seedcapital.value;
    var seedcapital10 = seedcapital / 10;
    var feetype = document.contest.feetype.value;
    
	fee = parseFloat(fee, 2);

	if(! isNaN(fee)){
		document.contest.fee.value	= fee;
	}else{
	   if(feetype != '0'){
			document.contest.fee.value	= '';
			alert('Transaktionsgeb\u00fchr muss eine Zahl sein!');
			document.contest.fee.focus();
			return false;
		}
	}
	
	if(feetype == 'euro'){
	    if(fee > seedcapital10){
	         document.contest.fee.value  = '';
	         alert('Transaktionsgeb\u00fchr darf nicht h\u00f6her als ' + seedcapital10 + ' sein!');
	         document.contest.fee.focus();
	         return false;          
	    }	
    }else{
        if(fee > 10){
             document.contest.fee.value  = '';
             alert('Transaktionsgeb\u00fchr darf nicht h\u00f6her als 10% sein!');
             document.contest.fee.focus();
             return false;         
        }
    }
       
	interestrate = parseFloat(interestrate, 2);

	if(! isNaN(interestrate)){
		document.contest.interestrate.value = interestrate;
	}else{
		document.contest.interestrate.value	= '';
		alert('Cahsverzinsung muss eine Zahl sein!');
		document.contest.interestrate.focus();
		return false;
	}

	order_delay = parseInt(order_delay);

	if(! isNaN(order_delay)){
		document.contest.orderdelay.value = order_delay;
	}else{
		document.contest.orderdelay.value	= '';
		alert('Order Verz\u00f6gerung muss eine Zahl sein!\nVerwende 0 f\u00fcr keine Verz\u00f6gerung');
		document.contest.orderdelay.focus();
		return false;
	}

	diversity = parseInt(diversity);

    if (diversity > 100) {
        document.contest.diversity.value    = '';
        alert('Diversity darf nicht h\u00f6her als 100 sein!');
        document.contest.diversity.focus();
        return false;        
    }

	if(! isNaN(diversity)){
		document.contest.diversity.value = diversity;
	}else{
		document.contest.diversity.value	= '';
		alert('Diversity muss eine Zahl sein!\nVerwende 0 f\u00fcr keine Diversity.');
		document.contest.diversity.focus();
		return false;
	}


	min_trades = parseInt(min_trades);

	if(! isNaN(min_trades)){
		document.contest.mintrades.value = min_trades;
	}else{
		document.contest.mintrades.value	= '';
		alert('Minimum Trades muss eine Zahl sein!\nVerwende 0 f\u00fcr ohne Minimum Trades');
		document.contest.mintrades.focus();
		return false;
	}

	max_trades = parseInt(max_trades);

	if(! isNaN(max_trades)){
		document.contest.maxtrades.value = max_trades;
	}else{
		document.contest.maxtrades.value	= '';
		alert('Maximum Trades muss eine Zahl sein!\nVerwende 0 f\u00fcr unbegrenzte Anzahl Trades');
		document.contest.maxtrades.focus();
		return false;
	}


	min_user = parseInt(min_user);

	if(! isNaN(min_user)){
		document.contest.minuser.value = min_user;
	}else{
		document.contest.minuser.value	= '';
		alert('Minimum User muss eine Zahl sein!\nVerwende 1 f\u00fcr ohne Minimum User');
		document.contest.minuser.focus();
		return false;
	}

	max_user = parseInt(max_user);

	if(! isNaN(max_user)){
		document.contest.maxuser.value = max_user;
	}else{
		document.contest.maxuser.value	= '';
		alert('Minimum User muss eine Zahl sein!nVerwende 1 f\u00fcr unbegrenzte Teilnehmer Zahl');
		document.contest.maxuser.focus();
		return false;
	}

	if(max_user != 0){
		if(min_user > max_user){
			alert('Die Anzahl der minimum User darf die Anzahl der maximal User nicht \u00fcberschreiten!')
			document.contest.minuser.focus();
			return false;
		}
	}

document.contest.submit();

}

function updateContestCheck (){

	var notAllowed = '[*%&$;/]';
	var nameRegEx = new RegExp(notAllowed);


	if(document.contest.contestname.value == ''){
		alert('Bitte geben Sie einen Namen f\u00fcr das Spiel ein.');
		document.contest.contestname.focus();
		return false;
	}
	var contestname = document.contest.contestname.value;
	var check = nameRegEx.exec(contestname);
	if(check != null){
		alert('Der Contest Name enth\u00e4lt ung\u00fcltige Zeichen!\nBitte entferne folgendes Zeichen: "'+check+'"');
		document.contest.contestname.focus();
		return false;

	}

	document.contest.submit();

}

/*
 * ende formularvalidierungen
 * ####################################################################################################################
 */



function showContent(id){

	var arrItems = new Array('allCont', 'startCont', 'endCont');
	var active = 'td_orange mdc_MenuItem';
	var inactive = 'td_green mdc_MenuItem';

	for(a = 0; a < arrItems.length; a++){

		if(id == arrItems[a]){
			document.getElementById(arrItems[a]).className = active;
		}else{
			document.getElementById(arrItems[a]).className = inactive;
		}
	}
}




/* countdown for tippschein */
function countdown( endtime, jetzt, init, adjust ) {
	var now = new Date();
	var end = new Date( endtime );
	if(init){
		var start = new Date( jetzt );
		adjust = Math.floor(start.getTime() - now.getTime());
	}

    now.setTime(now.getTime() + adjust);
    var diff = Math.floor(end.getTime() - now.getTime() );
    var hours = Math.floor(diff/(1000*60*60));
    diff = diff - (hours*1000*60*60);
    var minutes = Math.floor(diff/(1000*60));
    diff = diff - (minutes*1000*60);
    var seconds = Math.floor(diff/1000);
	if(seconds<10) seconds = '0'+seconds;
	if(minutes<10) minutes = '0'+minutes;
	if(hours<10) hours = '0'+hours;
	var timeleftElem = document.getElementById('timeleft');
    if (timeleftElem) timeleftElem.innerHTML = ""+hours+" Std "+minutes+" Min "+seconds+" Sek";

	setTimeout( "countdown('"+ endtime +"','" +jetzt +"', false, "+adjust+")", 1000);
}

// opening an popup with specific size etc
function openWindow(name, url, width, height, resizable, scrollbars) {
	t = screen.availHeight / 2 - height / 2;
	l = screen.availWidth / 2 - width / 2;
	params = "resizable=" + resizable + ",scrollbars=" + scrollbars + ",width=" + width + ",height=" + height + ",top=" + t + ",left=" + l;
	pic = window.open(url, name, params);
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function invTextChanged(){
	document.getElementById('addText').innerHTML = document.getElementById("invitationtext").value.replace(/\n/g, '<br />');
}

