﻿	// #############    SiteForce AG eBusiness Solutions Javascript Library   	#############
	// #############	Version: 2010.12.07 - 1:06	from: fk@siteforce.de		#############
	// ######################################################################################
	
	
	// #############  GLOBAL VARIABLES ##########
	//alert("gContextPath: " + gContextPath);
	var gImagePath = gContextPath + "/docroot/siteforce/images/"; // ### images root path
	
	
	var gINDUSTRY_LIST = new Array("","FINANCIAL_SERVICES","AIR_SPACE","MEDIA_TELECOM","INDUSTRY_TRADE","AUTOMOTIVE","PUBLIC_DOMAIN"); // ## global array of all supported industries
	var gSelectedIndustry = ""; // ## global Value of selected industry default "" = all industries
	
	gElementsArray = new Array();
	
	var gSELECTED_ITEM = null;  // ## global selected ITEM for GUI handling 

	var resultArray = new Array(); // ### global container for result
	var resultCounter = 0; // ### global counter for result



	// ################## makeKundenLinksOfFooterAreaFancyBox  #########################
	function makeKundenLinksOfFooterAreaFancyBox() {
		var anchorArray = document.getElementsByTagName("a");
		for(var n = 0; n < anchorArray.length; n++){
			var anchorElement = anchorArray[n];
			if(anchorElement.href.lastIndexOf("/home_de/kunden/") > -1){
				if(anchorElement.className != "customerLogoLink"){
					anchorElement.className = 'fancybox';
				}
			}
		}
	}


	 // ##############   initKundenScreen    ##############
	function initKundenScreen() {
		var headerimage = document.getElementById('headerimage'); // ### headerimage Element	
		var industrySelectorAreaDIV = createDOMElement('div', headerimage ,'', '' , 'industrySelectorArea' );
		attachEventListener(industrySelectorAreaDIV, "click", selectIndustry, false); // ### attach Event Listener 
		var industrySelectorBarDIV = createDOMElement('div', headerimage ,'', '' , 'industrySelectorBar' );
		
	}
	
	// ###########   selectCustomer #############
	function selectCustomer(selectedElement) {
	
		var mURL = selectedElement.href;
		//alert("clickCustomer mURL " + mURL);
		//$.fancybox.showActivity();
		
		$.fancybox({
			'padding'		: 0,
			'transitionIn'	: 'elastic',
			'transitionOut'	: 'elastic',
			'width'			: 980,
			'height'		: 660,
			'href'			: mURL,
			'type'			: 'iframe'
			
		});

		return false;
	}
	
	 // ##############   selectIndustry    ##############
	function selectIndustry(e) {
		var offsetY = 164;
		var selectorOffsetY = 22;
		var maxLines = 7;  		
  		
  		var mousex = e.pageX
  		if(mousex == null){ var mousex = e.clientX;}
  		
  		var mousey = e.pageY
  		if(mousey == null){ var mousey = e.clientY;}
  		
  		//ShowObjectProperties(e);
  		var mLine = Math.round((mousey - offsetY) / 24.0) + 1;
  		
  		if (mLine < 1) var mLine = 1;
  		if (mLine >= maxLines) var mLine = maxLines;
  		
  		//alert("mLine: " + mLine + " mousey: " + mousey + "  offsetY: " + offsetY);
  		
  		// ##### UPDATE industrySelectorBar #####
  		var industrySelectorBar = document.getElementById('industrySelectorBar'); // ### industrySelectorBar Element
		if(industrySelectorBar != null){
  			var selectorTopPos =  selectorOffsetY + (mLine * 24);	
  			industrySelectorBar.style.top = selectorTopPos + "px";
  		}
  		
  		gSelectedIndustry = gINDUSTRY_LIST[mLine - 1];
  		//alert("mLine: " + mLine + " gSelectedIndustry: " + gSelectedIndustry);
  		
  		fadeOutAllCustomers();
	}


	// ###########   fadeInAllCustomers #############
	function fadeInAllCustomers() {	
		gElementsArray = new Array();
		
		var anchorArray = document.getElementsByTagName("a");
		for(var n = 0; n < anchorArray.length; n++){
			var anchorElement = anchorArray[n];
			if(anchorElement.className == 'customerLogoLink'){
				gElementsArray[gElementsArray.length] = anchorElement;
				anchorElement.style.display = 'inline';
			}
		}
		
		if(gElementsArray.length > 0){
			fadeInElements();
		}
	}
	
	
	// ###########   fadeOutAllCustomers #############
	function fadeOutAllCustomers() {	
		var elementsArray = new Array();
		
		var anchorArray = document.getElementsByTagName("a");
		for(var n = 0; n < anchorArray.length; n++){
			var anchorElement = anchorArray[n];
			if(anchorElement.className == 'customerLogoLink'){
				elementsArray[elementsArray.length] = anchorElement;
			}
		}
		
		if(elementsArray.length > 0){
			fadeOutElements(elementsArray);
		}
	}
	
	
	// ###########   filterIndustryCustomers #############
	function filterIndustryCustomers(selectedValue) {	
		gFilterElementsArray = new Array();
		
		var anchorArray = document.getElementsByTagName("a");
		for(var n = 0; n < anchorArray.length; n++){
			var anchorElement = anchorArray[n];
			if(anchorElement.className == 'customerLogoLink'){
				var industryType = anchorElement.getAttribute('industryType');
				if(industryType != selectedValue){
					gFilterElementsArray[gFilterElementsArray.length] = anchorElement;
				}
			}
		}
		
		if(gFilterElementsArray.length > 0){
			fadeOutFilteredElements();
		}
	}
	

	// ###############   fadeInElements    ###############
	function fadeInElements(){
		//##### fade in actual displayed customers ######
		var steps = 10;
		
		for(var n = 0; n <= steps; n++){
			var delay = n * 50;
			var opacity = ((1.0 / steps) * n);
			setTimeout("setElementsOpacity(" + opacity +")", delay);
    	}
	}


	// ###############   fadeOutElements    ###############
	function fadeOutElements(selectedIndustry){
		//##### fade out elements ######
		var steps = 6;
		
		for(var n = 0; n <= steps; n++){
			var delay = n * 50;
			var opacity = 1.0 - ((1.0 / steps) * n);
			setTimeout("setElementsOpacity(" + opacity +")", delay);
    	}	 
    
   
   		if(selectedIndustry != null || selectedIndustry != ""){
   			setTimeout("showElementsAfterFadeout()", delay + 300);
   		}
	}

	// ###############   showElementsAfterFadeout    ###############
	function showElementsAfterFadeout(){
 		//alert("showElementsAfterFadeout gSelectedIndustry: "+ gSelectedIndustry);
 		
 		gElementsArray = new Array();
		var anchorArray = document.getElementsByTagName("a");
		for(var n = 0; n < anchorArray.length; n++){
			var anchorElement = anchorArray[n];
			if(anchorElement.className == 'customerLogoLink'){
				var industryType = anchorElement.getAttribute('industryType');
				if(industryType == gSelectedIndustry || gSelectedIndustry == ""){
					gElementsArray[gElementsArray.length] = anchorElement;
					anchorElement.style.display = 'inline';
				} else {
					anchorElement.style.display = 'none';
				}
			}
		}
		
		if(gElementsArray.length > 0){
			fadeInElements();
		}
		
	}


	// ###############   setFilteredElementsOpacity    ###############
	function setElementsOpacity(opacity){
		for(var n = 0; n < gElementsArray.length; n++){
			var element = gElementsArray[n];
			if(element != null) {
				element.style.opacity = opacity;
				element.style.filter = "alpha(opacity=" + (opacity * 100.0) +")";
			}
		}
	}

 
 	// ##############   changeIndustry    ##############
	function changeIndustry(selectElement) {
		var selectedIndex = selectElement.selectedIndex;
		var selectedValue = selectElement.value;
 
  		filterIndustryCustomers(selectedValue);
	}
	

	// ###############   setOpacity    ###############
	function setOpacity(id, opacity){
		var element = document.getElementById(id);
		if(element != null) {
			element.style.opacity = opacity;
			element.style.filter = "alpha(opacity=" + (opacity * 100.0) +")";
		}
	}

	// ###############   hideObject    ###############
	function hideObject(id){
		var element = document.getElementById(id);
		if(element != null) {
			element.style.display = "none";
		}
	}

	// ###############   displayObject    ###############
	function displayObject(id){
		var element = document.getElementById(id);
		if(element != null) {
			element.style.display = "block";
		}
	}

 
 	// ### ShowObjectProperties  ###
	function ShowObjectProperties(mObject) {
    	var mWindow = window.open("", "DEBUG", "toolbar=0,location=0,directories=0,scrollbars=1,status=0,menubar=1,resizable=1,width=500,height=600");
    	mWindow.document.open();
    
    	for (var i in mObject) {
        	mWindow.document.write('<BR><B>' + i + '</B> = ' + mObject[i] );
    	}
    
    	mWindow.document.close();
    	mWindow.focus();
	}

		
	
	// ###########   attachEventListener #############
	function attachEventListener(target, eventType, functionRef, capture){
		// ## cross browser compatible attachEventListener function -- function can be called with a pointer or a string representing a function name
	
      	if (typeof(functionRef)== 'string') {
            functionRef=eval(functionRef);
      	}

  		if (typeof target.addEventListener != "undefined"){
    		target.addEventListener(eventType, functionRef, capture);
		} else if (typeof target.attachEvent != "undefined"){
			target.attachEvent("on" + eventType, functionRef);
  		} else {
    		eventType = "on" + eventType;
		
    	if(typeof target[eventType] == "function"){
        	var oldListener = target[eventType];
        	target[eventType] = function(){
            	oldListener();
            	return functionRef();
        	};

    		} else {
        		target[eventType] = functionRef;
    		}

  		}

	}
	
	
	// ###############   createDOMElement    ###############
	function createDOMElement(mElementType, mParentElement ,mTextString, mClassName , mElementID ){
		var mNewObject = document.createElement(mElementType);
		var mClassObject = document.createAttribute("class");
	
		if( mClassName  != ""){
			mClassObject.nodeValue = mClassName ;
			mNewObject.setAttributeNode(mClassObject);
		}

		
		if( mElementID  != "") {
			//alert("mElementID " + mElementID );
			var mIDObject = document.createAttribute("id");
			mIDObject.nodeValue = mElementID ;
			mNewObject.setAttributeNode(mIDObject);
		}
		
 		

		if(mTextString != "") { 
            if (mElementType.toLowerCase() == "div") {
                mNewObject.innerHTML = mTextString;
            } else {
				var mTextNode = document.createTextNode("" + mTextString);
				mNewObject.appendChild(mTextNode);
            }
		}

		mParentElement.appendChild(mNewObject);

		return mNewObject;
	}


	
	// ###########   loadingIndicator #############
	function loadingIndicator(mStatus) {
		var loadingIndicatorElement = document.getElementById('loadingIndicator'); // ### loadingIndicator Element	
				
		if (loadingIndicatorElement != null){
			if(mStatus == true){
				loadingIndicatorElement.style.visibility = 'visible';
				loadingIndicatorElement.style.display = 'block';
			} else {
				loadingIndicatorElement.style.visibility = 'hidden';
				loadingIndicatorElement.style.display = 'none';
			}
		}
	}
	

