/**
 *	customized site specific javascript
 */

function openImpressum () {
	createPopup( "impressum.html", 500, 300, "impressum" );
}
		
function openSiteAsPopup ( p_language ) {
	var language = p_language || "DE";
	var screenW = window.screen.availWidth || window.screen.width; 
	var screenH = window.screen.availHeight || window.screen.height;
	createPopup( "index_popup.htm?language="+language, screenW, screenH, "siteInPopup" );
}



// --- fullscreen stuff ---

function createFullBrowserFlash () {
	createCssForFlash();
	setResizeListener();
	window.onresize();
}

function _onResize () {
	resizeTimeout = window.setTimeout( 'setResizeListener()', 2000 );
	checkFlashSize();
}

function checkFlashSize () {
	try {
		var el = document.getElementById(flashId);
		var size = getViewportSize();
		el.style.width = size[0] < flashMinWidth ? flashMinWidth+"px" : "100%";
		el.style.height = size[1] < flashMinHeight ? flashMinHeight+"px" : "100%";
	} catch (e) { flashLog('ERROR! ' + e.message ); }
}

function setResizeListener () {
	checkFlashSize();
	window.onresize = _onResize;
}

function createCssForFlash () {
	swfobject.createCSS("html", "height:100%;");
	swfobject.createCSS("body", "height:100%;");
	swfobject.createCSS("#"+flashId, "margin:0; width:100%; height:100%; min-width:"+flashMinWidth+"px; min-height:"+flashMinHeight+"px;");
}
		
function getViewportSize() { 
	var size = [0, 0]; 
	if (typeof window.innerWidth != "undefined") { 
		size = [window.innerWidth, window.innerHeight];
	} else if (typeof document.documentElement != "undefined" && typeof document.documentElement.clientWidth != "undefined" && document.documentElement.clientWidth != 0) {
		size = [document.documentElement.clientWidth, document.documentElement.clientHeight]; 
	} else {
		size = [document.getElementsByTagName("body")[0].clientWidth, document.getElementsByTagName("body")[0].clientHeight]; 
	}
	return size; 
}

function setMinSizes ( w, h ) {
	writeToConsole( "h: " + h );
	flashMinWidth = w;
	flashMinHeight = h;
	window.onresize();
}


// --- utils ---

function getParam ( p_paramName ) {
	var paramName = p_paramName || "";
	paramName = paramName.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regex = new RegExp( "[\\?&]"+paramName+"=([^&#]*)" );
	var results = regex.exec( window.location.href );
	if( results == null ) {
		return null;
	} else {
    	return results[1];
    }
}

function createPopup ( p_url, p_winW, p_winH, p_winName ) {
	var winX = ( screen.width/2 ) - ( p_winW/2 );
	var winY = ( screen.height/2 ) - ( p_winH/2 );
	var popupLegal = window.open( p_url, p_winName,'width='+p_winW+',height='+p_winH+',top='+winY+',left='+winX+',scrollbars=no');
}
		
function setWindowToFullscreen () {
	var screenW = window.screen.availWidth || window.screen.width; 
	var screenH = window.screen.availHeight || window.screen.height;
	window.resizeTo( screenW, screenH );
	window.moveTo(0, 0);
	setResizeListener();
}

// --- debugging ---

function writeToConsole ( p_str, p_func ) {
	try {
		if ( console == undefined || console == "undefined" || console == null || console == "null" ) { return; }
		if ( p_func == 'undefined' ) {
			p_func = 'log'
		}
		switch ( p_func ) {
			case 'error': 		console.error( p_str ); 		break;
			case 'warn': 		console.warn( p_str );			break;
			case 'debug': 		console.debug( p_str ); 		break;
			case 'trace': 		console.trace( p_str ); 		break;
			case 'time': 		console.time( p_str );			break;
			case 'timeEnd':		console.timeEnd( p_str ); 		break;
			case 'profile':		console.profile( p_str ); 		break;
			case 'profileEnd': 	console.profileEnd( p_str ); 	break;
			case 'group': 		console.group( p_str ); 		break;
			case 'groupEnd': 	console.groupEnd();				break;
			case 'dir':			console.dir( p_str ); 			break;
			case 'dirxml': 		console.dirxml( p_str ); 		break;
			default: 			console.log( p_str );
		}
	} catch (e) {}
}
