// img preloader
var pre_images = new Array(
		'./images/spacer.gif',
		'./images/bg_nav_rightbor.png',
		'./images/bg_nav_leftbor.png',
    './images/logo-transport-technik_de.png',
		'./images/bg_header.gif',		
    './images/bg_button_red.gif');

		for(i=0; i<pre_images.length; ++i){
    var src = pre_images[i];
    var img = document.createElement('img'); 
    var objBody = $('msc_body');
    Element.extend(img);
    objBody.appendChild(img);
    img.addClassName('msc_preload');
    img.setStyle({
        position:'absolute',
        top:'-9999px',
        display:'none'
    });
    img.setAttribute('src', src);
}

// onload
document.observe("dom:loaded", function() {
	msc_onload();
});

function msc_onload(){

    // MSC Newsletterbox
    var msc_search = $('f_emailparam');
    if(null != msc_search){
        msc_search.observe('focus', function(event){
            if(this.value=='Hier die mediascale News abonnieren')this.value='';
        });
        msc_search.observe('blur', function(event){
            if(this.value=='')this.value='Hier die mediascale News abonnieren';
        });     
    }
    
    // MSC Gallery
    var msc_gallery = $$('a.c_wmgallery_anker');
    var msc_gallery_img = $('msc_gallery_img');
    var c_wmgallerybx_client = $('c_wmgallery_client');
    var c_wmgallerybx_campaign = $('c_wmgallery_campaign');
    if(null != msc_gallery && msc_gallery_img != null){
        for(i=0; i < msc_gallery.length; ++i){
            msc_gallery[i].observe('click', function(event){
                Event.stop(event);
                this.cleanWhitespace();
                var msc_overlay = $(this.childNodes[0]);
                msc_overlay.removeClassName('c_wmgallery_mask');
                msc_overlay.addClassName('c_wmgallery_actmask');
                msc_gallery_img.src = this.href;
                
                // change client and campaign
                c_wmgallerybx_client.update(this.title);
                c_wmgallerybx_campaign.update(this.getAttribute("rel"));
                
                // wieder inaktiv setzen
                var msc_gallery = $$('a.c_wmgallery_anker');
                for(i=0; i < msc_gallery.length; ++i){
                    if(msc_gallery[i].id != this.id){
                        msc_gallery[i].cleanWhitespace();
                        var msc_overlay = $(msc_gallery[i].childNodes[0]);
                        msc_overlay.addClassName('c_wmgallery_mask');
                        msc_overlay.removeClassName('c_wmgallery_actmask');
                    }
                }
            });
        }
    }   
    
    // MSC Tooltip
    var msc_tooltip = $$('.c_tooltip');
    if(null != msc_tooltip){
        for(i=0; i < msc_tooltip.length; ++i){
            var msc_tooltip_box = $('c_tooltip_box');
            msc_tooltip[i].observe('mouseover', function(event){
                msc_tooltip_box.show();
            });
            msc_tooltip[i].observe('mouseout', function(event){
                msc_tooltip_box.hide();
            });
        }
    }
    
    var msc_menu_item = $$('.msc_menu');
    for (i=0; i < msc_menu_item.length; ++i){
        // set active item 
        if(msc_menu_item[i].hasClassName('active')){
            var msc_active_item = i;
        }
        
        msc_menu_item[i].observe('mouseover', function(event){
            this.cleanWhitespace();
            // alle navs ausblenden
            msc_menu_hideAll(true);
            
            // hover einblenden
            var msc_menu_item_sub = $(this.childNodes[1]);
            if(msc_menu_item_sub != null){
                msc_menu_item_sub.show();
            }
            
        });
        
        msc_menu_item[i].observe('mouseout', function(event){
            this.cleanWhitespace();
            var msc_menu_item_sub = $(this.childNodes[1]);
            msc_menu_hideAll(false, msc_active_item);
        });
    }
    
    
    // Remove Preloaded
    var msc_preload = $$('.msc_preload');
    for (i=0; i < msc_preload.length; ++i){
    //alert(msc_preload[i].src);
    }
    
    // Highlights Bullets
    var c_bullets = $$('.c_bullet_item');
    if(c_bullets != null){
        for (i=0; i < c_bullets.length; ++i){       
            c_bullets[i].observe('click', function(event){
                var c_bullets_subtext = $(this.next());
                c_bullets_subtext.show();
                $(this).addClassName("c_bullet_item_active");
                
                // hide others 
                var c_bullets2 = $$('.c_bullet_item');
                if(c_bullets2 != null){
                    for (p=0; p < c_bullets2.length; ++p){
                        if( c_bullets2[p] != this){
                            var c_bullets_subtext = $(c_bullets2[p].next());
                            c_bullets_subtext.hide();
                            $(c_bullets2[p]).removeClassName("c_bullet_item_active");
                        }
                    }
                }
            });
        }
    }
    
    // Highlights Bullets
    var c_bereich_select = $('c_bereich_select');
    if(c_bereich_select != null){
        c_bereich_select.observe('change', function(event){
            if(this.value != "0"){
                var c_bereich_form = $('c_bereich_form');
                if(c_bereich_form != null){
                    c_bereich_form.submit();
                }
            }
        });
    }
    
    // NFQ BLOCKLAYER 
    var nfq_popups = $$( 'a.nfq_popup');
    for (var i = 0; i < nfq_popups.length; ++i){
    nfq_popups[i].observe('click', function(event){
      Event.stop(event);
      var link = this.href;
      
      var oBlockLayer = $( 'nfq_blocklayer');
      if ( null == oBlockLayer){
        var oBlockLayer = document.createElement("div");
        oBlockLayer.setAttribute('id','nfq_blocklayer');
        Element.extend( oBlockLayer);
        var objBody = document.getElementsByTagName("body").item(0);
        body_size = $('c_containerbx').getDimensions();
        oBlockLayer.style.height = body_size.height+70+'px';
        objBody.appendChild(oBlockLayer);
      }

        new Ajax.Request( link, {
            method:'get',
                onSuccess: function( transport){
                oBlockLayer.update(transport.responseText);
                oBlockLayer.show();
                oBlockLayer.scrollTo(); 
                msc_ajaxload();
            },
            onFailure: function(){ 
            oBlockLayer.update('Error');
            oBlockLayer.hide();
            }
        });
        });
    }
    
    // popup for contact > map
    var map_popup = $$( 'a.map_popup');
    for (var i = 0; i < map_popup.length; ++i){
			map_popup[i].observe('click', function(event){
			var link = this.href;
			var width = 500;
			var height = 525;
			window.open( link, 'map_popup', 'menubar=no,locationbar=no,statusbar=no,resizable=no,toolbar=no,dependent=yes,scrollbars=no,width='+(width)+',height='+(height)+',left='+(screen.availWidth/2-250)+',top='+(screen.availHeight/2-262.5)+'');
			Event.stop(event);
			});
    }
    
    // MSC Timeline
    var msc_timeline = $$('a.msc_timeline');
    if(null != msc_timeline){
        for(i=0; i < msc_timeline.length; ++i){
            msc_timeline[i].observe('click', function(event){
                Event.stop(event);              
            });
        }
    }

    
}

function msc_ajaxload(){
    var c_layer_close = $$( 'a.c_layer_close');
    if(c_layer_close != null){
        for (var i = 0; i < c_layer_close.length; ++i){
            c_layer_close[i].observe('click', function(event){
                Event.stop(event);
                var oBlockLayer = $( 'nfq_blocklayer');
                if(oBlockLayer != null){
                    oBlockLayer.remove();
                }
            });
        }
    }
}

function msc_menu_hideAll(active, msc_active_item){
    var msc_menu_item = $$('.msc_menu');
    for (i=0; i < msc_menu_item.length; ++i){
        msc_menu_item[i].cleanWhitespace();
        var msc_menu_item_sub = $(msc_menu_item[i].childNodes[1]);
        if(msc_menu_item_sub != null){
            if(active){
                msc_menu_item_sub.hide();
                if(msc_menu_item[i].hasClassName('active')){
                    msc_menu_item[i].removeClassName('active');
                }
            }else{
                if(msc_active_item != null){
                    msc_menu_item[msc_active_item].addClassName('active');
                }
                
                if(msc_menu_item[i].hasClassName('active')){
                    msc_menu_item_sub.show();
                }else{
                    msc_menu_item_sub.hide();
                }
            }
        }
    }
}

// IE5.5+ PNG Alpha Fix v2.0 Alpha: Background Tiling Support
// (c) 2008 Angus Turnbull http://www.twinhelix.com

// This is licensed under the GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/

var IEPNGFix = window.IEPNGFix || {};

IEPNGFix.tileBG = function(elm, pngSrc, ready) {
	// Params: A reference to a DOM element, the PNG src file pathname, and a
	// hidden "ready-to-run" passed when called back after image preloading.

	var data = this.data[elm.uniqueID],
		elmW = Math.max(elm.clientWidth, elm.scrollWidth),
		elmH = Math.max(elm.clientHeight, elm.scrollHeight),
		bgX = elm.currentStyle.backgroundPositionX,
		bgY = elm.currentStyle.backgroundPositionY,
		bgR = elm.currentStyle.backgroundRepeat;

	// Cache of DIVs created per element, and image preloader/data.
	if (!data.tiles) {
		data.tiles = {
			elm: elm,
			src: '',
			cache: [],
			img: new Image(),
			old: {}
		};
	}
	var tiles = data.tiles,
		pngW = tiles.img.width,
		pngH = tiles.img.height;

	if (pngSrc) {
		if (!ready && pngSrc != tiles.src) {
			// New image? Preload it with a callback to detect dimensions.
			tiles.img.onload = function() {
				this.onload = null;
				IEPNGFix.tileBG(elm, pngSrc, 1);
			};
			return tiles.img.src = pngSrc;
		}
	} else {
		// No image?
		if (tiles.src) ready = 1;
		pngW = pngH = 0;
	}
	tiles.src = pngSrc;

	if (!ready && elmW == tiles.old.w && elmH == tiles.old.h &&
		bgX == tiles.old.x && bgY == tiles.old.y && bgR == tiles.old.r) {
		return;
	}

	// Convert English and percentage positions to pixels.
	var pos = {
			top: '0%',
			left: '0%',
			center: '50%',
			bottom: '100%',
			right: '100%'
		},
		x,
		y,
		pc;
	x = pos[bgX] || bgX;
	y = pos[bgY] || bgY;
	if (pc = x.match(/(\d+)%/)) {
		x = Math.round((elmW - pngW) * (parseInt(pc[1]) / 100));
	}
	if (pc = y.match(/(\d+)%/)) {
		y = Math.round((elmH - pngH) * (parseInt(pc[1]) / 100));
	}
	x = parseInt(x);
	y = parseInt(y);

	// Handle backgroundRepeat.
	var repeatX = { 'repeat': 1, 'repeat-x': 1 }[bgR],
		repeatY = { 'repeat': 1, 'repeat-y': 1 }[bgR];
	if (repeatX) {
		x %= pngW;
		if (x > 0) x -= pngW;
	}
	if (repeatY) {
		y %= pngH;
		if (y > 0) y -= pngH;
	}

	// Go!
	this.hook.enabled = 0;
	if (!({ relative: 1, absolute: 1 }[elm.currentStyle.position])) {
		elm.style.position = 'relative';
	}
	var count = 0,
		xPos,
		maxX = repeatX ? elmW : x + 0.1,
		yPos,
		maxY = repeatY ? elmH : y + 0.1,
		d,
		s,
		isNew;
	if (pngW && pngH) {
		for (xPos = x; xPos < maxX; xPos += pngW) {
			for (yPos = y; yPos < maxY; yPos += pngH) {
				isNew = 0;
				if (!tiles.cache[count]) {
					tiles.cache[count] = document.createElement('div');
					isNew = 1;
				}
				var clipR = (xPos + pngW > elmW ? elmW - xPos : pngW),
					clipB = (yPos + pngH > elmH ? elmH - yPos : pngH);
				d = tiles.cache[count];
				s = d.style;
				s.behavior = 'none';
				s.left = xPos + 'px';
				s.top = yPos + 'px';
				s.width = clipR + 'px';
				s.height = clipB + 'px';
				s.clip = 'rect(' +
					(yPos < 0 ? 0 - yPos : 0) + 'px,' +
					clipR + 'px,' +
					clipB + 'px,' +
					(xPos < 0 ? 0 - xPos : 0) + 'px)';
				s.display = 'block';
				if (isNew) {
					s.position = 'absolute';
					s.zIndex = -999;
					if (elm.firstChild) {
						elm.insertBefore(d, elm.firstChild);
					} else {
						elm.appendChild(d);
					}
				}
				this.fix(d, pngSrc, 0);
				count++;
			}
		}
	}
	while (count < tiles.cache.length) {
		this.fix(tiles.cache[count], '', 0);
		tiles.cache[count++].style.display = 'none';
	}

	this.hook.enabled = 1;

	// Cache so updates are infrequent.
	tiles.old = {
		w: elmW,
		h: elmH,
		x: bgX,
		y: bgY,
		r: bgR
	};
};


IEPNGFix.update = function() {
	// Update all PNG backgrounds.
	for (var i in IEPNGFix.data) {
		var t = IEPNGFix.data[i].tiles;
		if (t && t.elm && t.src) {
			IEPNGFix.tileBG(t.elm, t.src);
		}
	}
};
IEPNGFix.update.timer = 0;

if (window.attachEvent && !window.opera) {
	window.attachEvent('onresize', function() {
		clearTimeout(IEPNGFix.update.timer);
		IEPNGFix.update.timer = setTimeout(IEPNGFix.update, 100);
	});
}
