// JavaScript Document (c) Lucian Cristofor PIXELMINISTRY 2009

var g_ID = false;
var g_extpage = false;
var g_OverID = false;
var g_xWinpos = 0;
var g_yWinpos = 0;
var g_alertButt = false;
var g_weatherTT = false;




function initilisiere_seite(){
	
	// EXTERNE LINKS SETZEN 
	ext_verz = "externe_seiten/";
	var extlinks_list = document.getElementsByTagName("a");
	for (var i = 0; i < extlinks_list.length; i++){
		var nv = extlinks_list[i].attributes.href.nodeValue; 
		nv = nv.split(ext_verz);
		if (nv.length>1){
			nv = ext_verz + nv[1].split(".php")[0]+"_innen.php";
			extlinks_list[i].attributes.href.nodeValue = "javascript:show_extpage('"+nv+"')";
		};
	};

	// PROJEKTREFERENZEN
	document.getElementById("prevbutt").attributes.href.nodeValue = "javascript:prev_ref()";
	document.getElementById("nextbutt").attributes.href.nodeValue = "javascript:next_ref()";
	g_ID = (get_GET_param("refid"));
	if (g_ID) g_ID = g_ID.split("_")[0]; // SEO OPTIMIERUNG DER LINKS
	var ref_list = document.getElementById("ref_list").childNodes;
	 for (var i=0; i < ref_list.length; i++) {
		var atag = ref_list[i];
		if (atag){
			atag.childNodes[0].attributes.href.nodeValue = "javascript:show_cursor()";
			atag.childNodes[0].onmouseover=function(){
				var ttp = this.parentNode.attributes.value.nodeValue;
				if (ttp != "1") Tip(ttp);
				if (this.parentNode.attributes.id.nodeValue != "p"+g_ID){this.style.backgroundImage="url(pics/ref_butt_over.png)";};
			};
			atag.childNodes[0].onmouseout=function(){
				UnTip();
				if (this.parentNode.attributes.id.nodeValue != "p"+g_ID) this.style.backgroundImage="none";
			};
			atag.childNodes[0].onclick=function(){if (this.parentNode.attributes.id.nodeValue != "p"+g_ID) show_project(this.parentNode.attributes.id.nodeValue.split("p")[1]);};
		};
	 };
	show_project(g_ID, true);
	
	// KONTAKTFORMULAR
	g_alertButt = window.document.kontaktformular.submit.parentNode.innerHTML;
	document.getElementById("kontaktformular").attributes.action.nodeValue = "javascript:submit_kontakt()";
	
	// EXTERNE DATEIEN ANZEIGEN
	g_extpage = get_GET_param("extpage");
	if (g_extpage) {
		show_extpage(g_extpage);
	};
	

	initialize_anker(); // mit jquery ;( 
	initialize_map();
	preload_pics(picsToLoad);
	
	// wetter Tooltip
	load_ext("php/backend.php?action=get_weather", false, "show_weatherTipp");
};


function show_weatherTipp(ret){
	g_weatherTT = ret;
	var weatherTT = document.getElementById("cont_pm_left");
	weatherTT.onmouseover=function(){Tip(g_weatherTT);};
	weatherTT.onmouseout=function(){UnTip();};
};

function initialize_anker(){
	$('a[href*=#]').bind("click", function(event) {
			event.preventDefault();
			var ziel = $(this).attr("href");
			if ($.browser.opera) {
					var target = 'html';
                }else{
                    var target = 'html,body';
                }
			$(target).animate({
				scrollTop: $(ziel).offset().top
			}, 1000 , function (){
				//location.hash = ziel;
			});
	   });
	return false;
};

function submit_kontakt(){
	senden = true;
	felder = new Array();
	
	var tmpfeld = window.document.kontaktformular.mail_absender;
	felder.push(tmpfeld);
	if(tmpfeld.value.length < 2){tmpfeld.err = true} else {tmpfeld.err = false};
	
	if (window.document.kontaktformular.mail_email.value == window.document.kontaktformular.mail_absender.value){tmpfeld.err = true}; //SPAM

	var tmpfeld = window.document.kontaktformular.mail_email;
	felder.push(tmpfeld);
	if (!tmpfeld.value.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)){tmpfeld.err = true} else {tmpfeld.err = false};



	var tmpfeld = window.document.kontaktformular.mail_tel;
	felder.push(tmpfeld);
	if(tmpfeld.value.length < 5){tmpfeld.err = true} else {tmpfeld.err = false};

	for (var i = 0; i < felder.length; i++){
		if (felder[i].err == false){
			felder[i].style.backgroundColor = "#FFFFFF";
			felder[i].style.border = "1px solid #c7c7c7";
		}else{
			senden = false;
			felder[i].style.backgroundColor = "#FFF5F5";
			felder[i].style.border = "1px solid #ff2833";
		};
	}

	var nn = "%0d";
	
	m_body = "Absender: " + window.document.kontaktformular.mail_absender.value + nn;
	m_body += "E-Mail: " + window.document.kontaktformular.mail_email.value + nn;
	m_body += "Telefon: " + window.document.kontaktformular.mail_tel.value + nn;
	m_body += "Kontaktwunsch: " + radioWert(window.document.kontaktformular.mail_kontaktmethode) + nn;
	m_body += "Telefonisch von: " + window.document.kontaktformular.mail_von.value + " bis " + window.document.kontaktformular.mail_bis.value + " Uhr."+ nn + nn;
	m_body += window.document.kontaktformular.mail_message.value + nn;
		
	if (senden){
		load_ext("php/backend.php?action=sende_mail&m_body="+m_body);
		window.document.kontaktformular.submit.parentNode.innerHTML = g_alertButt + "<span style=\"color:#008fb3\">Nachricht gesendet!</span>";
	}else{
		window.document.kontaktformular.submit.parentNode.innerHTML = g_alertButt + "<span style=\"color:#ff2833\">* Eingabe pr&#252;fen!</span>";
	};

	
};

function prev_ref(){
	var ref_list = document.getElementById("ref_list").childNodes;
	for (var i=0; i < ref_list.length; i++) {if (ref_list[i].attributes.id.nodeValue == "p"+g_ID) var actNum = i-1;	};
	if (typeof actNum == "undefined") actNum = 0;
	if (actNum < 0) actNum = ref_list.length-1;
	prevID = ref_list[actNum].attributes.id.nodeValue.split("p")[1];
	show_project(prevID);
};

function next_ref(){
	var ref_list = document.getElementById("ref_list").childNodes;
	for (var i=0; i < ref_list.length; i++) {if (ref_list[i].attributes.id.nodeValue == "p"+g_ID) var actNum = i+1;	};
	if (typeof actNum == "undefined") actNum = 0;
	if (actNum >= ref_list.length) actNum = 0;
	nextID = ref_list[actNum].attributes.id.nodeValue.split("p")[1];
	show_project(nextID);
};

function show_project(myid, firstRun){
	var ref_list = document.getElementById("ref_list").childNodes;
	for (var i=0; i < ref_list.length; i++) {
		var atag = ref_list[i];
		atag.childNodes[0].style.backgroundImage = "none";
	};
	var validID = document.getElementById("p"+myid);
	if (!validID) myid = ref_list[0].attributes.id.nodeValue.split("p")[1];
	document.getElementById("p"+myid).childNodes[0].style.backgroundImage = "url(pics/ref_butt_mark.png)";
	g_ID = myid;
	
	if (!firstRun){ // beim ersten mal schon von php geladen
		o = document.getElementById("projektdetails");
		setOpacity(o, 0);
		load_ext("php/backend.php?action=get_ref_nogal&refid="+g_ID, "projektdetails", "fade_in_projdet");
	};
};

function fade_in_projdet(){
	fadeLoop("projektdetails", 99)
};

// EXTERNE SEITE (OVERLAY) FUNKTIONEN

function show_extpage(myurl){
	g_extpage = myurl;
	
	var objBody = document.getElementsByTagName("body").item(0);
	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','extpage');
	objBody.appendChild(objOverlay);

	var objTransp = document.createElement("div");
	objTransp.setAttribute('id','extpage_transp');
	objBody.appendChild(objTransp);

	var objContainer = document.createElement("div");
	objContainer.setAttribute('id','extpage_container');
	objTransp.appendChild(objContainer);
	setOpacity(objContainer, 0);
	
	var objClose = document.createElement("div");
	objClose.setAttribute('id','extpage_close_butt');
	objTransp.appendChild(objClose);
	setOpacity(objClose, 0);
	objClose.innerHTML = "<a id='extpage_over_close' href='javascript:close_extpage()'></a>";
	fadeLoop("extpage", 94, 0, "loadin_extpage");
};

function loadin_extpage(){
	g_xWinpos = window.pageXOffset;
	g_yWinpos = window.pageYOffset;
	if (typeof g_xWinpos == "undefined") g_xWinpos = document.documentElement.scrollLeft;
	if (typeof g_yWinpos == "undefined") g_yWinpos = document.documentElement.scrollTop;
	load_ext(g_extpage, "extpage_container" , "fade_in_expagedet");	
};

function fade_in_expagedet(){
	
	ext_verz = "externe_seiten/pics/";
	var tmp_cont = document.getElementById("extpage_container"); 
	var extlinks_list = tmp_cont.getElementsByTagName("img"); 
	for (var i = 0; i < extlinks_list.length; i++){
		var nv = extlinks_list[i].attributes.src.nodeValue; 
		nv = nv.split("pics/")[1];
		extlinks_list[i].attributes.src.nodeValue = ext_verz+nv; 
	};
	
	window.scrollTo(0,0);
	fadeLoop("extpage_container", 99, 0);
	fadeLoop("extpage_close_butt", 99, 0);
	pageTracker._trackPageview(g_extpage);
};


function close_extpage(){
	var objBody = document.getElementsByTagName("body").item(0);
	var objOverlay = document.getElementById("extpage");
	objBody.removeChild(objOverlay);
	var objOverlay = document.getElementById("extpage_transp");
	objBody.removeChild(objOverlay);
	window.scrollTo(g_xWinpos, g_yWinpos);
}

	

// OVERLAY REFERENZEN FUNKTIONEN 

function show_overlay(myid){
	var objBody = document.getElementsByTagName("body").item(0);

	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objBody.appendChild(objOverlay);

	var objTransp = document.createElement("div");
	objTransp.setAttribute('id','transp');
	objBody.appendChild(objTransp);

	var objContainer = document.createElement("div");
	objContainer.setAttribute('id','ref_container');
	objTransp.appendChild(objContainer);
	setOpacity(objContainer, 0);
	
	var objClose = document.createElement("div");
	objClose.setAttribute('id','close_butt');
	objTransp.appendChild(objClose);
	setOpacity(objClose, 0);
	objClose.innerHTML = "<a id='over_close' href='javascript:close_overlay()'></a><a id='over_rechts' href='javascript:o_next_ref()'></a><a id='over_links' href='javascript:o_prev_ref()'></a>";

	fadeLoop("overlay", 90, 0, "loadin_ref");
}

function loadin_ref(){
	g_xWinpos = window.pageXOffset;
	g_yWinpos = window.pageYOffset;
	if (typeof g_xWinpos == "undefined") g_xWinpos = document.documentElement.scrollLeft;
	if (typeof g_yWinpos == "undefined") g_yWinpos = document.documentElement.scrollTop;
	g_OverID = g_ID;
	load_ext("php/backend.php?action=show_ref_details&refid="+g_ID, "ref_container" , "fade_in_overlaydet");	
};

function fade_in_overlaydet(){
	window.scrollTo(0,0);
	fadeLoop("ref_container", 99, 0);
	fadeLoop("close_butt", 99, 0);
	pageTracker._trackPageview("index.php?refid="+g_OverID);
};

function fade_in_overlaydet_2(){
	fadeLoop("ref_container", 99, 0);
	window.scrollTo(0,0);
	pageTracker._trackPageview("index.php?refid="+g_OverID);
};

function o_prev_ref(){
	var ref_list = document.getElementById("ref_list").childNodes;
	for (var i=0; i < ref_list.length; i++) {if (ref_list[i].attributes.id.nodeValue == "p"+g_OverID) var actNum = i-1;	};
	if (typeof actNum == "undefined") actNum = 0;
	if (actNum < 0) actNum = ref_list.length-1;
	g_OverID = ref_list[actNum].attributes.id.nodeValue.split("p")[1];
	load_ext("php/backend.php?action=show_ref_details&refid="+g_OverID, "ref_container" , "fade_in_overlaydet_2");		
};

function o_next_ref(){
	var ref_list = document.getElementById("ref_list").childNodes;
	for (var i=0; i < ref_list.length; i++) {if (ref_list[i].attributes.id.nodeValue == "p"+g_OverID) var actNum = i+1;	};
	if (typeof actNum == "undefined") actNum = 0;
	if (actNum >= ref_list.length) actNum = 0;
	g_OverID = ref_list[actNum].attributes.id.nodeValue.split("p")[1];
	load_ext("php/backend.php?action=show_ref_details&refid="+g_OverID, "ref_container" , "fade_in_overlaydet_2");	
};

function close_overlay(){
	var objBody = document.getElementsByTagName("body").item(0);
	var objOverlay = document.getElementById("overlay");
	objBody.removeChild(objOverlay);
	var objOverlay = document.getElementById("transp");
	objBody.removeChild(objOverlay);
	window.scrollTo(g_xWinpos, g_yWinpos);
}

// PRELOAD VON BILDERN
function preload_pics(img_list){
  var Bild;
  for (var i=0; i < img_list.length; i++) {
	  Bild = new Image();
	  Bild.src = img_list[i];
  };
};



// ALLEGEMEINE FUNKTIONEN
function get_GET_params() {
   if(location.search.length > 0) {
      var get_param_str = location.search.substring(1, location.search.length);
      var get_params = get_param_str.split("&");
      for(i = 0; i < get_params.length; i++) {
         var key_value = get_params[i].split("=");
         if(key_value.length == 2) {
            var key = key_value[0];
            var value = key_value[1];
			if (!GET)  var GET = new Object();
            GET[key] = value;
         }
      }
   }
   if (!GET) return false;
   return(GET);
}
 
function get_GET_param(key) {
   var get_params = get_GET_params();
   if(get_params[key])
      return(get_params[key]);
   else
      return false;
}

function fadeLoop(id, toalpha, opacity, callback) {
		var o = document.getElementById(id);
		if (!opacity) opacity = 0;
		if (opacity <= toalpha) {
			setOpacity(o, opacity);
			opacity += 15;
			window.setTimeout("fadeLoop('" + id + "'," + toalpha + " ," + opacity + ", '"+ callback +"')", 20);
		}else{
			setOpacity(o, toalpha);
			if(typeof window[callback] == 'function') window[callback]();
		};
}

function setOpacity (o, opacity) {
		o.style.filter = "alpha(style=0,opacity:" + opacity + ")"; 	// IE
		o.style.KHTMLOpacity = opacity / 100;				// Konqueror
		o.style.MozOpacity = opacity / 100;					// Mozilla (old)
		o.style.opacity = opacity / 100;					// Mozilla (new)
}

function load_ext(src, id, callback) {
	http_request = false;
	if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/html;');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		//alert('Bitte ueberpruefen Sie Ihre JAVA Einstellungen!');
		return false;
	}
	if (id){
		document.getElementById(id).innerHTML = "...";
		http_request.onreadystatechange = function(){show(id, callback)};
	}else{
		http_request.onreadystatechange = function (){
			if (http_request.readyState == 4){
				ret = http_request.responseText;
				if(typeof window[callback] == 'function') window[callback](ret);
			};
		};
	};
	
	http_request.open('GET', src, true);
	//http_request.setRequestHeader("Content-Type", "text/html; charset=UTF-8");

	http_request.send(null);
}


function show(id, callback) {
	if (http_request.readyState == 4) {
		document.getElementById(id).innerHTML = http_request.responseText;
		if(typeof window[callback] == 'function') window[callback]();
	}
}

function show_cursor(){
	// and do nothing else ;)	
}


function initialize_map() {
	// initialisiere google map
	if (GBrowserIsCompatible()) {
    	var map = new GMap2(document.getElementById("map_canvas"));
		var myGeographicCoordinates = new GLatLng(49.904365, 8.847084);
		map.setCenter(myGeographicCoordinates, 14);
		
		var pmIcon = new GIcon();
		pmIcon.shadow = "pics/marker_shadow.png";
		pmIcon.image = "pics/marker_image.png";
		pmIcon.transparent = "pics/marker_transparent.png";
		pmIcon.iconSize = new GSize(22, 28);
		pmIcon.shadowSize = new GSize(22, 28);
		pmIcon.iconAnchor = new GPoint(9, 28);
		pmIcon.infoWindowAnchor = new GPoint(9, 2);

		markerOptions = { icon:pmIcon };
		var marke = new GMarker(myGeographicCoordinates, markerOptions);
		GEvent.addListener(marke, "click", function() {
    		marke.openInfoWindow("<div id=\"mapsinfo\"><p>Pixel Ministry<br/>Dieburg</p><a href=\"http://maps.google.de/maps?hl=de&q=dieburg&ie=UTF8&hq=&hnear=Dieburg,+Darmstadt-Dieburg,+Hessen&gl=de&z=12\" target=\"_blank\">[ Route hierher berechnen ]</a></div>");
  		});
	
	    map.addOverlay(marke);
		
		function TextualZoomControl() {};
		TextualZoomControl.prototype = new GControl();

		TextualZoomControl.prototype.initialize = function(map) {
			var container = document.createElement("div");
			
			var zoomInDiv = document.createElement("div");
			zoomInDiv.id = "zoom_in";
			container.appendChild(zoomInDiv);
			//zoomInDiv.appendChild(document.createTextNode("Zoom In"));
			GEvent.addDomListener(zoomInDiv, "click", function() {
				map.zoomIn();
			});
			
			var zoomOutDiv = document.createElement("div");
			zoomOutDiv.id = "zoom_out";
			container.appendChild(zoomOutDiv);
			//zoomOutDiv.appendChild(document.createTextNode("Zoom Out"));
			GEvent.addDomListener(zoomOutDiv, "click", function() {
				map.zoomOut();
			 });
			map.getContainer().appendChild(container);
			return container;
		}

		TextualZoomControl.prototype.getDefaultPosition = function() {
			return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
		}

		
		map.addControl(new TextualZoomControl());
		
	}
}

function radioWert(rObj) {
    for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return rObj[i].value;
    return false;
}
