var submenuTimeout;
var bannerChangeTO=null;
var bannerFadeOutTO=null;
var bannerFadeInTO=null;
var ci_glob_MousePressed=false;
var ci_glob_scroll_left=0;
var ci_glob_scroll_top=0;
var ci_glob_cust_store_to=null;


window.addEvent('domready', function() {
	
	var curFeat=$('navi_div').getElement('.topmenu_feature');
	var featColor=curFeat.getStyle('background-color');
	
	if (!curFeat.hasClass('active_link')) 
	{
		curFeat.setStyle('background-color','#BBBBBB');
		var highlightProds = function()
		{
			curFeat.highlight(featColor);
		}
		
		var killme=highlightProds.periodical(2900);
		
		var stopBlink=function()
		{
			clearInterval(killme);
		}
		stopBlink.delay(20000);
		
	}
	
	});

function showSubmenuSlider(top_id,menuid)
{
	var slider = window.document.getElementById( "submenu_slider_"+top_id+"_"+menuid );
    if(slider)
	{
		var subSliders=ci_getElementsByClassNameAtNode("submenu_slider_div",document.getElementById('prod_navi_div'));
        subSliders=subSliders.concat(ci_getElementsByClassNameAtNode("submenu_slider_div",document.getElementById('navi_div')));
        subSliders=subSliders.concat(ci_getElementsByClassNameAtNode("submenu_slider_div",document.getElementById('head_navi_div')));
        
        for(var i=0;i<subSliders.length;i++)
        {
            subSliders[i].style.display="none";
            subSliders[i].style.visibility="hidden";
            var curMenuid=parseInt(subSliders[i].id.match(/\d+$/));
            
            if (curMenuid > 1) 
            {
                subSliders[i].parentNode.getElementsByTagName("DIV")[0].style.backgroundImage = "url(../img/prod_button.gif)";
            }
        }
        
        window.clearTimeout(submenuTimeout);

		/* Alle anderen zumachen: */
		var navidiv = window.document.getElementById("navi_div");

		var submenudivtags = navidiv.getElementsByTagName("div");

		for(i=0; i<submenudivtags.length; i++)
		{
			if(submenudivtags[i].className == "submenu_slider_div")
			{
				submenudivtags[i].style.visibility = "hidden";
				submenudivtags[i].style.display = "none";
			}
		}

		slider.style.visibility = "visible";
		slider.style.display = "block";
        if (menuid > 1) 
        {
            slider.parentNode.getElementsByTagName("DIV")[0].style.backgroundImage = "url(../img/prod_button_hover.gif)";
        }
    }
}
/**
 * Kundenauswahl(Angebot)
 */
function ci_openCustomerSearch()
{
    window.open("/php/ci_customer_selection.php","Kundensuche","width=310,height=325");
}

function ci_searchCustomer(sourceNode)
{
    var showAll = false;
    var cidSearch = '';
    var cnameSearch = '';
    if (typeof sourceNode != "undefined" && sourceNode != null) 
    {
        if (sourceNode.id == "ci_c_no_search_field") 
        {
            cidSearch = document.getElementById('ci_c_no_search_field').value;
            document.getElementById('ci_c_name_search_field').value = "";
        }
        else 
        {
            cnameSearch = document.getElementById('ci_c_name_search_field').value;
            document.getElementById('ci_c_no_search_field').value = "";
        }
    }
    
    //var options='<select style="width:300px" size="13">';
    var regxpr;
    //Ins Array packen ist performanter unter IE
    var optArr = new Array('<select style="width:300px" size="13" onchange="ci_selectCustomerOption(this)">');
    var matchCount = 0;
    var lastMatch = null;
    for (var i = 0; i < ci_glob_cnos.length; i++) 
    {
        regxpr = new RegExp(cnameSearch, "i");
        if (ci_glob_cnos[i].indexOf(cidSearch) == 0 && ci_glob_cnames[i].search(regxpr) > -1) 
        {
            //options += '<option value="' + ci_glob_cnos[i] + '">' + ci_glob_cnos[i] + ': ' + ci_glob_cnames[i] + '</options>';
            optArr.push('<option value="' + ci_glob_cnos[i] + '">' + ci_glob_cnos[i] + ': ' + ci_glob_cnames[i] + '</options>');
            lastMatch = i;
            matchCount++;
        }
    }
    optArr.push("</select>");
    if (matchCount > 0) 
    {
        document.getElementById("ci_c_no_list").innerHTML = optArr.join("");
    }
    if(matchCount===1)
    {
        document.getElementById('ci_c_no_search_field').value=ci_glob_cnos[lastMatch];
        cnameSearch=document.getElementById('ci_c_name_search_field').value=ci_glob_cnames[lastMatch];
        if (typeof sourceNode != "undefined" && sourceNode != null) 
         {
             sourceNode.focus();
         }
         document.getElementById('ci_take_c_no').disabled=false;
    }
    else
    {
        document.getElementById('ci_take_c_no').disabled=true;
    }
}

function ci_selectCustomerOption(node)
{
    var selCno=node.value;
    document.getElementById('ci_c_no_search_field').value = selCno;
    var selCname=ci_glob_cnames[ci_glob_cnos.contains(selCno)];
    document.getElementById('ci_c_name_search_field').value = selCname;
    document.getElementById('ci_take_c_no').disabled=false;
}

function ci_selectCustomer(c_no)
{
    if(typeof noMainRefresh=="undefined" || noMainRefresh==null)
    {
        noMainRefresh=false;
    }
    document.getElementById('ci_customer_selector').value=c_no;
    //Wenn nicht in neues Angebot Fenster(->Hauptfenster)
    if(document.getElementById("ci_offer_c_name_1")==null)
    {
        ci_customerSelectStore();
    }
    //Wenn in neues Angebot Fenster
    else
    {
        //lade Adressdaten
        var c_no=document.getElementById('ci_customer_selector').value;
        var url = 'ci_get_customer_data.php';
    	var data = "c_id="+c_no;
    	var requestTmpl = opener.getNewRequest();
    	requestTmpl,data = opener.setCommonRequestParams(requestTmpl,url,data,false);
    	requestTmpl.send(data);
        var xmlDoc=requestTmpl.responseXML;
        opener.unsetWait();
        if (xmlDoc.childNodes[0].getElementsByTagName("c_no").length > 0) 
        {
            //fülle Adressfelder aus
            var htmlFields = new Array("ci_offer_c_name_1", "ci_offer_c_name_2","ci_offer_address_1", "ci_offer_address_2", "ci_offer_address_postal", "ci_offer_address_city", "ci_offer_contact_person", "ci_offer_contact_email");
            var xmlTags = new Array("c_name", "c_name_add", "c_address", "c_address_2" , "c_postal", "c_city", "p_name", "p_email");
            
            for (var i = 0; i < htmlFields.length; i++) 
            {
                document.getElementById(htmlFields[i]).value = xmlDoc.childNodes[0].getElementsByTagName(xmlTags[i])[0].firstChild.data;
            }
        }
        ci_checkRequestedInput();
    }
}

//Speichern des Kunden 
function ci_customerSelectStore()
{
    var c_no=document.getElementById('ci_customer_selector').value;
    var url = 'ci_store_customer.php';
	var data = "c_id="+c_no;
	var requestTmpl = getNewRequest();
	requestTmpl,data = setCommonRequestParams(requestTmpl,url,data,false);
	requestTmpl.send(data);
    unsetWait();
    if (document.location.hash.indexOf('CIA_load(') == 1) 
    {
        window.location.reload();
    }
    else 
    {
        loadForwardFunction();
    }
}

//Speichern des Kunden nach Tastatureingabe (verzoegert)
function ci_customerSelectDelayStore(donow)
{
    //Timeout resetten
    if(ci_glob_cust_store_to!=null)
    {
        window.clearTimeout(ci_glob_cust_store_to);
        ci_glob_cust_store_to=null;
    }
    if(donow)
    {
        ci_customerSelectStore();
    }
    else
    {
        ci_glob_cust_store_to=window.setTimeout("ci_customerSelectDelayStore(true)",1000);
    }
}


function hideSubmenuSlider(top_id,menuid)
{
	var slider = window.document.getElementById("submenu_slider_"+top_id+"_"+menuid)
    if(slider)
	{
		submenuTimeout = window.setTimeout("hideSubmenuSliderTimeout("+top_id+","+menuid+")", 200);
	}
}


function hideSubmenuSliderTimeout(top_id,menuid)
{

	var slider = window.document.getElementById("submenu_slider_"+top_id+"_"+menuid);

	slider.style.visibility = "hidden";
	slider.style.display = "none";
    if (menuid > 1) 
    {
        slider.parentNode.getElementsByTagName("DIV")[0].style.backgroundImage = "url(../img/prod_button.gif)";
    }
}

function login() {
	window.document.getElementById("login_form").submit();
}

function startSearch()
{
    var productSearch=document.getElementById("product_search_radio").checked;
    var dest="";
    var searchVal=document.getElementById("main_search_field").value;
    if(productSearch)
    {
        dest+=document.getElementById("product_search_dest").value;
        dest+="&main_search_category=product&search="+encodeURIComponent(searchVal);
        searchVal=searchVal.replace(/'/g,"\\%27");
        dest+="#CISE_loadSearch('"+searchVal+"','','0')";
    }
    else
    {
        dest+=document.getElementById("content_search_dest").value;
        dest+="&main_search_category=content&search="+encodeURIComponent(searchVal);
    }
    
    window.location.href=dest;
    
    
}

function ci_changeBanner(doSlow)
{
    if(bannerChangeTO!=null)
    {
        window.clearTimeout(bannerChangeTO);
        bannerChangeTO=null;
    }
    
    var curActive=document.getElementById("ci_active_banner");
    if (curActive == null) 
    {
        ci_stopCrossFade();
        return;
    }
    
    
    var parentDiv=curActive.parentNode;
    var nextActive=curActive.nextSibling;
    var emergencyCounter=0;
    while (emergencyCounter <99 && (nextActive === null || nextActive.nodeName != "DIV")) 
    {
        if(nextActive===null)
        {
            var startSearch=0;
            while(
                    (startSearch < parentDiv.childNodes.length) &&
                    (parentDiv.childNodes[startSearch]==null) && 
                    (emergencyCounter <99)
                 )
            {
               startSearch++;
               emergencyCounter++;
            }
            nextActive=parentDiv.childNodes[startSearch];
        }
        else
        {
            nextActive=nextActive.nextSibling;
        }
        emergencyCounter++;
    }
    if(nextActive!==null)
    {
        var oldFONode=document.getElementById("ci_fadout_banner");
        if(typeof oldFONode !=="undefined" && oldFONode !==null)
        {
            oldFONode.removeAttribute("id");
            oldFONode.style.display="none";
        }
        curActive.id="ci_fadout_banner";
        //curActive.style.display="none";
        ci_fadeOut("ci_fadout_banner",15,25);
        nextActive.id="ci_active_banner";
        //nextActive.style.display="block";
        ci_fadeIn("ci_active_banner",15,28);
		if(typeof doSlow =="undefined")
		{
			doSlow=5000;
		}
		
		bannerChangeTO=window.setTimeout("ci_changeBanner("+doSlow+");",doSlow);
    }
}

function ci_fadeIn(nodeId,interv,numIv,restIv)
{
    if(bannerFadeInTO!=null)
    {
        window.clearTimeout(bannerFadeInTO);
        bannerFadeInTO=null;
    }
    
    if(typeof numIv=="undefined" || numIv==null)
    {
        numIv=50;
    }
    if(typeof restIv=="undefined" || restIv==null)
    {
        restIv=numIv;
    }
    if(bannerFadeInTO!=null)
    {
        window.clearTimeout(bannerFadeInTO);
    }
    
    var curNode=document.getElementById(nodeId);
    setOpacity(curNode,(numIv-restIv)/numIv);
    if(restIv>0)
    {
        bannerFadeInTO=window.setTimeout("ci_fadeIn('"+nodeId+"','"+interv+"','"+numIv+"','"+(restIv-1)+"')",interv);    
    }
    else
    {
        bannerFadeInTO=null;
    }
}

function ci_fadeOut(nodeId,interv,numIv,restIv)
{
    if(bannerFadeOutTO!=null)
    {
        window.clearTimeout(bannerFadeOutTO);
        bannerFadeOutTO=null;
    }
    
    if(typeof numIv=="undefined" || numIv==null)
    {
        numIv=50;
    }
    if(typeof restIv=="undefined" || restIv==null)
    {
        restIv=numIv;
    }
    
    if(bannerFadeOutTO!=null)
    {
        window.clearTimeout(bannerFadeOutTO)
    }
    var curNode=document.getElementById(nodeId);
    setOpacity(curNode,(restIv)/numIv);
    if(restIv>0)
    {
        bannerFadeOutTO=window.setTimeout("ci_fadeOut('"+nodeId+"','"+interv+"','"+numIv+"','"+(restIv-1)+"')",interv);    
    }
    else
    {
        bannerFadeOutTO=null;
    }
    
}


function setOpacity(opNode,opVal)
{
    if (typeof opNode!=="undefined" && opNode!==null) 
    {
        opNode.style.opacity = opVal;
        //MS Extrawurst
        opNode.style.filter = "Alpha(opacity=" + (opVal * 100) + ")";
        if (opVal == 0) 
        {
            opNode.style.display = "none";
        }
        else 
        {
            opNode.style.display = "block";
        }
    }
}

/**
 * Allgemeine Funktionen
 */
/**
 *
 * @method Array.pull
 * im Standardfall (noMoveUp=false):
 * das gewaehlte Element wird aus dem Array rausgenommen, zurueckgegeben und die folgenden Elemente ruecken nach
 * bei noMoveUp=true:
 * liest Wert am Index eines Arrays aus und setzt ihn dann auf null
 * ist es das letzte Element im Array so wird es geloescht und alle davorliegenden die null sind
 * @param Object indexP
 * @param boolean noMoveUp keine nachfolgenden Arrayelemente nachruecken (true|default -> ja, false -> nein)
 */

Array.prototype.pull = function(indexP, noMoveUp)
{
    //Rueckgabewert
    var retValue = null;
    //Typenpruefung
    if (typeof indexP != 'number' || parseInt(indexP) != indexP || indexP < 0) 
        throw "pull-Funktion akzeptiert nur positive Integer werte als Index";
    if (typeof noMoveUp != 'boolean' && typeof noMoveUp != 'undefined' && noMoveUp != null) 
        throw "ein boolean-Wert ist fuer die nachrueckangabe gefordert";
    //default fuer noMoveUp: false
    if (typeof noMoveUp == "undefined" || noMoveUp != true) 
    {
        noMoveUp = false;
    }
    
    //Wenn der Index nicht das letzte Element markiert
    if (indexP != this.length - 1) 
    {
        retValue = this[indexP];
        //Nachruecken der drueberliegenden Elemente
        if (noMoveUp) 
        {
            this[indexP] = null;
        }
        else 
        {
            for (var i = indexP; i < this.length - 1; i++) 
            {
                this[i] = this[i + 1];
            }
            this.pop();
        }
        
    }
    //Wenn der Index das letzte Element markiert
    else 
    {
        //Letztes Element loeschen und in Rueckgabewert speichern
        retValue = this.pop();
        //Alle davorliegenden Elemente mit null loeschen.
        var i = this.length - 1;
        while (i >= 0 && this[i] == null && noMoveUp) 
        {
            this.pop();
            i--;
        }
    }
    //Rueckgabe des ermittelten Wertes
    return retValue;
}

/**
 * @method Array.contains
 * Sucht ein Objekt im array und gibt es zurueck
 * @param {Object} obj Suchobjekt
 * @return int Index des Suchobjektes (nicht gefunden -> -1)
 */
Array.prototype.contains = function(obj)
{
    var begrenz = this.length;
    for (var h = 0; h < begrenz; h++) 
    {
        if (this[h] == obj) 
            return h;
    }
    return -1;
}

/**
 * @method String.fill
 * Fuellt einen String mit Zeichen auf bestimmte Laenge auf (ist der absolute Wert der Fuelllange kleiner als die aktuelle Stringlaenge, passiert nichts)
 * @param String fillChar Fuellzeichen. genau ein Zeichen
 * @param int	wLength Stringlaenge nach Bearbeitung. Bei positiven Wert wird der string von links aufgefuellt
 *				bei negativem wert von rechts (absoluter Wert als Stringlaenge)
 * @return String aufgefuellter String
 */
String.prototype.fillUp = function(fillChar, wLength)
{
    //Typenpruefung
    if (typeof wLength != 'number' || parseInt(wLength) != wLength) 
        throw "die Laengenangabe muss ein Integerwert sein";
    if (typeof fillChar != 'string' || fillChar.length != 1) 
        throw "das Auffuellzeichen muss ein String sein und genau ein Zeichen enthalten";
    
    var startFront = wLength >= 0;
    wLength = Math.abs(wLength);
    fillChar = fillChar.charAt(0);
    var selfStr = this;
    while (selfStr.length < wLength) 
    {
        if (startFront) 
        {
            selfStr = fillChar + selfStr;
        }
        else 
        {
            selfStr += fillChar;
        }
    }
    return selfStr;
}

/**
 * @method Node.getElementsByClassName
 * zuerst ... Ich hasse den scheiss IE
 * ... ermittelt die Knoten mit Klassennamen clName unter seinen Kindern
 * ist Kompatibel mit fast allen Brosern
 * nur der bekackte IE in all seinen abstrusen Unarten ist zu doof um das hier auszufuehren
 * nur deshalb musste eine Objektlose methode geschrieben werden !!!!
 * @param String clName Klassenname
 */
//Spackenbrowser-Workaround(nur Funktion dem Prototypenobjekt hinzufuegen wenn sie auch existiert)
if (typeof Node != "undefined") 
{

    Node.prototype.getElementsByClassName = function(clName)
    {
        var retArray = ci_getElementsByClassNameAtNode(clName, this);
        return retArray;
    }
}

/**
 * @method getElementsByClassNameAtNode
 * Kompatibel ab IE5.5 und den restlichen Browsern ja ohnehin :P
 * holt alle Knoten mit Klassenname clName unter Knoten startNode
 * @param String clName Klassenname
 * @param Node startNode startKnoten zum Suchen( default:document)
 */
function ci_getElementsByClassNameAtNode (clName, startNode)
{
    if (typeof startNode == "undefined" || startNode == null) 
    {
        startNode = document;
    }
    var allNodes;
    var retArray = new Array();
    var matchCount = 0;
    
    //Alle Knoten holen(mit IE Sonderbehandlung)
    if (startNode.all) 
        allNodes = startNode.all;
    else 
        if (startNode.getElementsByTagName && !startNode.all) 
        {
            allNodes = startNode.getElementsByTagName("*");
        }
    
    for (var i = 0; i < allNodes.length; i++) 
    {
        //Wenn Klassenname passt
        if (allNodes.item(i).className.indexOf(clName) > -1) 
        {
            //Befreiung des Klassennamenstrings von unnuetzen Leerzeichen
            var checkStr = " " + allNodes.item(i).className.split(" ").join(" ") + " ";
            //Wenn Klassenname immer noch passt
            if (checkStr.indexOf(" " + clName + " ") > -1) 
            {
                retArray[matchCount] = allNodes.item(i);
                matchCount++;
            }
        }
    }
    return retArray;
}

/**
 * @method getElementsByTypeAtNode
 * Kompatibel ab IE5.5 und den restlichen Browsern ja ohnehin :P
 * holt alle Knoten mit Type tpName unter Knoten startNode
 * @param String clName Klassenname
 * @param Node startNode startKnoten zum Suchen( default:document)
 */
function ci_getElementsByTypeAtNode (tpName, startNode)
{

    if (typeof startNode == "undefined" || startNode == null) 
    {
        startNode = document;
    }
    var allNodes;
    var retArray = new Array();
    var matchCount = 0;
    
    //Alle Knoten holen(mit IE Sonderbehandlung)
    if (startNode.all) 
        allNodes = startNode.all;
    else 
        if (startNode.getElementsByTagName && !startNode.all) 
        {
            allNodes = startNode.getElementsByTagName("*");
        }
    
    for (var i = 0; i < allNodes.length; i++) 
    {
        //Wenn Klassenname passt
        var curType = allNodes.item(i).getAttribute("type");
        if (curType != null && curType.toLowerCase() == tpName.toLowerCase()) 
        {
            retArray[matchCount] = allNodes.item(i);
            matchCount++;
        }
    }
    return retArray;
}

/**
 * @function ci_log
 * gibt logStuff in der Firebugkonsole aus falls der FF mit Firebug genutzt wird
 * @param object/mixed das was ausgegeben werden soll 
 */

function ci_log(logStuff)
{
    if(typeof console!="undefined" && console && console.log)
    {
        console.log(logStuff);
    }
}

function ci_showProductSelection(classId)
{
    ci_stopCrossFade();
    //Seite für class_id laden
    CICA_loadPage('0','0',classId);
    //Hersteller zur class_id anzeigen
    showManufacturerMenue(classId);
}

function ci_stopCrossFade(wrltz)
{    
    if(typeof wrltz=="undefined" || wrltz===null)
    {
        wrltz=true;
    }
    
    //Crossfade ausschalten
    if(bannerChangeTO!==null)
    {
        window.clearTimeout(bannerChangeTO);
        bannerChangeTO=null;
    }
    if(bannerFadeInTO!=null)
    {
        window.clearTimeout(bannerFadeInTO);
        bannerFadeInTO=null;
    }
    if(bannerFadeOutTO!=null)
    {
        window.clearTimeout(bannerFadeOutTO);
        bannerFadeOutTO=null;
    }
    
    if (wrltz) 
    {
        var selBx = document.getElementById("ci_product_banners");
        if (selBx) 
        {
            selBx.style.display = "none";
        }
        document.getElementById("manufacturer_sub_navi").style.display = "block";
    }
}

function showManufacturerMenue(classId,manfName)
{
    if(typeof manfName=="undefined")
    {
        manfName=null;
    }
    
    var selectedManfs=ci_glob_classToManfVals[ci_glob_classToManfKeys.contains(classId)];
    var manfButtons=ci_getElementsByClassNameAtNode("ci_manf_btn",document.getElementById('manufacturer_sub_navi'));
    var curManfName;
    for(var i=0;i<manfButtons.length;i++)
    {
        curManfName=manfButtons[i].id.replace(/ci_manf_btn_/,"");
        //manfButtons[i].style.backgroundImage="url(../img/manf_button.gif)";
        manfButtons[i].className=manfButtons[i].className.replace(/ci_manf_btn_[^ ]+/,'ci_manf_btn_normal');
        if( curManfName!="all" && curManfName !="" && (
            selectedManfs.contains(curManfName)==-1  /*|| manfName!==null && manfName!==curManfName*/)
            )
        {
            manfButtons[i].style.display="none";
        }
        else
        {
            manfButtons[i].style.display="block";
            if(manfName!==null && manfName==curManfName ||  manfName===null && curManfName=="all")
            {
                //manfButtons[i].style.backgroundImage="url(../img/manf_button_active.gif)";
                manfButtons[i].className=manfButtons[i].className.replace(/ci_manf_btn_[^ ]+/,'ci_manf_btn_active');
            }
        }
    }
    document.getElementById("manufacturer_sub_navi").style.visibility="visible";
    document.getElementById("manufacturer_sub_navi").style.display="block";
    document.getElementById("ci_selected_class_id").value=classId;
}

function hideManufacturerMenue(removeSpace)
{
    if(typeof removeSpace =="undefined" || removeSpace==null)
    {
        removeSpace=false;
    }
    if(removeSpace)
    {
        document.getElementById("manufacturer_sub_navi").style.display="none";
    }
    else
    {
        document.getElementById("manufacturer_sub_navi").style.display="block";
    }
    document.getElementById("manufacturer_sub_navi").style.visibility="hidden";
}

function ci_showManufacturerSelection(manfName)
{
    var classId=document.getElementById("ci_selected_class_id").value;
    showManufacturerMenue(classId,manfName);
    if(manfName==null)
    {
        manfName="";
    }
    CICA_loadPage('0','0',classId,manfName);
}


//InformationsBlock zeigen
function ci_showInformationBlock(toTime,pWin)
{
    
    if(typeof pWin=="undefined" || pWin===null)
    {
        pWin=true;
    }
    if(typeof toTime==="undefined" || toTime ===null)
    {
        toTime=120000;
    }
    
    if (typeof ci_glob_info_block_to !== "undefined" && ci_glob_info_block_to !== null) 
    {
        window.clearTimeout(ci_glob_info_block_to);
        ci_glob_info_block_to=null;
    }
    
    document.getElementById("ci_information_block").style.display="block";
    
    var body = null;
    if (window.document.compatMode && window.document.compatMode == "CSS1Compat") 
    {
        body = window.document.documentElement;
    }
    else 
        if (window.document.body) 
        {
            body = window.document.body;
        };
    var infoBox = document.getElementById('ci_information_block');
    infoBox.onselectstart=onselectstartReturn;
    if (pWin) 
    {
        infoBox.style.top = (body.scrollTop + 150) + "px";
        var innerWidth = (window.innerWidth) ? window.innerWidth : document.documentElement.clientWidth;
        infoBox.style.left = (Math.round(innerWidth / 2) - 250) + "px";
    }
    ci_closeInformationBlock(toTime);
    
    if(navigator.userAgent.indexOf("Chrome/3.0")>-1)
    {
        infoBox.style.position="fixed"; 
    }
}

function onselectstartReturn()
{
    return false;
}

//InformationsBlock "schliessen"
function ci_closeInformationBlock(closeMSec)
{
    if (typeof ci_glob_info_block_to !== "undefined" && ci_glob_info_block_to !== null) 
    {
        window.clearTimeout(ci_glob_info_block_to);
        ci_glob_info_block_to=null;
    }
    var toSteps=1000;
    var closeSec=Math.floor(closeMSec/1000);
    var timePane=document.getElementById("ci_information_block_close_countdown");
    if(closeMSec - toSteps<=10000)
    {
        timePane.style.display="block";
    }
    else
    {
        timePane.style.display="none";
    }
    
    document.getElementById("ci_information_block_close_time").innerHTML=closeSec;
    if (closeSec > 0) 
    {
        ci_glob_info_block_to = window.setTimeout("ci_closeInformationBlock(" + (closeMSec - toSteps) + ")", toSteps);
    }
    else
    {
        document.getElementById("ci_information_block").style.display="none";
    }
}

function ci_registerMouseDown()
{
    ci_glob_MousePressed=true;
}

function ci_registerMouseUp()
{
    ci_glob_MousePressed=false
    var infoBox = document.getElementById('ci_information_block');
    infoBox.style.cursor="default";
}

function ci_moveInformationBox(event,node,pWin)
{
    
    if(ci_glob_MousePressed)
    {
        if (!event) event = window.event;
        var pressedTarget = (event.target) ? event.target : event.srcElement;
        
        if (pressedTarget.id != "ci_information_block_close_a" && (pressedTarget.nodeName=="DIV" || pressedTarget.nodeName=="SPAN")) 
        {
            var body = null;
            if (window.document.compatMode && window.document.compatMode == "CSS1Compat") 
            {
                body = window.document.documentElement;
            }
            else 
            if (window.document.body) 
            {
                body = window.document.body;
            };
            var x = event.pageX ? event.pageX : event.clientX + body.scrollLeft;
            var y = event.pageY ? event.pageY : event.clientY + body.scrollTop;
            if (navigator.userAgent.indexOf("Chrome/3.0") == -1) 
            {
            
                var infoBox = document.getElementById('ci_information_block');
                
                infoBox.style.top = (y - 40) + "px";
                infoBox.style.left = (x - 250) + "px";
                
                infoBox.style.cursor = "move";
            }
        }
        else
        {
            ci_glob_MousePressed=false;
        }
        ci_setGlobScorllPos();
    }
}

function ci_moveScrollInfoBox()
{
    var infoBox = document.getElementById('ci_information_block');
    if (infoBox.style.display == "block") 
    {
        if (window.document.compatMode && window.document.compatMode == "CSS1Compat") 
        {
            body = window.document.documentElement;
        }
        else if (window.document.body) 
        {
            body = window.document.body;
        };
        var infoBox = document.getElementById('ci_information_block');
        var topDif = (body.scrollTop - ci_glob_scroll_top);
        var leftDif = (body.scrollLeft - ci_glob_scroll_left);
        ci_setGlobScorllPos();
        infoBox.style.top = (parseInt(infoBox.style.top.replace(/\D/, '')) + topDif) + "px";
        infoBox.style.left = (parseInt(infoBox.style.left.replace(/\D/, '')) + leftDif) + "px";
    }
}

function ci_showProdDetails(suplAId,pWin)
{
    if(typeof pWin=="undefined" || pWin===null)
    {
        pWin=true;
    }
    var descShort=document.getElementById("ci_art_desc_short_"+suplAId).value;
    var descLong=document.getElementById("ci_art_desc_"+suplAId).value;
    var manfType=document.getElementById("ci_art_manf_type_"+suplAId).value;
    var imgPath=document.getElementById("ci_art_img_small_"+suplAId).value;
    document.getElementById("ci_info_block_desc_short").innerHTML=descShort;
    document.getElementById("ci_info_block_manf_type").innerHTML=manfType;
    document.getElementById("ci_info_block_supplier_aid").innerHTML=suplAId;
    document.getElementById("ci_info_box_supplier_aid_buf").value=suplAId;
    document.getElementById("ci_info_block_desc").innerHTML=descLong;
    document.getElementById("ci_information_block_bg_img").style.backgroundImage="url("+imgPath+")";
    ci_showInformationBlock(null,pWin);
    ci_setGlobScorllPos();
    
}

function ci_setGlobScorllPos()
{
     if (window.document.compatMode && window.document.compatMode == "CSS1Compat") 
    {
        body = window.document.documentElement;
    }
    else if (window.document.body) 
    {
        body = window.document.body;
    };
    ci_glob_scroll_top = body.scrollTop;
    ci_glob_scroll_left = body.scrollLeft;
}

function ci_skipProdDetails(prev)
{
    var supAid=document.getElementById("ci_info_box_supplier_aid_buf").value;
    var supAids=document.getElementsByName("ci_art_supplier_aid");
    var prevAid=supAids[supAids.length-1].value;
    var postAid=supAids[0].value;
    var followFlag=false;
    var curAid=null;
    for (var i=0;i<supAids.length;i++)
    {
        curAid=supAids[i].value;
        //nachfolgende Aid ermitteln
        if(followFlag)
        {
            postAid=curAid;
            break;
        }
        //vorige Aid ermitteln
        if(curAid!=supAid && !followFlag)
        {
            prevAid=curAid;
        }
        else
        {
            followFlag=true;
        }
    }
    var selAid=postAid;
    if(prev)
    {
        selAid=prevAid;
    }
    ci_showProdDetails(selAid,false)
}

function ci_showProdDetailsViaInfo()
{
    var supAid=document.getElementById("ci_info_box_supplier_aid_buf").value;
    var classId=document.getElementById("ci_art_class_id_"+supAid).value;
    ci_closeInformationBlock(1);
    CIA_load(supAid,classId,'1');
}
/*
	function getNewRequest() {
		http_request = false;
		if (window.XMLHttpRequest) { // Mozilla, Opera, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				http_request.overrideMimeType("text/xml");
			}
		} 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 ) {
			return http_request;
		}
		else {
			alert("Kann keine HTTP-Instanz erzeugen IE < 5.5 oder ActiveX abgeschaltet");
		}
	}
    
    function setCommonRequestParams(request,url,data, asynchronous) {
		if(typeof asynchronous=='undefined' || asynchronous==null)
		{
			asynchronous=true;
		}
		url =  url;
		if ( false ) {
			request.open( "POST", url,  asynchronous );
			request.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
			request.setRequestHeader( 'Content-length', data.length );
		}
		else {
			request.open( "GET", url + "?" + data, asynchronous );
		}
		return request;
	}
*/

function ci_getIfExists(nodeId,nullReturn)
{
    if(typeof nullReturn=="undefined" || nullReturn===null)
    {
        nullReturn=false;
    }
    var retVal = "";
    if(nullReturn)
    {
        retVal=null;        
    }
    
    var nodeVar = document.getElementById(nodeId);
    if (nodeVar !== null) 
    {
        retVal = nodeVar.value;
        if(retVal===null)
        {
            retVal=nodeVar.innerHTML;
        }
    }
    return retVal;
}

function ci_inputNumsOnly(nodeObj,nachkomma)
{
    if(typeof nachkomma ==="undefined" || nachkomma===null)
    {
        nachkomma=0;
    }
    
    var inpStr= nodeObj.value;
    var retStr= inpStr.replace(/[^,\d]/g, "");
    if(nachkomma==0)
    {
        retStr= retStr.replace(/,/g, "");
    }
    else
    {
        var matchReg= new RegExp("\\d*,?\\d{0,"+nachkomma+"}","i");
        retStr= retStr.match(matchReg);
    }
    if (retStr !== inpStr) 
    {
        nodeObj.value = retStr;
    }
}

function ci_changeStyle(nodeObj,keepClass)
{
    var selOpt=nodeObj.options[nodeObj.selectedIndex];
    var optClass=selOpt.className;
    if (typeof keepClass != "undefined" && keepClass != null) 
    {
        var clsRegExp = new RegExp(keepClass, "i")
        var selClass = nodeObj.className.match(clsRegExp);
        optClass=selClass+" "+optClass;
    }    
    
    nodeObj.className=optClass;
    nodeObj.blur();
}

function ci_getPriceToType(posi)
{
    var selNode=document.getElementById("ci_offer_price_type_"+posi);
    var priceType=selNode.value;
    var selClass=selNode.className;
    var prcInpNode=document.getElementById("ci_offer_price_amount_"+posi);
    
    if (priceType !== "edited") 
    {
        var url = 'ci_get_price_to_type.php';
        var data = "price_type=" + encodeURIComponent(priceType);
        data += "&supplier_aid="+encodeURIComponent(document.getElementById("ci_offer_supplier_aid_"+posi).value);
        var requestTmpl = getNewRequest();
        requestTmpl, data = setCommonRequestParams(requestTmpl, url, data, false);
        requestTmpl.send(data);
        var xmlDoc = requestTmpl.responseXML;
        var newPrice = xmlDoc.childNodes[0].getElementsByTagName("price")[0].firstChild.data;
        prcInpNode.value = ci_getShowPrice(newPrice);
    }
    unsetWait();
    prcInpNode.className=selClass;
}

function ci_getShowPrice(price)
{

	if(price >0)
	{
		price = new String(Math.round((price*100))/100);
		
				
		prcPosDif=price.length-price.search(/\./) -1;
		
		
		if(price.search(/\./)===-1)
		{
			price+=".00";
		}
		else if(prcPosDif===1)
		{
			price+="0";
		}
		else if(prcPosDif===0)
		{
			price+="00";
		}
		
		//auf 2 stellen nachm . abschneiden
		//Komma bzw. Punkt als Dezimaltrenner
		price=price.replace(/[^\d\.]/,"");
		price=price.replace(/\./,",");
		
	}
	else
	{
		price="0,00";
	}
	
	return price;
}

function ci_getCalcPrice(price)
{
    return new Number(price.replace(/\,/,"."));
}

