Array.prototype.upsideDown = function(){
    var tmp = new Array();
    for( var i = 0; i < this.length; i++ ){
        tmp.unshift(this[i]);
    }
    for( var i = 0; i < tmp.length; i++ ){
        this[i] = tmp[i];
    }
}
// Projektspezifische JS-Funktionen
function openPopup(url, ID, mediaID){
	//der array 'IstrListboxTargetPopupstyle' wird in der methode
	//MainOutputClass.GetClientJSPopupTargets() gefuellt...

	if ((mediaID > 0) && (ID == 197)) {
		url = "/main.aspx/G/" + GroupID + "/L/" + LangID + "/A/" + AreaID + "/ID/" + mediaID + "/V/media";
		window.open(url, "ePilotPopup"+ID, IstrListboxTargetPopupstyle[ID]);
	} else {
		//url += "/V/popup/PM/1";
		window.open(url, "ePilotPopup"+ID, IstrListboxTargetPopupstyle[ID]);
	}
}

function openContent(url,ID){
	switch(ID){
		case 4:
			parent.location.href = url;
			break;
		case 5:
			parent.window.opener.location.href = url;
			break;
	}
}

function RunSearch(formname, sourceelement, targetelement) {

  document.forms[formname].elements[targetelement].value = document.forms[formname].elements[sourceelement].value;
  document.forms[formname].submit();
}


/* Sensorenuebersicht Anfang */
var produktvergleich = new Array('', '', '');
var filter = new Array('', '', '', '', '');
var productcount = 0;

function CommitValue(objectID, submit, formname) {
    if (!objectID || objectID == "") {
        return;
    }
        
    var removed = false;
    
    // wenn element vorhanden, dann entfernen
    var done = false;
    for (var i = 0; i < 3; i++) {
        if (produktvergleich[i] == objectID) {
            produktvergleich[i] = "";
            productcount--;
            removed = true;
            DisableCheckBox("chk_" + objectID);
            done = true;
        }
        
        if (done) {
            break;
        }
    }

    done = false;
    if (!removed && (productcount < 3)) {
        // wenn bis hier gekommen, dann hinzufuegen
        for(i = 0; i < 3; i++) {
            //alert("inh: " + produktvergleich.length);
            if (produktvergleich[i] == "") {
                produktvergleich[i] = objectID;
                productcount++;
                EnableCheckBox("chk_" + objectID);
                done = true;
            } 
            
            if (done)
                break;
        }
    }
    
    if (productcount == 3) {
        // Feierabend
        DisableAllCheckboxes();
    } else {
        EnableAllCheckboxes();
    }
    
    produktvergleich.sort();
    produktvergleich.upsideDown();
    
    if (submit) {
        // Parameter Z2 setzen und Seite für Warenkorb neu laden
        if( !formname ){
            formname = "productselection";
        }
        document.forms[formname].elements["z2"].value = GetZValue();
        var zett = GetZValue();
        var zett2 = document.forms[formname].elements["z2"].value;
        document.forms[formname].submit();
    }
}

function removeProduct( objectid, formname, submit ){
    for( var i = 0; i < produktvergleich.length; i++ ){
        if( produktvergleich[i] == objectid ){
            produktvergleich[i] = "";
        }
    }
    if( submit ){
        var formular = document.forms[formname];
        if( formular ){
            document.forms[formname].elements["z2"].value = GetZValue();
            var testvalue = document.forms[formname].elements["z2"].value;
            document.forms[formname].submit();
        }
    }
}


function GetZValue() {
    var zvalue = "";
    for (i = 0; i < 3; i++) {
        if (i > 0)
            zvalue += ";";
        zvalue += produktvergleich[i];
    }
    
    return zvalue;
}

function GoCompareProducts(formname, singleID) {
    if (singleID && singleID > 0)
        AddCompareValue(singleID, 0);

    document.forms[formname].elements["z2"].value = GetZValue();
    document.forms[formname].elements["id"].value = FixID_produktvergleich;
    document.forms[formname].submit();
}


function InitProductDiff(value, formName) {
    if (value == 1) {
        if( document.forms[formName].elements['diff'].length > 0 ){
            document.forms[formName].elements['diff'][0].checked = true;
            document.forms[formName].elements['diff'][1].checked = false;
        }
        else{
            document.forms[formName].elements['diff'].checked = true;
        }
    }
    else {
        if( document.forms[formName].elements['diff'].length > 0 ){
            document.forms[formName].elements['diff'][0].checked = false;
            document.forms[formName].elements['diff'][1].checked = true;
        }
        else{
            document.forms[formName].elements['diff'].checked = false;
        }
    }
}


function DisableAllCheckboxes() {
    var elements = document.getElementsByTagName("input");

    for (i = 0; i < elements.length; i++) {
        if (elements[i].id) {
            if (elements[i].id && elements[i].id.indexOf("chk_") >= 0) {
                if (!IsCheckedElement(elements[i].id)) {
                    elements[i].disabled = true;
                }
            }
        }
    }
}

function EnableAllCheckboxes() {
    var elements = document.getElementsByTagName("input");

    for (i = 0; i < elements.length; i++) {
        if (elements[i].id && elements[i].id.indexOf("chk_") >= 0) {
            if (elements[i].disabled) {
                elements[i].disabled = false;
            }
        }
    }
}

function IsCheckedElement(controlID) {
    for(j = 0; j < 3; j++) {
        if (controlID == "chk_" + produktvergleich[j]) {
            return true;
        }
    }
    return false;
}

function DisableCheckBox(controlID) {
    if (document.getElementById(controlID))
        document.getElementById(controlID).checked = false;
}

function EnableCheckBox(controlID) {
    if (document.getElementById(controlID))
        document.getElementById(controlID).checked = true;
}




function InitProduktUebersicht(value) {
    //produktvergleich = value;
    
    // jetzt zerlegen und checken
    var values = value.split(";");
    
    // die values durchlaufen und prüfen, ob checkbox vorhanden, dann checken.
    for (m = 0; m < 3; m++) {
        CommitValue(values[m], false);
    }
    
    // wenn drei values erreicht sind, dann dürfen keine wieteren checkboxen klickbar sein.
    
}
/* Sensorenuebersicht Ende */

/* Sensorenvergleich Anfang */
//var produktvergleich = new Array('', '', '');
//var productcount = 0;


function InitProduktVergleich(value) {
    //produktvergleich = value;
    
    // jetzt zerlegen und checken
    var values = value.split(";");
    
    // die values durchlaufen und prüfen, ob checkbox vorhanden, dann checken.
    for (m = 0; m < 3; m++) {
        CommitValue(values[m], false);
    }
    
    // wenn drei values erreicht sind, dann dürfen keine wieteren checkboxen klickbar sein.
    
}
/* Sensorenvergleich Ende */


/*
 * FlashScript
 */
function ShowFlash(controlID, src, width, height, quality, bgcolor, align, params, transparent, container) {
	
    if (!align)
        align = "middle"
    if (!bgcolor)
        bgcolor = "#ffffff"
    if (!quality)
        quality = "high"

    var output = "";

    output += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"';

		
    if (width != '')
        output += ' width="' + width + '"';
    if (height != '')
        output += ' height="' + height + '"';
		
    output += ' id="' + controlID + '" align="' + align + '">';

    output += '<param name="allowScriptAccess" value="sameDomain" />';
    output += '<param name="movie" value="' + src + '" />';
    output += '<param name="quality" value="' + quality + '" />';
    output += '<param name="bgcolor" value="' + bgcolor + '" />';

    if (transparent)
        output += '<param name="wmode" value="transparent" />';

    var embedVars = "";
    if (params) {
        for(var i = 0; i < params.length; i++) {
            output += '<param name="' + params[i]['Key'] + '" value="' + params[i]['Value'] + '" />';
            embedVars += params[i]['Key'] + "=\"" + params[i]['Value'] + "\"";
        }
    }

    output += '<embed src="' + src + '" quality="' + quality + '"';
		
    if (transparent)
        output += ' wmode="transparent"';
        
    if (width != '')
        output += ' width="' + width + '"';
    if (height != '')
        output += ' height="' + height + '"'
		
    //output += ' bgcolor="' + bgcolor + '" name="' + controlID + '" align="' + align + '" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" ' + embedVars + '></embed>';
    output += ' bgcolor="' + bgcolor + '" name="' + controlID + '" align="' + align + '" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" ' + embedVars + '></embed>';

    output += '</object>';
    //alert(output);

    if (container)
        document.getElementById(container).innerHTML = output;
    else
        document.write(output);
}

/*
 * Sensoruebersicht
 */
var filter = new Array('', '', '', '', '', '', '', '', '');

function FilterProducts(formname) {
    // Das Array löschen.
    filter = new Array('', '', '', '', '', '', '', '', '');

    // Die selektierten Sensoren der Liste hinzufügen.
    filter[0] = document.forms[formname].elements["filterone"].value;
    filter[1] = document.forms[formname].elements["filtersecond"].value;

    filter[2] = document.forms[formname].elements["filterthird"].value;
    if (filter[2] == "-")
        return;
    
    filter[3] = document.forms[formname].elements["filterfourth"].value;
    filter[4] = document.forms[formname].elements["filterfifth"].value;
    filter[5] = document.forms[formname].elements["filtersixth"].value;
    filter[6] = document.forms[formname].elements["filterseventh"].value;
    filter[7] = document.forms[formname].elements["filtereight"].value;

    // Type des Sensors
    if (document.forms[formname].elements["filtertype"]) {
        for (var i = 0; i < document.forms[formname].elements["filtertype"].length; i++) {
            if (document.forms[formname].elements["filtertype"][i].checked)
                filter[8] = document.forms[formname].elements["filtertype"][i].value;
        }
    }

    // und ab
    document.forms[formname].elements["z"].value = filter.join(";");

    document.forms[formname].elements["p"].value = 0;
    //alert(document.forms[formname].elements["z"].value);
    document.forms[formname].submit();  
}

function UpdateTastweite( formname, btw, reflektor ){
    if( formname && btw ){
        var btwFinal = btw;
        document.forms[formname].elements["filterfourth"].value = btwFinal;
    }
}


function schieber(btw, reflector, formname) {
    // gesetzt werden die tastweite
    if (btw)
        document.forms[formname].elements["filtersixth"].value = btw;

    // und der reflektor
    if (reflector)
        document.forms[formname].elements["filterseventh"].value = reflector;
    
    // und das eine Auswahl über Schieberegler stattgefnden hat
    document.forms[formname].elements["filtereight"].value = 2;

    // Formular absenden
    FilterProducts(formname);
}


function InitSchieber(formname, path, width, height, container) {
    var refelctor = "gut";
    var btw = 0;
    var panel = 1;

//class="sensor-actuator-flash" 

    // Z auslesen
    var zval = document.forms[formname].elements["z"].value;
    filter = new Array('', '', '', '', '', '', '', '', '');
    filter = zval.split(';');
    
    // Wenn Werte für Schieber vorhanden, dann antsprechenden Layer setzen
    var type = 0;
    if (filter[8] && filter[8] != '') {
        type = filter[8];
    }
    // Immer eine Option vorgeben
    for (var i = 0; i < document.forms[formname].elements["filtertype"].length; i++) {
        if (document.forms[formname].elements["filtertype"][i].value == type)
            document.forms[formname].elements["filtertype"][i].checked = true;
    }

    if (filter[7] && filter[7] != '') {
        panel = filter[7];
        document.forms[formname].elements["filtereight"].value = panel;
    }
    if (filter[6] && filter[6] != '') {
        refelctor = filter[6];
        document.forms[formname].elements["filterseventh"].value = refelctor;
    }
    if (filter[5] && filter[5] != '') {
        btw = filter[5];
        document.forms[formname].elements["filtersixth"].value = btw;
    }

    // Panel aufdecken
    if (panel == 2)
        switchTab('sensortastweite', 'sensoractuator', 'navTastweite', 'navEmpfehlung', panel, formname);
    else
        switchTab('sensoractuator', 'sensortastweite', 'navEmpfehlung', 'navTastweite', panel, formname);
        
    // Schieber anzeigen, das kann nur mit JavaScript funktionieren
    var params = new Array();
    params[0] = new Object();
    params[0]['Key'] = "FlashVars";
    params[0]['Value'] = "tastweite="+ btw +"&reflektor="+ refelctor +"&formname="+ formname;
    ShowFlash('schiebe', path, width, height, 'high', '#FFFFFF', 'middle', params, false, container);
}

/*
 *  Produktvergleich
 */
function CompareProducts(formname) {
    // Das Array löschen.
    produktvergleich = new Array('', '', '');

    // Die selektierten Sensoren der Liste hinzufügen.
    AddCompareValue(document.forms[formname].elements["productselectionone"].value, 0);
    AddCompareValue(document.forms[formname].elements["productselectionsecond"].value, 1);
    AddCompareValue(document.forms[formname].elements["productselectionthird"].value, 2);
    
    // und ab
    GoCompareProducts(formname);
}

function AddCompareValue(objectID, index) {
    if (!objectID || objectID == "") {
        return;
    }
    
    if (index && index >= 0 && index < 3) {
        produktvergleich[index] = objectID;
    } else {
        var done = false;
        if (productcount < 3) {
            // wenn bis hier gekommen, dann hinzufuegen
            for(i = 0; i < 3; i++) {
                if (produktvergleich[i] == "") {
                    produktvergleich[i] = objectID;
                    productcount++;
                    done = true;
                } 
                
                if (done)
                    break;
            }
        }
    }
}

function JumpToProduct(formname, element) {
    var id = document.forms[formname].elements[element].value;
    
    if (id > 0) {
        document.forms[formname].elements["id"].value = id;
        document.forms[formname].submit();
    }
}


function opensensor(sensorname) {
    if (sensorname) {
        selectedSearchId = -1;
        document.forms["hiddenform"].elements["Z"].value = sensorname;
        document.forms["hiddenform"].elements["ID"].value = FixID_opensensor;
        document.forms["hiddenform"].submit();
    }
    else {
        //alert("nix");
    }
}


function CallForProduct(name, title, mail, subject, body, compare) {
    //mailto:larry,dan?cc=mike&bcc=sue&subject=test&body=type+your&body=message+here

    body = body.replace(/{=productname=}/g, title);
    subject = subject.replace(/{=productname=}/g, title);

    if (compare == name) {
        window.open("mailto:" + mail + "&subject=" + subject + " &body=" + body);
        return;
    } else {
        opensensor(name);
    }
}


function UO_SwapImage( imageId, imgSrc, debug ){
    var bild = document.getElementById(imageId);
    if( bild ){
        bild.src = imgSrc;
    }
    if( debug ){
        alert(debug);
    }
}



function UO_HideContainer(containerID, useBlock) {
    var container = UO(containerID);
    if (container) {
        container.style.visibility = "hidden";
        if (useBlock)
            container.style.display = "none";
    }
}

function UO_ShowContainer(containerID, useBlock) {
    var container = UO(containerID);
    if (container) {
        container.style.visibility = "visible";
        if (useBlock) {
            if (useBlock == true) {
                container.style.display = "block";
            }
            else if (typeof useBlock == "string") {
                container.style.display = useBlock;
            }
        }
    }
}

function UO_ToggleVisibility(containerID, useBlock) {
    var container = false;
    if ((typeof containerID).toLowerCase() == "object") {
        container = containerID;
    }
    else if ((typeof containerID).toLowerCase() == "string") {
        container = document.getElementById(containerID);
    }
    if (container) {
        if (container.style.visibility == "hidden") {
            UO_ShowContainer(container, useBlock);
        }
        else {
            UO_HideContainer(container, useBlock);
        }
    }
}

function UO(containerID) {
    var container = false;
    if ((typeof containerID).toLowerCase() == "object") {
        container = containerID;
    }
    else if ((typeof containerID).toLowerCase() == "string") {
        container = document.getElementById(containerID);
    }
    return container;
}


function ToggleGlossar(containerID, useBlock, ankerId) {
    UO_ToggleVisibility(containerID, useBlock);

    var anker = document.getElementById(ankerId);
    if (anker) {
        if (anker.className == "") {
            anker.className = "jumplinkan";
        }
        else {
            anker.className = "";
        }
    }
}