/*
 * image loader class
 */
var ImageLoader = function(url, options){
	this.url = url;
	this.options = options;
	this.image = null;
	this.loadEvent = null;
};

ImageLoader.prototype = {
	load:function(){
		this.image = document.createElement('img');
		var url = this.url;
		var options = this.options;
		var image = this.image;
		var loadEvent = this.loadEvent;
		addListener(this.image, 'load', function(e){
			if(loadEvent != null){
				loadEvent(url, image, options);
			}
		}, false);
		this.image.src = this.url;
	},
	getImage:function(){
		return this.image;
	}
}

/*
 * removes every node within a node
 */
function removeInnerElem(holder_elem) {
	var holder = document.getElementById(holder_elem);
	while(holder.firstChild) {
		holder.removeChild(holder.firstChild);
	}
	return(holder);
}

function insertImageElem(image_elem, holder_elem, attributes) {
	var holder = removeInnerElem(holder_elem);
	var img = holder.appendChild(image_elem);
	for (var item in attributes)
		img.setAttribute(item, attributes[item]);
}

/*
 * load content pic via image loader class
 */
function swap_contentPic(img_src){
	var holder_elem_id = 'wrapperFlashOrImage';
	removeInnerElem(holder_elem_id);
	document.getElementById(holder_elem_id).style.background = 'url(/fileadmin/templates/jado/css/img/helpie/loading_circle.gif) 50% 50% no-repeat';

	var loader = new ImageLoader(img_src, {width:302, height:312});
	loader.loadEvent = function(url, image, options) { // onLoadFinish
		document.getElementById(holder_elem_id).style.background = '';
		insertImageElem(image, holder_elem_id, options);
	}
	loader.load();
}


/*
 * overlay product description
 */
function show_prodDesc(prod_no, prod_name, prod_desc, segment, collection, has3danim) {
	var overDiv=document.getElementById('wrapperTextOverImage');
	var h2Div=document.getElementById('wrapperTextOverImageH2');
	var h3Div=document.getElementById('wrapperTextOverImageH3');
	if (prod_no==null || prod_name==null || overDiv == null || h2Div == null || h3Div == null) return false;

	if (has3danim == 1) {
		overDiv.className = 'on_3d_anim';
	} else {
		overDiv.className = 'on';
	}
	if(collection) {
		h2Div.innerHTML = collection+' : '+prod_name+'  ('+prod_no+')';
		h2Div.className = 'title_'+segment;
	} else {
		h2Div.innerHTML = prod_name+' ('+prod_no+')';
		h2Div.className = null;
	}
	h3Div.innerHTML = prod_desc;

	return true;
}
function hide_prodDesc() {
	var overDiv=document.getElementById('wrapperTextOverImage');
	if (overDiv == null) return false;

	overDiv.className = 'off';
	return true;
}


/* Fügt ein SWF in ein Div ein und ersetzt damit den ursprünglichen
 * Content des DIVs.
 *
 * @param	String	div in welchem das swf eingeladen werden soll
 * @param	String	pfad und dateiname des swf
 * @param	String	Breite des SWF [Default: '302']
 * @param	String	Höhe des SWF [Default: '312']
 * @param	String	ID des SWF-ELements im DOM [Default: 'flash_content']
 *
 * @return	Void
 */
function insert_contentSWF(div_elem, swf_file, width, height, swf_id) {
	if(!div_elem || !swf_file)	return false;

	var jlDiv=document.getElementById(div_elem);
	if (jlDiv==null) return false;

	if(!width) width = '302';
	if(!height) height = '312';
	if(!swf_id) swf_id = 'flash_content';

	var params = {'wmode' : 'transparent'};
	swfobject.embedSWF(swf_file, div_elem, width, height, "8", "", null, params);
}


/****************************************************
 * Util Functions
*****************************************************/

var last_open_prodgrp = '';
var last_open_prodgrp_suffix = '';
/**
* zeige oder verstecke Produktgruppen im ProdGrpSelector
*/
function showProductGroupSelector(prodgrp_num, class_suffix, smode) {
	var liDiv=document.getElementById("prodgroup_selector_li_"+prodgrp_num);
	var ulDiv=document.getElementById("prodgroup_selector_ul_"+prodgrp_num);
	if (liDiv==null || ulDiv==null) return false;

	if(last_open_prodgrp != '' && last_open_prodgrp != prodgrp_num) {
		//alert('last_open_prodgrp:__'+last_open_prodgrp+'__');
		showProductGroupSelector(last_open_prodgrp, last_open_prodgrp_suffix, 1);
		last_open_prodgrp = '';
		last_open_prodgrp_suffix = '';
	}

	if(smode == undefined || smode == 0) {
		//alert('show '+prodgrp_num);
		liDiv.className = "has_sub_selection display_block"+(class_suffix ? class_suffix : '');
		ulDiv.className = "list_sub_selection display_block";
		last_open_prodgrp = prodgrp_num;
		last_open_prodgrp_suffix = class_suffix;
	} else {
		//alert('hide '+prodgrp_num);
		liDiv.className = "has_sub_selection display_none"+(class_suffix ? class_suffix : '');
		ulDiv.className = "list_sub_selection display_none";
		last_open_prodgrp = '';
		last_open_prodgrp_suffix = '';
	}

	var fDiv=document.getElementById('wrapperContent_yscroll');
	if (fDiv.scrollUpdate) fDiv.scrollUpdate();

	return false; // prevent load on href
}

/* starts jado ines */
function setup_jadolinesSWF() {
	var jlDiv=document.getElementById("wrapperFlashHeader");
	if (jlDiv==null) return false;

	var params = {'wmode' : 'transparent'};
	swfobject.embedSWF("/fileadmin/templates/jado/swf/jado_lines.swf", "wrapperFlashHeader", "990", "130", "8", "", null, params);
}


/* starts flash product selector */
var psfDiv;
var pswDiv;
var pswfiDiv;
var wrapContDiv; //wrapperContent

function setup_productselectorSWF(lang_id, avail_collections, active_collection) {
	var psiDiv=document.getElementById("wrapperNavigationDesignSegmentsInner");
	wrapContDiv=document.getElementById("wrapperContent");
	psfDiv=document.getElementById("wrapperNavigationDesignSegmentsInnerFlash");
	pswfiDiv=document.getElementById("wrapperFlashOrImage");
	pswDiv=document.getElementById("wrapperNavigationDesignSegments");
	if (psiDiv==null || psfDiv==null)
		return false;

	var params = { 'wmode': 'transparent'};
	var vars = { 'avail_collections' : avail_collections,
				 'active_collection' : active_collection,
				 'baselang' : lang_id };

	swfobject.embedSWF("/fileadmin/templates/jado/swf/segment_collection_selector.swf", "wrapperNavigationDesignSegmentsInnerFlash", "768", "175", "8", "", vars, params, null,
		function(e) {
			if(e.success) { //if swfobject has successfully embedded the swf...
				psiDiv.style.visibility = 'hidden'; // hide regular content
				psfDiv.style.visibility = 'visible'; // show flash content

		//		addEvent(pswDiv, 'mouseover', psZUp, false);
		//		addEvent(pswDiv, 'mouseout', psZDown, false);
				psZDown();
			}
		}
	);

}

function OpaqueIconOn(elem, mode) {
	var pafElem=document.getElementById('paf_'+elem);
	var pdElem=document.getElementById('pd_'+elem);
	if (pdElem==null || pafElem==null) return false;

	if(mode == 'F') {
		pafElem.style.MozOpacity = '0.9';
		pafElem.style.filter = 'alpha(opacity=90)';
		pafElem.style.opacity = '0.9';

		pdElem.style.MozOpacity = '0.4';
		pdElem.style.filter = 'alpha(opacity=40)';
		pdElem.style.opacity = '0.4';
	} else if(mode == 'D') {
		pafElem.style.MozOpacity = '0.4';
		pafElem.style.filter = 'alpha(opacity=40)';
		pafElem.style.opacity = '0.4';

		pdElem.style.MozOpacity = '0.9';
		pdElem.style.filter = 'alpha(opacity=90)';
		pdElem.style.opacity = '0.9';
	}
	return true;
}

function OpaqueIconOff(elem, mode) {
	var pafElem=document.getElementById('paf_'+elem);
	var pdElem=document.getElementById('pd_'+elem);
	if (pdElem==null || pafElem==null) return false;

	pafElem.style.MozOpacity = '0';
	pafElem.style.filter = 'alpha(opacity=0)';
	pafElem.style.opacity = '0';

	pdElem.style.MozOpacity = '0';
	pdElem.style.filter = 'alpha(opacity=0)';
	pdElem.style.opacity = '0';

	return true;
}

/* submit form when element has value */
function submitOnSelect(sel_elem, search_form) {
	var selvalue = sel_elem.options[sel_elem.options.selectedIndex].value;

	var formElem=document.getElementById(search_form);
	if (sel_elem==null || formElem==null || selvalue==null || selvalue=='') return false;

	formElem.submit();

	parent = sel_elem.parentNode.innerHTML = '<img src="/fileadmin/templates/jado/css/img/helpie/loading_circle.gif" alt="waiting..." width="42px" height="42px" style="margin-left:170px;margin-top:50px;" />';
	return true;
}

/* wrap zindexes */
function psZUp() {
	wrapContDiv.className = "zone";
	if(pswfiDiv) pswfiDiv.className = "zone";
	pswDiv.className = "zten";
}
function psZDown() {
	pswDiv.className = "zone";
	wrapContDiv.className = "zten";
	if(pswfiDiv) pswfiDiv.className = "zten";
}


/**
* Cross-Browser Ereignis-Registrar von http://snipplr.com/view.php?codeview&id=561
*/
function addListener(element, type, expression, bubbling)
{
	bubbling = bubbling || false;
	if(window.addEventListener)	{ // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	} else if(window.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;
	} else return false;
}