/***
*	javascript file 
*	(c) 2007 by Mirko Scharf
***/

// get current used browser
var ua = navigator.userAgent.toLowerCase();
var mozillabrowser = ( ua.indexOf("gecko/") >= 0 );
var iebrowser = ( ( ua.indexOf("msie") >= 0 ) && ua.indexOf("opera") < 0 );
var operabrowser = ( ua.indexOf("opera") >= 0 );
var av = navigator.appVersion;
var version = av.substring(0, av.indexOf(".")) *1;
if (mozillabrowser || operabrowser)
   var versionsnummer = version;
else if (iebrowser){
   if (version==4 && ua.indexOf("msie 5") < 0 && ua.indexOf("msie 6") < 0 && ua.indexOf("msie 7") < 0 ) {
      var versionsnummer = 4;
   } else if (version==4 && ua.indexOf("msie 5") >= 0 ) {
      var versionsnummer = 5;
   } else if (version==4 && ua.indexOf("msie 6") >= 0 ) {
      var versionsnummer = 6;
   } else if (version==4 && ua.indexOf("msie 7") >= 0 ) {
      var versionsnummer = 7;
  }
}

// other global Variables
var GLOBAL_cm_offsetLeft = -145;
var GLOBAL_cm_offsetTop = -105;

var elements = new Array ( 'cornerTL', 'borderT', 'cornerTR', 'borderL', 'borderR', 'cornerBL', 'borderB', 'cornerBR' );

function makeRounded( divID ) {
	//alert('divID'+divID+ ' iebrowser='+iebrowser+' version='+versionsnummer);
	
	if ( $( divID ) ) {
		//alert( 'ok' )
		for ( var i = 0; i < elements.length; i++ ) {
			var a = $( divID ).appendChild(document.createElement('div'));
			a.id = elements[ i ] + divID;
			a.className = elements[ i ];
		}
		
		if ( iebrowser && versionsnummer < 7 ) {
			//alert('ie anpassung');
			if ( divID == "content" ) {
				$( "borderB"+divID ).style.bottom="-1px";
			}
			else {
				$( "cornerBL"+divID ).style.bottom="-3px";
				$( "borderB"+divID ).style.bottom="-4px";
				$( "cornerBR"+divID ).style.bottom="-2px";
			}
		}
		if ( iebrowser && divID == "head" ) {
			$( divID ).style.marginBottom = "0px";
		}
	}
}

function resizeSite() {
	//alert('enter resizeSite');
	makeRounded( "content" );

	var maxY = $( "maxbottom" ).offsetTop + 130;;
	var winY = getWindowHeight();

	var heightDiff = ( iebrowser  ) ? 115 : 112;

	setProperty( "navi" , "height", ( Math.max( winY, maxY ) - heightDiff ) + "px");
	setProperty( "content" , "height", ( Math.max( winY, maxY ) - heightDiff ) + "px");
}

function getWindowHeight(win) {
    if (win == undefined)
        win = window;
    if (win.innerHeight) {
        return win.innerHeight;
    } else {
        if (win.document.documentElement && win.document.documentElement.clientHeight)         {
            return win.document.documentElement.clientHeight;
        }
        return win.document.body.offsetHeight;
    }
}

function getProperty(id, prop) {
	var ret = 0;
	if (prop == "height" || prop == "top") {
		obj = $(id);
		ret = eval("obj.offset"+((prop=="height")?"Height":"Top")) || 0;
	}

	if ( mozillabrowser && versionsnummer == 6 ) {
		var obj = $(id);
		if (obj != null) {
			if (obj.style[prop]) {
				return obj.style[prop];
			}
		}

		obj = getStyleBySelector("#"+id);
		return (obj != null)?obj[prop]:ret;

	} else if ( mozillabrowser && versionsnummer == 4 ) {
		return document[id][prop];
	} else {
		return (document.all[id].style[prop] || ret);
	}
}

function setProperty(id, prop, val) {
	//alert('setProperty with id='+id+' prop='+prop+' and val='+val);
	if ( mozillabrowser && versionsnummer == 6 ) {
		var obj = $(id);
		if (obj != null) { obj.style[prop] = val }
	} else if ( mozillabrowser && versionsnummer == 4 ) {
		document[id][prop] = val;
	} else {
		var obj = $(id).style || document.all[id].style;
		//alert('old property='+obj[prop]);
		obj[prop] = val;
	}
}

function head_button_hoover( target, mode ) {
	$( 'button_' + target + '_2' ).style.display = ( mode == 2 ) ? "inline" : "none";
}

function goto( target ) {
	location.href = '/' + target;
}

function switchLang() {
	Effect.BlindDown( 'langSelector', { duration: 0.3 } );
}

function changeLang(val)        {
	$("lang").value=val;
	$("changeLanguage").submit();
}

function showError(msg, time) {
        hideError(0);
        hideWarning(0);
        hideMessage(0);
        var my_time = (time != undefined) ? time : 8000;

        $( "showError" ).style.display = "none";
        $( "errorText" ).innerHTML = msg;
        Effect.Appear( "showError", { duration: 0.3 } );
        if ( my_time ) { parent.window.setTimeout("hideError()", my_time); }
}

function hideError(time) {
        var my_time = (time != undefined) ? time : 0.3;
        Effect.Fade( "showError", { duration: my_time } );
}

function showWarning(msg, time) {
        hideError(0);
        hideWarning(0);
        hideMessage(0);
        var my_time = (time != undefined) ? time : 8000;

        $( "showWarning" ).style.display = "none";
        $( "warningText" ).innerHTML = msg;
        Effect.Appear( "showWarning", { duration: 0.3 } );
        if ( my_time ) { parent.window.setTimeout("hideWarning()", my_time); }
}

function hideWarning(time) {
        var my_time = (time != undefined) ? time : 0.3;
        Effect.Fade( "showWarning", { duration: my_time } );
}

function showMessage(msg, time) {
        hideError(0);
        hideWarning(0);
        hideMessage(0);
        var my_time = (time != undefined) ? time : 8000;

        $( "showMessage" ).style.display = "none";
        $( "msgText" ).innerHTML = msg;
        Effect.Appear( "showMessage", { duration: 0.3 } );
        if ( my_time ) { parent.window.setTimeout("hideMessage()", my_time); }
}

function hideMessage(time) {
        var my_time = (time != undefined) ? time : 0.3;
        Effect.Fade( "showMessage", { duration: my_time } );
}

function regExps(){
	if(typeof(RegExp) == 'function'){
		var d = new RegExp('dummy');
		if(d.test('dummy') == true){
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

function checkEmail(str){
	// check if regular expressions are supported by browser
	var regExAllowed = regExps();
	var result = false;
	// check with regular expression (better way)
	if(regExAllowed == true){
		// checks for name, @, domain-name, dot, top-level-domain
		var reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)(\\@)([a-zA-Z0-9\\-\\.]+)(\\.)([a-zA-Z]{2,4})$');
		result = (reg.test(str));
	// check without regular expression
	}else{
		result = ( (str.search('@') >= 1) && (str.lastIndexOf('.') > str.search('@')) && (str.lastIndexOf('.') >= str.length-5) )
	}

	return(result);
}

function checkResult(str){
//	alert( 'enter checkResult with ' + str );
	if ( str == '-:-' ) return 1;
	return( str.match( /^[0-9]+:[0-9]+$/ ) );
}

function tooltip( text, tipTitle, tipWidth ) {

	Tip( text, DELAY, 250, SHADOW, true, TITLE, tipTitle, TITLEBGCOLOR, '#333399', BORDERCOLOR, '#333399', PADDING, 4, FADEIN, 200, FADEOUT, 200, WIDTH, ( ( tipWidth != undefined ) ? parseInt( tipWidth ) : 250 ) );

}

function doLogout() {
	location.href="/!logout/auto=1";
}

function toHTML( text ) {
	if ( text )	return text.replace(/'/g, "&acute;");
}

function createMapLink( address ){
	return 'http://maps.google.de/maps?f=q&hl=de&t=h&q=' + address.replace(/ /g, "+");	
}

function printDate( date, lang, modus ){
	var timeDate = date.split(" ");
	var dateParts = timeDate[0].split("-");
	var year = dateParts[ 0 ];
	var month= dateParts[ 1 ];
	var day = dateParts[ 2 ];
	
	month = ( month.match( /^0/ ) ) ? month.substr( 1 ) : month;

	if ( modus == 'month' ) {
		switch ( lang ) {
			default         :
				return (day + '. ' + months[ parseInt( month ) ] + ' ' + year);
		}
	}
	else {
		switch ( lang ) {
			case 'en'       :
				return (year + '/' + month + '/' + day);
				break;
			default         :
				return (day + '.' + month + '.' + year);
		}
	}
}

function printTime( time, lang, modus ){
	var timeParts = time.split(":");
	var hour = timeParts[ 0 ];
	var minute= timeParts[ 1 ];
	var second = timeParts[ 2 ];
	
	var timeString = hour + ':' + minute;
	
	if ( modus.match( /s/ ) ) timeString += ':' + second;
	
	return timeString;
}


