
/**
 * 
 *  @include "/QM-PORTAL/multimed/utils.js"
 *  @include "/QM-PORTAL/js/jQuery.js"
 * @type 
 */
var Workspace = {
    Debug: false
    ,Init: function ()
    {
        this.Debug = ( /debug=true/gi ).test (document.location.search);
        if (this.Debug) {
            this.Log = Log.Add;
            OINK.initApp();
            
            
            //First area, first tab, button.click
            //OINK.ShowItem('SortenBasisInfos');
            //OINK.PutIntoContainer(OINK.GetAjaxContent('ZuechtersortenHTML',jQuery('#zuechter').val(),false));
            
            
            //OINK.ShowItem('SortenNachKombiniertenKriterien');
            OINK.ShowItem('Sortenversuche');
            OINK.SortExperiments.GetControlMask('Sortenversuche_Auswahl_LSV1');
           // OINK.ShowExcelOrderMask();
           // OINK.PutIntoContainer(GetContent('SortenAusLsv1'), null, 341);
            
            //OINK.ShowItem('SortenNachEinzelkriterien');
            //showDiv2('div_hybridform_korntyp');
            
            //showUpDiv ("id_basisinfos");
            //OINK.PutIntoContainer(OINK.GetAjaxContent('SortenAusRegisterHTML','W',false));
            //OINK.PutIntoContainer(GetContent('SortenMitZulassungsjahrHTML'));
            //showDiv2('div_zulassungsland');
            
            //OINK.PutIntoContainer(OINK.GetAjaxContent('SortenMitZulassungslandHTML',jQuery('#zlaender_eu').val(),false));
            //javascript:OINK.PutIntoContainer(GetContent('ReifegruppeLSV'));
            
            //OINK.GetAjaxContent('SortenMitZulassungslandHTML','D');
            //OINK.GetAjaxContent('SortenstammdatenHTML','1398')
        }
    }
    ,Run: function (f)
    {
        if (!Workspace.Debug) return
        if (f) f.call()
    }
    ,ShowHtml: function (html)
    {
        if (!Workspace.Debug) return
        if (CurrentNavigator.isFirefox) 
        {
            var ta = $("_debugOutput");
            if (!ta) {
                ta = document.createElement ("TEXTAREA");
                with (ta.style){
                    width = "100%";
                    height = "100%";
                    position = "absolute";
                    left = "0px";
                    top = "0px";
                    zIndex = 10000;
                }
                document.body.appendChild(ta);
            }
            ta.style.display = "block";
            	ta.value = html;
           
        }
        else {
            var win = window.open ();
                setTimeout(function () { win.document.body.innerHTML = "<textarea style='width:100%; height:100%'>" +
                "<div>" + html + "</div></textarea>";
            }, 200);
        }
    }
    ,Log: function () {} 
    ,Alert : function (text) { if (this.Debug) alert (text) }
}


var WebServiceNameSpace = "http://localhost/sortenspiegel/";
          // Start of page
          /*
          jQuery(document).ready(function(){
            jQuery("#Zuechter").click(function () {
            OINK.GetAjaxContent("ZuechterAlleHTML");})
            jQuery("#Sortentabelle").ingrid({url: 'remote.html',height: 350 });

          });
          */
        
        var _userLevel = null;
        var _cboxConfig = {Title:"Übersicht aller Züchter / Sortenvertreter beim Deutsches Maiskomitee e.V. (DMK)",
                           Width:"80%",
                           Height:"90%",
                           SelectedItem: "",
                           AmountOfRecords: "",
                           WsMethod:""};
        
       
        var OINK = {
            WebService : WebServiceURL,         
            WebServiceNamespace : WebServiceNameSpace,
            _initialized: false,
            _colorbox : null,
            _cbxContent : "",
            _cbxConfig : "",
            _controlContainer : "",
            _controlContainerPrevious : "",
            _currentWsMethod: "",
            _isIE : (navigator.appName=="Netscape")?false:true,
            _SortExperiments: {
                YearsCount : 1
                ,Silo: false
                ,LSV: false
                ,MD5Hash: null
                ,CacheExists: false
                ,ReCheckCache: false
                ,SoapConfig : {}
            },
            _getResponseFromWS : function (Service,Parameters)  
            {
                var response = null; //SOAPClient.sendRequest(OINK.WebService,Service, Parameters, false, null);
                return response;
            
            },
            _deleteComboBox : function (obj) 
            {
                if (obj != null && obj.options.length!=0){
                    var a =  obj.options.length;
                    for (var i = 0; i < a; i++)  {
                        obj.options[obj.options.length-1] = null;
                    }
                }
            },
            _fillComboBox : function (box,cache,textname,valuename,defaultselectvalue)
            {
                if (cache==null) return;
                OINK._deleteComboBox(box);
                var val = "";
                for (var i=0; i<cache.length; i++)
                {
                        val = new String(cache[i][valuename]);
                        if (defaultselectvalue!= null && defaultselectvalue==cache[i][valuename])
                            option = new Option(cache[i][textname], val,false,true);
                        else
                            option = new Option(cache[i][textname], val);
                        try
                        {
                            box.options[box.options.length] = option;
                        }catch(e){}
                }
            },
            initApp : function ()
            {
                if (OINK._initialized) return
                
                //Prevent selecting
                jQuery(document.body).bind("selectstart", function (e) {
                    if (!e) return true
                    var src = e.srcElement;
                    if (!src) return true
                    if (src.id == "cboxWrapper" || 
                        jQuery(src).parents("#cboxWrapper").length > 0 
                        ) return false
                    
                
                    return true
                });
                
                jQuery('#sp_navibox').show();
                jQuery('#sortenbox').show();
                
                jQuery('#Merkzettel').show();
                jQuery('#MerkzettelHeader').show();
                if(_userLevel && _userLevel.ZRecht > 0)
                {
                    jQuery('#FavSortList').show();
                    FavoritesManager.Load();
                    jQuery('#FavSortListHeader').show();
                }
                
                
                //Display the excel order link
                if (CurrentUserInfo && CurrentUserInfo.IsLogged == true && 
                	_userLevel && _userLevel.ZRecht == 3)
                {
                
                	/*if (false){
                	var rex = /(E50C8006-9CB0-44B0-B5C6-2F7ADE0A9C08|7A3EFDFF-DC67-4D1E-895E-334992E765FB|DE9C0A9B-BBFB-4284-AD23-39D699A07ADC|CE102778-F0B0-42CF-BC79-A4D7F9AAC5A9|C60AF964-1A38-4178-94B7-BB67FD8229A3|A85779D8-1CE3-4733-9A2D-C03C3C41BCF1|2F8CF51B-094A-402D-BE7B-E63CB9006B5B|8AA56357-F260-4DE8-8BD4-F67415FB5A1E|8C4FDB47-65C7-4757-AA6A-B53265B2CF93|8C4FDB47-65C7-4757-AA6A-B53265B2CF93)/gi;
					if (rex.test(CurrentUserInfo.UserIndex))*/
                		$("rightMenu_excelorderlink").style.display = "";
                	//}
                }
      
                OINK._initialized = true;
            }
            ,GetPrintVersion : function ()
            {
                var printHTML = "";
                //Check the results length 
                if (_cboxConfig && _cboxConfig.AmountOfRecords && 
                    _cboxConfig.AmountOfRecords > 400)
                    {
                        if (!confirm ("Die aktuelle Ergebnisliste ist zu lang. Das Erstellen der Druckversion kann u. U. einige Minuten in Anspruch nehmen. Möchten Sie trotzdem fortfahren?"))
                            return;
                            
                    }
                    
                //Is there a wrapper?
                if (jQuery("#OutputContainer").find(".tablescroll_wrapper").length==0)
                    printHTML = $("OutputContainer").innerHTML
                else    
                    printHTML = PdfPrintManager.GetHtml (
                        jQuery("#OutputContainer").find(".tablescroll_wrapper")[0].firstChild
                        ,jQuery("#OutputContainer").find(".tablescroll_head")[0] 
                        );//jQuery("#ContentArea").html() || " ";
                
                //Do some adjustments here
                //printHTML = ...
                printHTML = printHTML;
                
                OINK.OpenPrintVersion(printHTML, jQuery("#OutputContainerHead").html() || "Sortenspiegel")
            }
            ,GetColorboxPrintVersion : function ()
            {
                
                window.startTime = new Date();
                
                var printHTML = "", printAtOnce = true, 
                    md5Hash = null, cacheExists = false;
                //Check the results length 
                if (_cboxConfig && _cboxConfig.AmountOfRecords && 
                    _cboxConfig.AmountOfRecords > 400)
                    {
                        if (!confirm ("Die aktuelle Ergebnisliste ist zu lang. Das Erstellen der Druckversion kann u. U. einige Minuten in Anspruch nehmen. Möchten Sie trotzdem fortfahren?"))
                            return;
                            
                    }
                
                    
                //Check content type
                /* Sort info */
                if (jQuery("#cboxLoadedContent").find("#BslEinstufungen")[0])
                {
                    printHTML = PdfPrintManager.GetInfoTableHtml(
                        jQuery("#BslEinstufungen")[0]
                    );
                    
                    /*if (Workspace.Debug){
                    
                        var debugWin = window.open ("about:blank", "DebugWindow");
                        setTimeout( 
                        function ()
                        {
                            var doc = debugWin.document;
                            var ta = doc.createElement( "TEXTAREA");
                            doc.body.appendChild(ta);
                            ta.value = printHTML;
                            var div = doc.createElement ("DIV");
                            div.innerHTML = printHTML;
                            doc.body.appendChild(div);
                        }
                        ,200);
                    }*/
                }
                /* Sorts list */
                else if (jQuery("#cboxLoadedContent").find(".tablescroll_wrapper")[0])
                {
                
                    printHTML = PdfPrintManager.GetHtml (
                    jQuery("#cboxLoadedContent").find(".tablescroll_wrapper")[0].firstChild
                    ,jQuery("#cboxLoadedContent").find(".tablescroll_head")[0]
                    
                    );
                    //Do some adjustments here
                    printHTML = printHTML;
                }
                /* Sorts experments */
                else if (jQuery("#cboxLoadedContent").find("#SortExperimentsResultsContainer")[0])
                {
                    //Check for cache
                    
                    printAtOnce  = false;
                    
                    function _preparePrint ()
                    {
                        if (!OINK._currentWsMethod)
                                    OINK._currentWsMethod = "Sortenversuche";
                                
                                printHTML = PdfPrintManager.GetSortExperimentsHtml (
                                    jQuery("#cboxLoadedContent")[0]                    
                                );
                                //Do some adjustments here
                                printHTML = printHTML;
                                
                                _finishPrinting();
                    }
                    
                    //Re-check cache?
                    if (OINK._SortExperiments.ReCheckCache)
                    {
                    	var data = "", param, paramVal, resp;
                    	for (param in OINK._SortExperiments.SoapConfig)
                    	{
                    		paramVal = OINK._SortExperiments.SoapConfig[param];
                    		if (typeof(paramVal) == "object")
                    			paramVal = Object.serialize (paramVal);
                    			
                    		data += (data!=""?"&":"") +
                    			param +"=" + (paramVal!=undefined ? 
                    				encodeURIComponent(paramVal) : "");
                    	}
                    	
                    	resp =  jQuery.ajax({
							url: "/sortenspiegel/Sortenspiegel.asmx/CacheExists",
							async: false,
							dataType: "json",
							type: "POST",
							"data": data//, string Kategorie, string Sorten, int Jahrgang, bool Silo, bool Korn,
          					 	// bool DE, bool EU, int AnzahlJahre, string Gehaltswerte, bool Excelversion, string SiloOrder, string KornOrder,
        					  	// string SiloSortOrder, string KornSortOrder, string BLKZ, int Reifegrp, int SRZ, int KRZ)
							});
						
						resp = (resp.responseText+"");
						if (resp.startsWith ("{") && resp.endsWith ("}"))
						{
							resp = window.eval ("resp = " + resp);
							Workspace.Alert($$(resp))
							OINK._SortExperiments.CacheExists = resp.exists;
							OINK._SortExperiments.MD5Hash = resp.md5Hash;							
						}
						else 
						{
							Workspace.Alert(resp);
							OINK._SortExperiments.CacheExists = false;
						}
												
                    }
                    
                    if (OINK._SortExperiments.CacheExists)
                    {   
                        printAtOnce  = false;
                        md5Hash = OINK._SortExperiments.MD5Hash;
                        cacheExists = true;
                        _finishPrinting();
                        return;
                    }
                    else 
                    {
                        md5Hash = OINK._SortExperiments.MD5Hash;
                        cacheExists = false;                    
                    
                        if (int(OINK._SortExperiments.YearsCount)>1)
                        {
                            printAtOnce  = false;
                            if (confirm ("Die Generierung der Druckversion kann u. U. einige Minuten in Anspruch nehmen.\nFortfahren?"))
                            {
                                _preparePrint ()
                            }
                        }
                        else 
                            _preparePrint ()
                    }
                    
                    
                    
                }
                else 
                {
                    printHTML = jQuery("#cboxLoadedContent").html();
                    Workspace.Alert("##### NOT SUPPORTED #####\n" + printHTML)
                    
                }
                
                function _finishPrinting ()
                {
                    
                    //Set the images src to the current web application
                    if (printHTML) 
                    {
                        printHTML = printHTML.replace (new RegExp ("/web/images/sortenspiegel/sdb/bsl/", "gi"), 
                                "/sortenspiegel/images/sdb/bsl/");                      
                        
                        printHTML = printHTML.replace (new RegExp ("/web/images/sortenspiegel/laender/", "gi"), 
                                "/sortenspiegel/images/laender/");                      
                    
                        printHTML = printHTML.replace (new RegExp ("/web/images/sortenspiegel/tbl_header/", "gi"), 
                                "/sortenspiegel/images/tbl_header/");                       
                        printHTML = printHTML.replace (new RegExp ('="images/sortenspiegel/tbl_header/', "gi"),
                                '="/sortenspiegel/images/tbl_header/');                     
                            
                        printHTML = printHTML.replace (new RegExp ("/web/images/sortenspiegel/", "gi"), 
                                "/sortenspiegel/images/");                      
        
                        printHTML = printHTML.replace (new RegExp ('="images/sortenspiegel/', "gi"), 
                                '="/sortenspiegel/images/');                        
                                
                        printHTML = printHTML.replace (new RegExp ("http://" + document.location.host, "gi"), "");
                        
                        
                    }
                    
                    //Workspace.Log(HtmlEncode (printHTML))
                    
                    if (OINK._currentWsMethod.indexOf("Sortencheck")==0)
                    {
                        if (jQuery ("#ContainerSortencheckAuswahl").html())
                        {
                            printHTML = "<strong>Gewählte Parameter:</strong>" + 
                                "<DIV style='margin-top:5px;margin-bottom:10px;margin-left:20px;color: green '>" + 
                                    Trim(jQuery ("#ContainerSortencheckAuswahl").html()) + 
                                "</DIV>" + printHTML;
                        }
                    }
                    
                    OINK.OpenPrintVersion(printHTML, jQuery("#cboxTitle").html() || "Sortenspiegel", 
                        md5Hash, cacheExists)
                        
                    return;
                }
                
                if (printAtOnce)
                    _finishPrinting()
                
            }
            ,OpenPrintVersion : function (printHTML, title, md5Hash, cacheExists)
            {
                if (printHTML == "" && cacheExists!==true) return
                
                Workspace.ShowHtml(printHTML); 
                //if (Workspace.Debug) return
                //Put your html contents here
                jQuery("#pdfPrintContents").val (printHTML);
                //Put your pdf document title here
                jQuery("#pdfPrintTitle").val (title);
                //Turning header repeating off?
                
                
                jQuery ("#headerRepeating").val ((
                    (
                        OINK._currentWsMethod == "Sortenversuche" ||
                        OINK._currentWsMethod == "Sortencheck" ||
                        OINK._currentWsMethod == "SortencheckExp" ||
                        OINK._currentWsMethod == "SortenversucheLSV")
                        
                    ? "false" : "true"));
                
                var template = "Default.xml";
                
               
                switch (OINK._currentWsMethod)
                {   
                    case "SortenMitZulassungslandHTML":
                    case "Sortencheck":
                    case "SortencheckExp":
                    case "SortenAusRegisterHTML":
                        template = "Landscape.xml";
                        break;
                    case "Sortenversuche":
                        if (int(OINK._SortExperiments.YearsCount) > 1 && 
                            OINK._SortExperiments.TypeSilo)
                        {
                            template = "LandscapeLSVEUP.xml";
                        }
                        else 
                        {
                            template = "PortraitLSVEUP.xml";
                        }
                }
                  
                //Check area
                
                //Put your pdf document template here
                jQuery("#pdfPrintTemplate").val (template);
                
                jQuery("#htmlCacheExists").val ((cacheExists ? "true" : "false"));
                jQuery("#md5Hash").val ((md5Hash ? md5Hash : ""));
               
                //DownloadManager.Start ();
                jQuery("#pdfPrintForm").submit();
            }
            ,SortExperiments: {
            	SoapConfig: {
                    LSV:            "true",
                    Kategorie:      "standard",
                    Sorten:         null,
                    Jahrgang:       30,
                    Silo:           "true",
                    Korn:           "true",
                    DE:             "true",
                    EU:             "true",
                    AnzahlJahre:    "1",
                    Gehaltswerte:   "rel",
                    Printversion:   "false",
                    SiloOrder:      "0",
                    KornOrder:      "0",
                    SiloSortOrder:  "DESC",
                    KornSortOrder:  "DESC",
                    Excelversion: 	"false",
                    BLKZ:           "BW",
                    Reifegrp:       "0",
                    SRZ:            "0",
                    KRZ:            "0"
                }
                ,GetControlMask: function (id)
                {
                    var control = "";
                    OINK.CleanOutputContainer();
                    control = OINK._callWebservice("GetControlHTML",{ParameterName:"Control",ParameterValue:id});
                    if (!$('id_controlmask')) return
                    $('id_controlmask').innerHTML = control;
                    //jQuery('#id_controlmask').html(control);
                    jQuery('#id_basisinfos').hide();
                    jQuery('#id_zuechter').hide();
                    jQuery('#id_controlmask').show(); 
                    if(_userLevel && _userLevel.ZRecht ==3)
                    {
                        try{
                        	//var rex = /(E50C8006-9CB0-44B0-B5C6-2F7ADE0A9C08|7A3EFDFF-DC67-4D1E-895E-334992E765FB|DE9C0A9B-BBFB-4284-AD23-39D699A07ADC|CE102778-F0B0-42CF-BC79-A4D7F9AAC5A9|C60AF964-1A38-4178-94B7-BB67FD8229A3|A85779D8-1CE3-4733-9A2D-C03C3C41BCF1|2F8CF51B-094A-402D-BE7B-E63CB9006B5B|8AA56357-F260-4DE8-8BD4-F67415FB5A1E|8C4FDB47-65C7-4757-AA6A-B53265B2CF93|8C4FDB47-65C7-4757-AA6A-B53265B2CF93)/gi;
							//if (rex.test(CurrentUserInfo.UserIndex))
								jQuery('#div_excel').show();
                        	
                        }
                        catch(e){}
                    }
                }
                ,GetResults: function()
                {
                    var htmlText = OINK._callWebservice('SortenversuchSiloHTML',''); 
                    
                    jQuery.fn.colorbox({html: htmlText,
                        open:true,
                        width:1030,
                        height:'80%'});
                    
                    if (!$("cboxPrint").onclick) $("cboxPrint").onclick = OINK.GetColorboxPrintVersion;
                
                }
                ,GetResultsWithParams: function (params, launchExcelExport) 
                {
                	OINK._currentWsMethod = "Sortenversuche";
                	
                	//User logged ?
                	if (!CurrentUserInfo || !CurrentUserInfo.IsLogged) return;
                	
                	if (typeof (params) == "string")
                		params = window.eval ("params = " + params);
                	
                   //Set default values
                    params = applyDefault (params, OINK.SortExperiments.SoapConfig);
                    params.SiloOrder = params.KornOrder = "0";
                    params.SiloSortOrder = params.KornSortOrder = "DESC"
                    	
                    //Workspace.Alert($$(params));
                    OINK._SortExperiments.ReCheckCache = false;
                    OINK._SortExperiments.LSV = params.LSV == 'true';
					OINK._SortExperiments.YearsCount = params.AnzahlJahre;
					OINK._SortExperiments.TypeSilo = params.Silo == "true";
					OINK._SortExperiments.SoapConfig = params;
					OINK._SortExperiments.Type2 = (params.Kategorie == "sorten_im_lsv" || params.Kategorie == "sorten_in_eup");
					
                    var soapParams = [], para,
                    	ajaxParams = "user=" + CurrentUserInfo.UserIndex,
                    	boxTitle = params.LSV =="true" ? "<b>Ergebnisse der Landessortenversuche (LSV)</b>" :
           					 "<b>Ergebnisse der EU-Sortenprüfung (EUP) für Mais</b>";
           					 
                    for (para in params) {
                    	ajaxParams+= (ajaxParams!="" ? "&":"") + para +"=" + params [para];
                        soapParams.push({ ParameterName: para, ParameterValue: params [para]})
                    }
                    
                    //Excel order?
                    if ((launchExcelExport+"")=="true")
                    {
                    	
                    	if(_userLevel && _userLevel.ZRecht ==3)
                    	{
	                    	jQuery.ajax({
								url:  "/Sortenspiegel/ExcelService.asmx/Create",
								type: "POST",
								dataType: "html",
								data: ajaxParams,
								complete: function( res, status ) {
									
									if (status == "success")
									{
										setTimeout (function () {
										alert ("Die gewählten Daten werden Ihnen in wenigen Minuten in einer Excel-Datei per Email zugestellt.");	
										},1000);
									}
									else {
										alert (res.responseText)
									}
								}
	                    	})
                    	}
                    }
                    
                    var result =  OINK._callWebservice("SortenversuchHTML",
                        soapParams);
                        
                    
                    var tableWidth = 800, 
                        tableHeight = ((document.documentElement || document.body)).clientHeight 
                            - 60;
                    
                    switch (params.AnzahlJahre)
                    {
                        case "1":
                            tableWidth = (params.Silo == "true" ? 830 : 600);
                            break;
                        case "2":
                            tableWidth = (params.Silo == "true" ? 830 : 800);
                            break;
                        case "3":
                            tableWidth = (params.Silo == "true" ? 1100 : 1000);
                            break;
                    }
                    //Get html hash
                    var rexHash = /<input type='hidden' id='_currentHtmlHash' value='([a-z0-9]+)' exists='([a-z]+)'>/gi;
                    var htmlHash = null, cacheExists = false; 
                    if (rexHash.exec(result))
                    {
                        htmlHash = RegExp.$1;
                        cacheExists  = RegExp.$2 == 'true';
                        
                        if (htmlHash)
                        {
                            OINK._SortExperiments.MD5Hash = htmlHash;
                            OINK._SortExperiments.CacheExists = cacheExists;
                        }
                    }
                    
                    jQuery.fn.colorbox({html:result,
                        height: tableHeight,
                        width:  tableWidth,title:boxTitle});
                    if (!$("cboxPrint").onclick) $("cboxPrint").onclick = OINK.GetColorboxPrintVersion;
                    
                    
                    //Add sorting functionality
                    GridView.Sorting.Extend(jQuery ("#cboxWrapper").find ("#cboxLoadedContent")[0])
                    
                }
            }
            ,SortCheck: {
                GetResults: function (suffix)
                {
                    OINK._currentWsMethod = "Sortencheck" + (suffix || "");
                    
                    var tab = GetContent(OINK._currentWsMethod); 
                    //OINK.PutIntoContainer(GetContent('SortencheckExp'));
                    jQuery.fn.colorbox({html: tab, width: 1025, height: 600, 
                        title: "&nbsp;"}); 
                    
                    setTimeout(function () {
                        jQuery("#cboxTitle").html(_cboxConfig.AmountOfRecords + " Ergebnis" + 
                        (_cboxConfig.AmountOfRecords == 1 ? "": "se") + " beim Sortencheck")
                    }, 500);
                    
                    
                    if (!$("cboxPrint").onclick) $("cboxPrint").onclick = OINK.GetColorboxPrintVersion;
               
                }
            }
            ,CleanOutputContainer : function()
            {
                jQuery('#OutputContainerHead').html('');
                jQuery('#OutputContainer').html('');
                jQuery('#OutputContainerHead').show();
                jQuery('#OutputContainer').show();
                jQuery('#AjaxWait').hide();
            },
            // Add & remove Crops from favs
            Merkzettel : function(Sortenname, Sortenindex)
            {
                var _wsName = "SortenstammdatenByNameHTML";
                var _link = "<span id='mzettel'><a title='Sortenstammdaten anzeigen' alt='Sortenstammdaten anzeigen' id='"+Sortenname+"' brandIndex='" + Sortenindex + "' href='javascript:void(0);' onclick='OINK.GetAjaxContent(\""+_wsName+"\",\""+Sortenname+"\");'>"+Sortenname+"</a><br></span>";
                    
                if(jQuery('#Merkzettel span:contains('+Sortenname+')').length==0)
                {
                     jQuery('#Merkzettel').append(_link);
                }
                else
                {
                     jQuery('#Merkzettel span:contains('+Sortenname+')').replaceWith("");
                    
                    if (jQuery('#input_'+Sortenname).attr('checked'))
                        jQuery('#input_'+Sortenname).attr('checked',false)
                }
                
                var list = document.getElementsByTagName('span');
                var val = [];
                for (var i=0; i < list.length; i++)
                {
                    if (list[i].id == "mzettel")
                    {
                        val.push("<span id='mzettel'>"+ list[i].innerHTML + "</span>");
                    }
                
                }
                val.sort();
                jQuery('#Merkzettel').html("");
                var td_row = "<tr><td>__SORTLINK__</td><td>"+
                "<td><a href='javascript:void(0);' onclick='OINK.Merkzettel(\"__SORTENNAME__\")'><img src='images/sortenspiegel/elemente/trashcan.gif' width=20 height=20 border=0 alt='Sorten entfernen' title='Sorte entfernen'</a></td>"+
                "<td>&nbsp;</td></tr>";
                if(_userLevel.ZRecht > 0)
                 td_row = "<tr><td>__SORTLINK__</td><td>"+
                    "<td><a href='javascript:void(0);' onclick='OINK.Merkzettel(\"__SORTENNAME__\", __SORTENINDEX__)'><img src='images/sortenspiegel/elemente/trashcan.gif' width=20 height=20 border=0 alt='Sorten entfernen' title='Sorte entfernen'</a></td>"+
                    "<td><a href='javascript:void(0);' onclick='OINK.Favorite(\"__SORTENNAME__\", __SORTENINDEX__)'><img src='images/sortenspiegel/elemente/favoriten.gif' width=15 height=15 border=0 alt='Sorte zu den Favoriten hinzuf&uuml;gen' title='Sorten zu den Favoriten hinzuf&uuml;gen'></a></td></tr>";
                

                   
                for(var i= 0;i<val.length;i++)
                {
                   var sorte = jQuery(val[i]).find('a').text ();
                   var row = td_row.replace("__SORTLINK__",val[i]);
                   row = row.replace(new RegExp(/__SORTENNAME__/g),sorte);
                   row = row.replace(new RegExp(/__SORTENINDEX__/g),jQuery(val[i]).find('a').attr("brandIndex"));
                   
                   jQuery('#Merkzettel').append(row);
                }
                jQuery('#Merkzettel').wrapInner('<table>');
            },
            Favorite : function(Sortenname, Sortenindex, noSaving, forceRemove)
            {
                //Save the favorite on the server
                
                var _wsName = "SortenstammdatenByNameHTML";
                var _link = "<span id='favlist'><a title='Sortenstammdaten anzeigen' alt='Sortenstammdaten anzeigen' id='"+Sortenname+"'  brandIndex='"+Sortenindex+"' href='javascript:void(0);' onclick='OINK.GetAjaxContent(\""+_wsName+"\",\""+Sortenname+"\");'>"+Sortenname+"</a><br></span>";
                
                if(jQuery('#FavSortList span:contains('+Sortenname+')').length==0)
                {
                    if (noSaving !==true) FavoritesManager.Add(Sortenindex);
                    jQuery('#FavSortList').append(_link);
                }
                else 
                {
                    if (forceRemove === true)
                    {
                        FavoritesManager.Remove(Sortenindex);
                        jQuery('#FavSortList span:contains('+Sortenname+')').replaceWith("");
                    }
                }
                var list = document.getElementsByTagName('span');
                var val = [];
                for (var i=0; i < list.length; i++)
                {
                    if (list[i].id == "favlist")
                    {
                        val.push("<span id='favlist'>"+ list[i].innerHTML + "</span>");
                    }
                
                }
                val.sort();
                jQuery('#FavSortList').html("");
                var td_row = "<tr><td>__SORTLINK__</td><td>"+
                "<td><a href='javascript:void(0);' onclick='OINK.Favorite(\"__SORTENNAME__\", __SORTENINDEX__, false, true)'><img src='images/sortenspiegel/elemente/trashcan.gif' width=20 height=20 border=0 alt='Sorten entfernen' title='Sorte entfernen'</a></td></tr>";
                
                for(var i= 0;i<val.length;i++)
                {
                   var sorte = jQuery(val[i]).find('a').text ();
                   var row = td_row.replace("__SORTLINK__",val[i]);
                   row = row.replace(new RegExp(/__SORTENNAME__/g),sorte);
                   row = row.replace(new RegExp(/__SORTENINDEX__/g),jQuery(val[i]).find('a').attr("brandIndex"));
                   
                   jQuery('#FavSortList').append(row);
                }
                jQuery('#FavSortList').wrapInner('<table>');
                

            },
            ShowItem : function (item)
            {
            	//Excluded functions
            	var excludedFunctions =  ['Sortenversuche'];
            	
            	
            	if (true &&
            		isInArray(excludedFunctions, item)
            	)
				{
            		var rex = /(E50C8006-9CB0-44B0-B5C6-2F7ADE0A9C08|7A3EFDFF-DC67-4D1E-895E-334992E765FB|DE9C0A9B-BBFB-4284-AD23-39D699A07ADC|CE102778-F0B0-42CF-BC79-A4D7F9AAC5A9|C60AF964-1A38-4178-94B7-BB67FD8229A3|A85779D8-1CE3-4733-9A2D-C03C3C41BCF1|2F8CF51B-094A-402D-BE7B-E63CB9006B5B|8AA56357-F260-4DE8-8BD4-F67415FB5A1E|8C4FDB47-65C7-4757-AA6A-B53265B2CF93|8C4FDB47-65C7-4757-AA6A-B53265B2CF93)/gi;
					if (true || rex.test(CurrentUserInfo.UserIndex))
					{
                		
                	}
                	else return alert ('Momentan wegen Wartungsarbeit nicht verfügbar');
            	}	
                if ($("pagePrintButtonContainer"))
                {
                    $("pagePrintButtonContainer").style.display = (
                        item!="Sortenversuche" && 
                            item.indexOf ("Sortencheck") == -1 ? "block" : "none");
                }
                    
                if(_userLevel.ZRecht == 0 && item!="SortenBasisInfos")
                {
                    jQuery.fn.colorbox({html:this._callWebservice("GetNoAccessMessage")});
                    return;
                }
                
                this.CleanOutputContainer();
                if (jQuery('#sp_intro').show())
                    jQuery('#sp_intro').hide();
                if (item == this._controlContainerPrevious)
                    return;
                else
                {
                   jQuery("#"+item).hide(1200);
                   this._controlContainerPrevious = item;
                }
                //jQuery("#ControlContainer").wait(200).hide(2000);
                /*
                switch(item)
                {
                    case "Sorten-Basis-Infos" :
                    */
                        
                       
                        //jQuery("#ControlContainer").hide("slow");
                        
                        this._controlContainer = this._callWebservice("GetControlHTML",{ParameterName:"Control",ParameterValue:item});
                        jQuery("#ControlContainer").html(this._controlContainer);
                        jQuery("#"+item).show();
                        
                        //Do some initializing of the forms
                        var a = jQuery('select');
                        
                        for (var i=0; i<a.length;i++)
                        {
                            if (a[i].id != "ks_reifegrp" && a[i].id != "ks_krz" && a[i].id != "ks_srz")
                            {
                
                                jQuery(a[i]).change(function(){ AddChoice(this);});
                            }
                        }


                  /*
                        break;
                    
                }*/
            },
            PutIntoContainer : function (obj)
            {
                
                if (!!obj)
                {
                    
                    
                 
                 
                    //jQuery('#OutputContainer').hide();
                    var str = new String(obj);
                    jQuery('#OutputContainer').html(obj);
                    
                    var anzahlDaten = _cboxConfig["AmountOfRecords"]!=""?" ("+_cboxConfig["AmountOfRecords"]+" Ergebnisse) ":"";
                    jQuery('#OutputContainerHead').html( _cboxConfig["Title"] + _cboxConfig["SelectedItem"] + anzahlDaten );
                    
                    if (str.indexOf("Leider ") == -1)
                    {
                        var defaultHeight = 400;
                        //alert(_cboxConfig["WsMethod"]);
                         
                       
                        switch(_cboxConfig["WsMethod"])
                        {
                            
                            case "SortenMitReifezahl" :
                            case "SortenMitReifegruppe" : 
                            case "SortenMitNutzungsrichtung" :
                            case "SortenMitHybridtyp" : 
                            case "SortenMitKornform" :
                                defaultHeight = 335;
                                break;

                            case "Zulassungsland" :
                                defaultHeight = 382;
                                break;    

                            case "SortenAusRegister" :
                                defaultHeight = 339;
                                break;                                                             

                            case "SortenAusLsv" :
                                
                                if (this.PutIntoContainer.arguments.length==2)
                                {
                                    defaultHeight = 360;
                                }
                                else if (this.PutIntoContainer.arguments.length > 2)
                                {
                                    defaultHeight  = this.PutIntoContainer.arguments [2]
                                }
                                else 
                                    defaultHeight = 349;
                            
                                break;

                            case "SortenMitZulassungsjahr" :
                                defaultHeight = 360;
                                break;

                            default:
                                defaultHeight = 339;
                                break;
                        }
                        //alert(_cboxConfig["WsMethod"] + " Höhe " + defaultHeight);
                        jQuery('#Sortentabelle').tableScroll({height:defaultHeight,width:712});
                    }
                    else
                        jQuery('#OutputContainerHead').html('');
                    jQuery('#AjaxWait').hide(); 
                    //jQuery('#OutputContainer').show();
                    
                    //Add sorting functionality
                    GridView.Sorting.Extend(jQuery ("#OutputContainer").find ("#ContentArea")[0])
                    
                }
            },
            GetSortByName: function (sortName)
            {
                if (!sortName)
                {
                    return alert ("Geben Sie zuerst einen Sortennamen ein!")
                }
                
                OINK.GetAjaxContent("SortenstammdatenByNameHTML", sortName, true);
            }
            ,GetAjaxContent : function (wsMethod,wsParameter,openColorbox)
            {
                OINK._currentWsMethod = wsMethod;
        
              if(wsParameter=='-1' || wsParameter=='-' )
                return;
              
              jQuery('#AjaxWait').show();
                
                
              switch(wsMethod)
              {

                  case "SortenMitZulassungsjahrHTML" :
                  
                    
                    this._cbxContent = this._callWebservice(wsMethod,[{ParameterName: "Jahr",ParameterValue:wsParameter},{ParameterName: 'DE',ParameterValue:'true'},{ParameterName:'EU',ParameterValue:'true'}]);
                    break;    
                  case "SortenMitZulassungsjahrHTML2" :
                    this._cbxContent = this._callWebservice(wsMethod,{ParameterName:"Jahr",ParameterValue:wsParameter});
                    break;
                  case "SortenMitZulassungsjahrHTML3" :
                    this._cbxContent = this._callWebservice('SortenMitZulassungsjahrHTML',wsParameter);
                    break;                                         
                  case "SortenAusRegisterHTML" :
                    this._cbxContent = this._callWebservice(wsMethod,{ParameterName:"Letter",ParameterValue:wsParameter});
                    break;
                  case "ZuechterAlleHTML" :
                    wsParameter = null;
                    this._cbxContent = this._callWebservice(wsMethod);
                    break;
                  case "SortenstammdatenHTML" :
                    
                    this._cbxContent = this._callWebservice(wsMethod,{ParameterName:"SortenIndex",ParameterValue:wsParameter});
                    break;
                  case "SortenstammdatenByNameHTML" :
                  this._cbxContent = this._callWebservice(wsMethod,{ParameterName:"SortenName",ParameterValue:wsParameter});
                    break;
                  case "ZuechtersortenHTML" :
                    this._cbxContent = this._callWebservice(wsMethod,{ParameterName:"Zuechterindex",ParameterValue:wsParameter});
                    break;
                  case "SortenMitReifezahlHTML" :
                    this._cbxContent = this._callWebservice(wsMethod,wsParameter);
                    break;                    
                    
                  case "SortenMitZulassungslandHTML" :
                    this._cbxContent = this._callWebservice(wsMethod,{ParameterName:"Land",ParameterValue:wsParameter});
                    break;
                  case "SortenMitHybridtypHTML" :
                    this._cbxContent = this._callWebservice(wsMethod,{ParameterName:"HT_Idx",ParameterValue:wsParameter});
                    break;
                  case "SortenMitKornformHTML" :
                    this._cbxContent = this._callWebservice(wsMethod,{ParameterName:"KT_Idx",ParameterValue:wsParameter});
                    break; 
                  case "SortenMitReifegrupperHTML" :
                    this._cbxContent = this._callWebservice(wsMethod,wsParameter);
                    break;                   
                  default:
                   
                   this._cbxContent = this._callWebservice(wsMethod,wsParameter);
                      break;
              }
                
              if(!!this._cbxContent)
              {
              
                //Fix html
                this._cbxContent = String(this._cbxContent).replace (
                    /<\/tr>[ \r\n]*<\/tr>/gi, '</tr>');
                    
                if (openColorbox!=null && openColorbox==false &&  
                    wsMethod != "SortenstammdatenByNameHTML")
                { 
                    return this._cbxContent;
                }
                jQuery("#ColorboxContainer").html ("");
                
                jQuery('#OutputHidden').html(
                    this._cbxContent.replace('Sortentabelle','newid').replace
                        ('ContentArea', 'newContentArea'));
                
                
               
                
                
                var currentCboxConfig = window._cboxConfig;
                
               
                var usingNewMethod = false;
                    
                switch (OINK._currentWsMethod)
                {
                    case "SortenMitReifezahlSiloHTML":
                    case "SortenMitReifezahlHTML":
                    case "SortenMitHybridtypHTML":
                    case "SortenMitReifezahlKoernerHTML":
                    case "SortenMitZulassungsjahrHTML":
                    case "SortenMitZulassungsjahrHTML3":
                    case "SortenMitZulassungslandHTML":
                    case "ZuechtersortenHTML":
                    case "SortenMitKornformHTML":
                    case "SortenstammdatenHTML":
                    case "SortenstammdatenByNameHTML":
                    case "SortenMitPruefungsjahrHTML":
                    case "SortenMitNutzungsrichtungHTML":
                        usingNewMethod = true;
                        //Workspace.Log ("New method: " + OINK._currentWsMethod);
                        break;
                    default:
                        Workspace.Log ("Old method: " + OINK._currentWsMethod);               
                        usingNewMethod = false
                }
                
                        
                if (usingNewMethod)
                {
                    
                    var currentTable = jQuery('#newid').get(0),
                        outputLayout = { width: 0, height: 0 },
                        maxHeight = jQuery (document.body).height() - 100;
                    
                   
                    
                    if (this._cbxContent.indexOf ("BslEinstufungen") > -1)
                    {
                        currentTable = GridView.ConvertInfoTable (jQuery ("#BslEinstufungen").get(0), maxHeight, outputLayout);
                    }
                    else 
                        currentTable = GridView.Convert(currentTable,maxHeight , outputLayout);
                    if (!currentTable) 
                    {
                        return alert (stripTags (this._cbxContent));
                    }
                    else {                    
                        $('OutputHidden').innerHTML = "";
                        $('OutputHidden').appendChild (currentTable);
                    }
                    
                }
                var boxHeight, boxWidth;
                if (usingNewMethod)
                {
                    boxHeight = outputLayout.height;
                    boxWidth = outputLayout.width;
                    
                }
                else 
                    jQuery('#newid').tableScroll({width: jQuery('#newid').width(), height: jQuery('#newid').height() });
                
               jQuery("#ColorboxContainer").html(jQuery('#OutputHidden').html());
                
               jQuery("#OutputHidden").html("");
               
               
             //  Workspace.ShowHtml(this._cbxContent);
               
               
                /*
                var boxHeight = jQuery('#newid').height() + 50,
                    boxWidth = jQuery('#newid').width() + 100;
                if (boxHeight >_cboxConfig["Height"] )// jQuery (document.body).height())
                    boxHeight = _cboxConfig["Height"];
                if (boxWidth >_cboxConfig["Width"] )// jQuery (document.body).height())
                    boxWidth = _cboxConfig["Width"];    */
                    //boxHeight = jQuery (document.body).height()
                var resultsCountHtml = "";
                if (OINK._currentWsMethod != "SortenstammdatenHTML")
                    resultsCountHtml = " (" + _cboxConfig.AmountOfRecords + " Ergebnis" + 
                                (_cboxConfig.AmountOfRecords == 1 ? "": "se") + ")"
                                
                if (!!this._colorbox)
                {
                    
                    jQuery("#cboxLoadedContent").html(jQuery("#ColorboxContainer").html());//this._cbxContent);
                    if (!usingNewMethod)
                        this._colorbox.colorbox({width:boxWidth
                            ,//currentCboxConfig["Width"],
                            height:currentCboxConfig["Height"], iframe:true,
                            open:true, href:"#newContentArea",
                            title:currentCboxConfig["Title"]+currentCboxConfig["SelectedItem"]+ 
                            resultsCountHtml ,transition:'elastic', speed:500});
                    else 
                        this._colorbox.colorbox({width:boxWidth,
                            height:boxHeight, iframe:true,open:true, 
                            href:"#ContentArea",
                            title:currentCboxConfig["Title"]+currentCboxConfig["SelectedItem"] +
                            resultsCountHtml,
                            transition:'elastic', 
                            speed:500});
                            
                    
                }
                else
                {
                   
                   if (!usingNewMethod)
                        this._colorbox = jQuery.fn.colorbox({width:
                        currentCboxConfig["Width"],height:currentCboxConfig["Height"], 
                        inline:true,open:true, href:"#newContentArea",
                        title:currentCboxConfig["Title"]+currentCboxConfig["SelectedItem"] +
                            resultsCountHtml,transition:'elastic', 
                        speed:500});
                    else
                        this._colorbox = jQuery.fn.colorbox({width:boxWidth,
                            height:boxHeight, 
                            inline:true,open:true, 
                            href:"#ContentArea",
                            title:_cboxConfig["Title"]+_cboxConfig["SelectedItem"] + 
                            resultsCountHtml,
                            transition:'elastic', 
                            speed:500});
                        
                    
                }
                
                if (!$("cboxPrint").onclick) $("cboxPrint").onclick = OINK.GetColorboxPrintVersion;
               
                //Add sorting functionality
                if (usingNewMethod)
                {
                    GridView.Sorting.Extend (jQuery("#cboxLoadedContent")[0]);
                  
                }
               // jQuery('#OutputHidden').html (" ");
                
             } 
             jQuery('#AjaxWait').hide(); 
              
            },            
            _callWebservice : function (wsMethod,wsParameter,wsCallback)
            {
                  
                    var soapBody = new SOAPObject(wsMethod);
                    soapBody.ns = OINK.WebServiceNamespace; //"http://localhost/webapps/sortenspiegel/";
                    
                    wsParameter = eval(wsParameter);
                    if(!!wsParameter)
                    {
                     if (wsParameter.length == null)
                     {
                        soapBody.appendChild(new SOAPObject(wsParameter["ParameterName"])).val(wsParameter["ParameterValue"]);
                     }
                     else if (wsParameter.length > 1)
                     {
                        for(var i=0; i < wsParameter.length;i++)
                        {
                         soapBody.appendChild(new SOAPObject(wsParameter[i].ParameterName)).val(wsParameter[i].ParameterValue);   
                        }
                     }
                    
                    }
                    
                    var sr = new SOAPRequest(OINK.WebServiceNamespace + wsMethod, soapBody);
                    
                    jQSOAPClient.Proxy = OINK.WebService; 
                    if(!!wsCallback && typeof(wsCallback)==="function")
                    {
                        
                        jQSOAPClient.SendRequest(sr, processResponse);
                    }
                    else
                    {
                        
                        jQSOAPClient.SendRequest(sr);
                        var counter = 0;
                        while(!jQSOAPClient.Done)
                        {
                            counter++;
                            //if(counter>100000000)
                            if(counter>10000)
                                break;
                        }
                        
                        if (jQSOAPClient.Done)
                        {                       
                            var _content = jQSOAPClient.ResponseXML;
                            if(!this._isIE)
                            {
                                try
                                {
                                    _content = _content.childNodes[0].firstElementChild.childNodes[0].firstElementChild.childNodes[0];
                                    _content = new String(_content.wholeText);
                                }
                                catch(e) {}
                            }
                            else
                            {                
                                _content = new String(_content.text);
                        
                            }
                            if(_content==null)
                            {
                                jQuery('#AjaxWait').hide();
                                return "";
                            }
                            jQuery('#AjaxWait').hide();                                                     
                            return _content.replace('<?xml version="1.0" encoding="utf-16"?>','');
                            
                        }
                        
                        else 
                        {
                            jQuery('#AjaxWait').hide();
                            return null;
                        }
                        
                    }
                    jQuery('#AjaxWait').hide();
                    return jQSOAPClient.ResponseXML;
            }
            
            
            ,ShowExcelOrderMask : function () 
            {
            	
            	jQuery.fn.colorbox({html: this._callWebservice("GetControlHTML",{ParameterName:"Control",ParameterValue:"ExcelOrderMask"})
            	});
            	
            	
                    
            }
            
            ,ListSelection: {
            	Add: function (fromList, toList)
            	{
            		fromList = $(fromList);
            		toList = $(toList);
            		if (!fromList || !toList) return;
            		
            		var i, e, newIndex, option;
            		for (i = fromList.options.length-1, e=0; i >= e; i--)
            		{
            			option = fromList.options[i];
            			
            			if (option.selected)
            			{
            				newIndex = addToListWithSort (toList, option);
            				fromList.remove(i);
            				//toList.options [newIndex || 0].selected = true
            				
            			}
            			
            			
            		}
            	}
            	
            }
        };

                

        

        //********************** INITALIZATION **********************



          
        

       

        
        function processResponse(respObj)
        {
            
            if(respObj==null)
                return;
            
            
            var content = "";
            var text = "";
            if(!isIE)
            {
                content = respObj.childNodes[0].firstElementChild.childNodes[0].firstElementChild.childNodes[0];
                text = new String(content.wholeText);
            }
            else
            {                
                text = new String(respObj.text);
        
            }
            jQuery('#AjaxWait').hide(); 
            
            text = text.replace('<?xml version="1.0" encoding="utf-16"?>','');
            //text = jQuery(text).find('GmbH').replaceWith('<font color=red>GmbH</font>');    
            
            jQuery("#ColorboxContainer").html(text);
            jQuery.fn.colorbox({width:"98%",height:"80%", inline:true,open:true, href:"#ContentArea",title:"Züchter und Sortenvertreter im DMK e.V",next:"http://www.oink.de",transition:'elastic', speed:500});                    
            
            //$.fn.colorbox({html:text,height:'100%',width:900,open:true,transition:'fade', speed:500});
            
            
   
   
 
        }



function GetContent(wsMethod)
{
    //OINK.CleanOutputContainer();
    jQuery('#AjaxWait').show();
    
    var value = 0;
    var valueName = "";
    var valueDE = 'true';
    var valueEU = 'true';
    var openColorbox = true;
    switch(wsMethod)
    {
        case "SortenMitZulassungsjahrHTML":
            wsMethod = "SortenMitZulassungsjahrHTML3";
            valueName = "Jahr";
            if(GetContent.arguments.length==1)
            {
                value = parseInt(document.getElementById('CbxZulassungsjahr').options[document.getElementById('CbxZulassungsjahr').selectedIndex].value);
                valueDE = document.getElementById('ChkDEZulassungsjahr').checked==true?'true':'false';
                valueEU = document.getElementById('ChkEUZulassungsjahr').checked==true?'true':'false';
                openColorbox = false;
            }
            else
            {
                value = GetContent.arguments[1];
            }
        break;
        
        case "SortenMitReifezahlSiloHTML":
            wsMethod = "SortenMitReifezahlHTML";
            valueName = "Reifezahl";
            if(GetContent.arguments.length==1)
            {
                value = "srz=" +document.getElementById('CbxSRZ').options[document.getElementById('CbxSRZ').selectedIndex].value;
                valueDE = document.getElementById('ChkDESRZ').checked==true?'true':'false';
                valueEU = document.getElementById('ChkEUSRZ').checked==true?'true':'false';
                openColorbox = false;
            }
            else
            {
                value = GetContent.arguments[1];
            }
        
        break;
        case "SortenMitReifezahlKoernerHTML":
            wsMethod = "SortenMitReifezahlHTML";
            valueName = "Reifezahl";
            if(GetContent.arguments.length==1)
            {
                value = "krz=" +document.getElementById('CbxKRZ').options[document.getElementById('CbxKRZ').selectedIndex].value;
                valueDE = document.getElementById('ChkDEKRZ').checked==true?'true':'false';
                valueEU = document.getElementById('ChkEUKRZ').checked==true?'true':'false';
                openColorbox = false;
            }
            else
            {
                value = GetContent.arguments[1];
            }
        
        break;
        case "ReifegruppeLSV" :
            wsMethod = "SortenMitReifegruppeHTML";
            valueName = "Reifegruppe";
            if(GetContent.arguments.length==1)
            {
                value = "LSV=" +jQuery('#reifegrp_lsv').val();
                valueDE = document.getElementById('ReifegruppeNAT').checked==true?'true':'false';
                valueEU = document.getElementById('ReifegruppeEU').checked==true?'true':'false';
                
                openColorbox = false;
            }
            else
            {
                value = GetContent.arguments[1];
            }
        break;
        case "NutzungsrichtungLSV" :
            wsMethod = "SortenMitNutzungsrichtungHTML";
            valueName = "Nutzungsrichtung";
            if(GetContent.arguments.length==1)
            {
                value = "LSV=" +jQuery('#nutzart_lsv').val();
                valueDE = document.getElementById('NutzungsrichtungNAT').checked==true?'true':'false';
                valueEU = document.getElementById('NutzungsrichtungEU').checked==true?'true':'false';
                openColorbox = false;
            }
            else
            {
                value = GetContent.arguments[1];
            }
            
        break;
        case "NutzungsrichtungEUP" :
            wsMethod = "SortenMitNutzungsrichtungHTML";
            valueName = "Nutzungsrichtung";
            if(GetContent.arguments.length==1)
            {
                value = "EUP=" +jQuery('#nutzart_eup').val();
                valueDE = document.getElementById('NutzungsrichtungNAT').checked==true?'true':'false';
                valueEU = document.getElementById('NutzungsrichtungEU').checked==true?'true':'false';
                openColorbox = false;
            }
            else
            {
                value = GetContent.arguments[1];
            }
        break;
            
        case "ReifegruppeEUP" :
            wsMethod = "SortenMitReifegruppeHTML";
            valueName = "Reifegruppe";
            if(GetContent.arguments.length==1)
            {
                value = "EUP=" +jQuery('#reifegrp_eup').val();                
                openColorbox = false;
            }
            else
            {
                value = GetContent.arguments[1];
            }
            valueDE = jQuery("#ReifegruppeNAT").attr("checked") == true ? "true": "false";
            valueEU = jQuery("#ReifegruppeEU").attr("checked") == true ? "true": "false";
                
            
        break;
        case "Hybridform" :
            wsMethod = "SortenMitHybridtypHTML";
            valueName = "HT_Idx";
            
            if(GetContent.arguments.length==1)
            {
                value = jQuery('#hybridform').val();
                valueDE = document.getElementById('HybridformNAT').checked==true?'true':'false';
                valueEU = document.getElementById('HybridformEU').checked==true?'true':'false';
                openColorbox = false;
                jQuery('#AjaxWait').hide();
                
                return OINK._callWebservice(wsMethod,[{ParameterName:valueName,ParameterValue: value},
                                         {ParameterName: 'DE', ParameterValue: valueDE},
                                         {ParameterName: 'EU',ParameterValue: valueEU}]);
            }
            else
            {
                
                value = GetContent.arguments[1];
            }
        break;
        
        case "Korntyp" :
            wsMethod = "SortenMitKornformHTML";
            valueName = "KT_Idx";
            if(GetContent.arguments.length==1)
            {
                value = jQuery('#korntyp').val();
                valueDE = document.getElementById('KorntypNAT').checked==true?'true':'false';
                valueEU = document.getElementById('KorntypEU').checked==true?'true':'false';
                openColorbox = false;
                jQuery('#AjaxWait').hide();
                 return OINK._callWebservice(wsMethod,[{ParameterName:valueName,ParameterValue: value},
                                         {ParameterName: 'DE', ParameterValue: valueDE},
                                         {ParameterName: 'EU',ParameterValue: valueEU}]);
            }
            else
            {
                value = GetContent.arguments[1];
            }
        break;
        case "Sortencheck":
        case "SortencheckExp" :
            var ks_modus = '0'; 
            if(wsMethod=="SortencheckExp")
                ks_modus='1';

            var ks_reifegrp = jQuery('#ks_reifegrp').val();
            var ks_krz = jQuery('#ks_krz').val();
            var ks_srz = jQuery('#ks_srz').val();
            var ks_gtm = jQuery('#ks_gtm').val();
            var ks_ktm = jQuery('#ks_ktm').val();
            var ks_tka = jQuery('#ks_tka').val();
            var ks_sg = jQuery('#ks_sg').val();
            var ks_elos = jQuery('#ks_elos').val();
            var ks_lp = jQuery('#ks_lp').val();
            var ks_ke = jQuery('#ks_ke').val();
            var ks_lp_k = jQuery('#ks_lp_k').val();
            var ks_afs_k = jQuery('#ks_afs_k').val();
            var ks_tkm = jQuery('#ks_tkm').val();
            var ks_kem = jQuery('#ks_kem').val();
            var ks_nzb = jQuery('#ks_nzb').val();
            var ks_arb = jQuery('#ks_arb').val();
            var ks_pfl = jQuery('#ks_pfl').val();
            var ks_wbd = jQuery('#ks_wbd').val();
            var ks_fs = jQuery('#ks_fs').val();
            jQuery('#AjaxWait').hide();
            return OINK._callWebservice("SortencheckHTML",
            [{ParameterName:"ks_modus",ParameterValue:ks_modus},
             {ParameterName:"ks_reifegrp",ParameterValue:ks_reifegrp},
             {ParameterName:"ks_krz",ParameterValue:ks_krz},
             {ParameterName:"ks_srz",ParameterValue:ks_srz},
             {ParameterName:"ks_gtm",ParameterValue:ks_gtm},
             {ParameterName:"ks_ktm",ParameterValue:ks_ktm},
             {ParameterName:"ks_tka",ParameterValue:ks_tka},
             {ParameterName:"ks_sg",ParameterValue:ks_sg},
             {ParameterName:"ks_elos",ParameterValue:ks_elos},
             {ParameterName:"ks_lp",ParameterValue:ks_lp},
             {ParameterName:"ks_ke",ParameterValue:ks_ke},
             {ParameterName:"ks_lp_k",ParameterValue:ks_lp_k},
             {ParameterName:"ks_afs_k",ParameterValue:ks_afs_k},
             {ParameterName:"ks_tkm",ParameterValue:ks_tkm},
             {ParameterName:"ks_kem",ParameterValue:ks_kem},
             {ParameterName:"ks_nzb",ParameterValue:ks_nzb},
             {ParameterName:"ks_arb",ParameterValue:ks_arb},
             {ParameterName:"ks_pfl",ParameterValue:ks_pfl},
             {ParameterName:"ks_wbd",ParameterValue:ks_wbd},
             {ParameterName:"ks_fs",ParameterValue:ks_fs}
            ]);
                        
        break;
        case "Sortenversuche":
            var _categorie = GetContent.arguments[1];
            var _lsv = GetContent.arguments[2]?'true':'false';
            var _anz_jahre = 1;
            var _gehaltswerte = 'rel';
            var _excelexport = 'false';
            
            try
            { _excelexport = jQuery('input[name=ExcelExport]').is(':checked')?'true':'false';
            }catch(e){}
            
            
            var _sorten = '';
            if (jQuery('select[name=sorten]').length>0)
            {
            	var list = jQuery('select[name=sorten]')[0], i, e;
            	for (i=0, e = list.options.length; i < e; i++)
            		_sorten += (_sorten!='' ? ',': '') + list.options[i].value
            	
            }
            
            var _jahr = jQuery('select[name=lsv_jahr1]').val();
            var _korn = jQuery('input[name=' + (_lsv == 'true'? 'lsv': 'eup') + '_korn]').is(':checked')?'true':'false';
            var _silo = jQuery('input[name=' + (_lsv == 'true'? 'lsv': 'eup') + '_silo]').is(':checked')?'true':'false';
            /*if (_lsv=='true')
            {*/
                _anz_jahre = jQuery('select[name=lsv_jahre]').val();
                _gehaltswerte = jQuery('select[name=gehaltswerte]').val();
           /* }
            else
                _anz_jahre = jQuery('input:radio[name=lsv_jahre]:checked').val();
            
            */
            /*var _title = _lsv=='true' ? "<b>Ergebnisse der Landessortenversuche (LSV)</b>" :
            "<b>Ergebnisse der EU-Sortenprüfung (EUP) für Mais</b>";
            */
            var _print = 'false'; //jQuery('input[name=printversion]').is(':checked')?'true':'false';
            var _sort_silo = '0'; //jQuery('select[name=silo_order]').val();
            var _sort_korn = '0'; //jQuery('select[name=korn_order]').val();
            var _sort_order_silo = 'DESC'; //jQuery('input:radio[name=Silo_sortorder]:checked').val();
            var _sort_order_korn = 'DESC';//jQuery('input:radio[name=Korn_sortorder]:checked').val();
            
            var _de = jQuery('input[name=nat]').is(':checked')?'true':'false';
            var _eu = jQuery('input[name=eu]').is(':checked')?'true':'false';
            

            var _land_de1 = jQuery('select[name=laender_nat]').length==0?0:jQuery('select[name=laender_nat]').val();
            var _land_de2 = jQuery('select[name=laender_nat2]').length==0?'':jQuery('select[name=laender_nat2]').val();
            
            var _blkz =(_land_de1==0)?_land_de2:_land_de1;
            
            var _reifegrp = jQuery('select[name=lsv_reifegrp]').length==0?'0':jQuery('select[name=lsv_reifegrp]').val();
            var _srz = jQuery('select[name=lsv_srz]').length==0?'0':jQuery('select[name=lsv_srz]').val();
            var _krz = jQuery('select[name=lsv_krz]').length==0?'0':jQuery('select[name=lsv_krz]').val();


            
            // Prüfen, ob richtige Werte gewählt wurden
            if (_categorie=='standard' || _categorie=='reifegruppe' || _categorie=='reifezahl')
            {
                var _msg1  = "Sie müssen mindestens ein Bundes-\n"; 
                    _msg1 += "land, Länderdienststelle oder ein\n";
                    _msg1 += "Anbaugebiete Mais auswählen. \n";
                if(_land_de1==0 && _land_de2==0)
                {
                    alert(_msg1);
                    jQuery('#AjaxWait').hide();
                    return;
                }
                var msgSort  = 'Sie können die Sortierung nach einem Merkmal nur \n';
                    msgSort += ' bei einjährigen Ergebnissen ausführen ! \n\n';
                    msgSort += 'Drücken Sie "OK", damit die Tabelle mit einem \n';
                    msgSort += 'Jahrgang aufgebaut sowie sortiert wird oder \n';
                    msgSort += '"Abbrechen" damit Sie Ihre Auswahl ändern können.\n';   
                if(_anz_jahre>1 && (_sort_silo!=0 || _sort_korn!=0))
                {
                    if(confirm(msgSort))
                    {
                        _anz_jahre = 1;
                    }
                    else 
                    {
                     jQuery('#AjaxWait').hide();
                     return;
                    }
                }

            }
            if (_categorie=='sorten_im_lsv')
            {
                _blkz = '';
                var _msg1  = "Sie müssen mindestens ein Bundes-\n";
                    _msg1 += "land, Länderdienststelle oder ein\n";
                    _msg1 += "Anbaugebiete Mais auswählen. \n";
                if(jQuery('select[name=state]').val()==null && jQuery('select[name=state2]').val() == null)
                {
                    alert(_msg1);
                    jQuery('#AjaxWait').hide();
                    return;
                }
                if (jQuery('select[name=state]').val()!= null)
                {
                    /*
                    var _a = jQuery('select[name=state]').val();
                    for(var i=0; i < _a.length; i++)
                    {
                        _blkz += "'"+_a[i]+"',";
                    }
                    */
                    _blkz = jQuery('select[name=state]').val();
                }
                 if (jQuery('select[name=state2]').val()!= null)
                {
                    if (_blkz!='')
                        _blkz += ',';
                    _blkz += jQuery('select[name=state2]').val();
                }
                /*
                if (_blkz!='')
                    _blkz = _blkz.substring(0,_blkz.length-1);
                    */
            }
            
            
            jQuery('#AjaxWait').hide();
           
            return OINK.SortExperiments.GetResultsWithParams (
            			{
                            LSV:            _lsv,
                            Kategorie:      _categorie,
                            Sorten:         _sorten,
                            Jahrgang:       _jahr,
                            Silo:           _silo,
                            Korn:           _korn,
                            DE:             _de,
                            EU:             _eu,
                            AnzahlJahre:    _anz_jahre,
                            Gehaltswerte:   _gehaltswerte,
                            Printversion:   _print,
                            SiloOrder:      _sort_silo,
                            KornOrder:      _sort_korn,
                            SiloSortOrder:  _sort_order_silo,
                            KornSortOrder:  _sort_order_korn,
                            BLKZ:           _blkz,
                            Reifegrp:       _reifegrp,
                            SRZ:            _srz,
                            KRZ:            _krz
                        }
                        ,_excelexport
            );
            
            
            var result =  OINK._callWebservice("SortenversuchHTML",
            [{ParameterName:"LSV",ParameterValue:_lsv},
            {ParameterName:"Kategorie",ParameterValue:_categorie},
            {ParameterName:"Sorten",ParameterValue:_sorten},
            {ParameterName:"Jahrgang",ParameterValue:_jahr},
            {ParameterName:"Silo",ParameterValue:_silo},
            {ParameterName:"Korn",ParameterValue:_korn},
            {ParameterName:"DE",ParameterValue:_de},
            {ParameterName:"EU",ParameterValue:_eu},
            {ParameterName:"AnzahlJahre",ParameterValue:_anz_jahre},
            {ParameterName:"Gehaltswerte",ParameterValue:_gehaltswerte},
            {ParameterName:"Printversion",ParameterValue:_print},
            {ParameterName:"SiloOrder",ParameterValue:_sort_silo},
            {ParameterName:"KornOrder",ParameterValue:_sort_korn},
            {ParameterName:"SiloSortOrder",ParameterValue:_sort_order_silo},
            {ParameterName:"KornSortOrder",ParameterValue:_sort_order_korn},
            {ParameterName:"BLKZ",ParameterValue:_blkz},
            {ParameterName:"Reifegrp",ParameterValue:_reifegrp},
            {ParameterName:"SRZ",ParameterValue:_srz},
            {ParameterName:"KRZ",ParameterValue:_krz}
            ]);
            OINK._SortExperiments.TypeSilo = _silo == "true";
            var tableWidth = 800, 
                tableHeight = ((document.documentElement || document.body)).clientHeight 
                    - 60;
            
            switch (_anz_jahre)
            {
                case "1":
                    tableWidth = (_silo == "true" ? 830 : 600);
                    break;
                case "2":
                    tableWidth = (_silo == "true" ? 830 : 800);
                    break;
                case "3":
                    tableWidth = (_silo == "true" ? 1100 : 1000);
                    break;
            }
            //Get html hash
            var rexHash = /<input type='hidden' id='_currentHtmlHash' value='([a-z0-9]+)' exists='([a-z]+)'>/gi;
            var htmlHash = null, cacheExists = false; 
            if (rexHash.exec(result))
            {
                htmlHash = RegExp.$1;
                cacheExists  = RegExp.$2 == 'true';
                
                if (htmlHash)
                {
                    OINK._SortExperiments.MD5Hash = htmlHash;
                    OINK._SortExperiments.CacheExists = cacheExists;
                }
            }
            
            jQuery.fn.colorbox({html:result,
                height: tableHeight,
                width:  tableWidth,title:_title});
            if (!$("cboxPrint").onclick) $("cboxPrint").onclick = OINK.GetColorboxPrintVersion;
            return;
        break;
       
        case "SortenAusLsv1":
        case "SortenAusLsv2":
            var lsv1 = wsMethod=="SortenAusLsv1"?true:false;
            var Bundesland = lsv1?jQuery('#KK_Bundesland_1').val():jQuery('#KK_Bundesland_2').val();
            var JahrIdx = lsv1?jQuery('#KK_Jahr_1').val():jQuery('#KK_Jahr_2').val();
            
            var _de_1 = jQuery('#KK_NAT_1').is(':checked')?'true':'false';
            var _eu_1 = jQuery('#KK_EU_1').is(':checked')?'true':'false';
            var _de_2 = jQuery('#KK_NAT_2').is(':checked')?'true':'false';
            var _eu_2 = jQuery('#KK_EU_2').is(':checked')?'true':'false';
            var _silo = jQuery('#KK_Silo').attr('checked')?'true':'false';
            var _korn = jQuery('#KK_Korn').attr('checked')?'true':'false';
            
            var DE = lsv1?_de_1:_de_2;
            var EU = lsv1?_eu_1:_eu_2;
            var Silo = lsv1?'true':_silo;
            var Korn = lsv1?'true':_korn;
            var ReifegruppenIdx = lsv1?'0':jQuery('#KK_Reifegrp').val();
            jQuery('#AjaxWait').hide();
            return OINK._callWebservice("SortenAusLsvHTML",
            [{ParameterName:"Bundesland",ParameterValue:Bundesland},
             {ParameterName:"JahrIdx",ParameterValue:JahrIdx},
             {ParameterName:"DE",ParameterValue:DE},
             {ParameterName:"EU",ParameterValue:EU},
             {ParameterName:"Silo",ParameterValue:Silo},
             {ParameterName:"Korn",ParameterValue:Korn},
             {ParameterName:"ReifegruppenIndx",ParameterValue:ReifegruppenIdx}
            ]);
        break;
        
        case "ZuechtersortenHTML":
          valueName = "Zuechterindex";
          value = GetContent.arguments[1];
          openColorbox = false;
        break;
            
        //this._callWebservice(wsMethod,{ParameterName:"Zuechterindex",ParameterValue:wsParameter});
    }
    if (openColorbox === false)
        OINK.CleanOutputContainer()
    

    
    var wsParameter = [{ParameterName:valueName,ParameterValue: value},
                                         {ParameterName: 'DE', ParameterValue: valueDE},
                                         {ParameterName: 'EU',ParameterValue: valueEU}];
    jQuery('#AjaxWait').hide();
    return OINK.GetAjaxContent(wsMethod,wsParameter,openColorbox)
    
}

function reset_rg() // Reifegruppe zurücksetzen
{
jQuery('#ks_reifegrp').val(0);
}
function reset_rz() // Silo- u. Körnerreifezahlen zurücksetzen                           
{
jQuery('#ks_krz').val(0);
jQuery('#ks_srz').val(0);
}
jQuery(document).ready(
function(){
   if (CurrentUserInfo==null)
    CurrentUserInfo = {UserIndex:0};
   
   
   var intro = OINK._callWebservice("GetSpIntro",{ParameterName: "UserGuid",ParameterValue:CurrentUserInfo.UserIndex});            
   jQuery('#currentHomepageContents').html(intro);
   
   _userLevel = jQuery.parseJSON(
            OINK._callWebservice("GetUserLevel",{ParameterName: "UserGuid",ParameterValue:CurrentUserInfo.UserIndex})
            );
    
   Workspace.Init();
  
}
);

var PdfPrintManager = {
    _ContentTypes: {
        InfoTable: 1
        ,SortsExperiments: 2
    }
    ,_GetHelperContainer: function ()
    {
        var div = $("PdfVersionHelper");
        if (!div) 
        {
            div = document.createElement ("DIV");
            div.style.visibility = "hidden";
            div.style.position = "absolute";
            div.style.left = "0px";
            div.style.right= "0px";
            document.body.appendChild (div);
        }
        
        return div
    }
    ,_CleanHtml : function (html)
    {
        if (!html) return html
        
        html = html.replace (/align=middle/gi, ' align=center');
        html = html.replace (/align="start"/gi, ' align=left');
        html = html.replace (/-moz-center/gi, 'center');
        html = html.replace (/-webkit-center/gi, 'center');
        html = html.replace (/padding: ([0-9]+px [0-9]+px)/gi, 'padding: $1 $1');   
        html = html.replace (/(rgb\([0-9]+,[ ]*[0-9]+,[ ]*[0-9]+\))/gi,function (rgb){
            if (rgb.indexOf ("rgb")>-1)
            {
                rgb = rgb.replace (/rgb/gi,'').replace (/[ \(\)]*/gi,'');
                rgb = convertColorToHex(rgb);
                return rgb
                
            }       
        })
        
        html = html.replace (
                /<tr>[ \t\r\n]*<\/tr>/gi, '');
                
        //Remove spaces within linnks
        html = html.replace (/>[ \t\r\n]*<img /gi, '><img ');
        html = html.replace (/>[ \t\r\n]*<\/a>/gi, '></a>');
                
           
        html = html.replace (
                /<\/tr>[ \t\r\n]*<tr>/gi, '</TR><TR>');
        
        html = html.replace (/>[ \r\n\t]*<tbody>/gi, '><TBODY>');
        html = html.replace (/>[ \r\n\t]*<td/gi, '><TD');
        html = html.replace (/>[ \r\n\t]*<\/div>/gi, '></DIV>');
        html = html.replace (
                /<\/tr>[ \t\r\n]*<\/tbody>/gi, '</TR></TBODY>');
        
        html = html.replace (/>[ \r\n\t]*<table/gi, '><TABLE');
        
        html = html.replace (/(<[\/]*)(thead)(>)/gi,'$1TBODY$3');
        
        //html = html.replace (/[\t\r\n]/g, '');
        html = html.replace (/<TABLE>[ \r\n\t]*<TBODY>[ \r\n\t]*<\/TBODY>[ \r\n\t]*<\/TABLE>/gi,'');

        return html
    }
    ,GetHtml : function (tableData, tableHeader, autoFillColumnIndex)
    {
        var tBody = this.GetRowsHtml(tableData, false, autoFillColumnIndex),
            tHead = this.GetRowsHtml(tableHeader, true, autoFillColumnIndex),
            table = '<table style="border: 2px solid white">' + tHead + tBody + '</table>';
        
        return table
    }
    ,GetRowsHtml: function (table, head, autoFillColumnIndex)
    {
        if (autoFillColumnIndex == undefined)
        {
            switch (OINK._currentWsMethod)
            {
                case "ZuechtersortenHTML":
                case "SortenMitKornformHTML":
                    autoFillColumnIndex = 1;
                    break;
                default: 
                    autoFillColumnIndex = (table.rows[0]?table.rows[0].cells.length-1:-1);
                    
            }
            
        }
        var res = "", row, cell, isSortCheck = OINK._currentWsMethod.indexOf("Sortencheck") == 0;
        for (var r=0, e =  table.rows.length;  r < e; r++ )
        {
            row = table.rows [r];
            res +="<tr>";
            for (var c=1, ce =  row.cells.length;  c < ce; c++ )
            {
                cell = row.cells [c];
                res +='<t' + (head? "h":"d") + ' style="padding:3px 5px 3px 5px;' +
                    'background-color: ' + jQuery(cell).css("backgroundColor") + '; ' +
                    'text-align: left;'/* + jQuery(cell).css("textAlign") */ +
                    'color: ' + (jQuery(cell).css("color") ||"#003300") + '; ' +
                   
                   'font-size: ' + jQuery(cell).css("font-Size") + '; ' +
                    (c != autoFillColumnIndex ? 'width: ' + (jQuery(cell).outerWidth() + (isMS() ?0: 
                    (!isSortCheck ? 
                        20: 10))) + 'px; ' : '') +
                    'border: solid 2px white">' + (head? cell.innerHTML : jQuery(cell).text()) + 
                    '</t' + (head? "h":"d") + '>'
            }
            res +="</tr>";
        }
       // Workspace.Alert(res);
        return res
    }
    ,GetSortExperimentsHtml : function (table)
    {
        
        var currentParent = table.parentNode,
            containerWidth = null,
        div = PdfPrintManager._GetHelperContainer(),
        html = "";
        //if (Workspace.Debug) return table.innerHTML;
            
        containerWidth = 105 + (OINK._SortExperiments.LSV ? 27 : 0 ) + 52 + 
            7 * 37 * int(OINK._SortExperiments.YearsCount);
        
        
        div.style.width = containerWidth + "px";//"800px";
        
     
        if (table.parentNode && jQuery (table.parentNode).attr("align"))
        jQuery(div).attr ("align", jQuery (table.parentNode).attr("align"))
            
        html = div.innerHTML =  /* Adjust font size of SUP */ table.innerHTML.replace (/<sup><span style="font-size:[ ]*7pt[;]*">/gi, '<sup><span style="font-size:9pt">');
        
        //Get the width of the header table
        //containerWidth = jQuery (div).find (".LsvHeaderTable").width ();

        
        jQuery(div).find(".lsvResultsWrapper").css ({ "width": containerWidth + 'px', "backgroundColor": "#FFFFFF"});
        jQuery(div).find(".lsvResultsWrapper").attr ("align", "left");
        
        //For the pdf generation
        
        
        
        jQuery (div).find ("table").each (function (){
            if (!jQuery(this).hasClass("LWK_Table")) PdfPrintManager.AdjustExperimentsTableForPrint(this, PdfPrintManager._ContentTypes.SortsExperiments, containerWidth);
            
        });
            
        jQuery (div).find ("td").each (function (){             
               if (!jQuery(this).hasClass("LWK_Cell")) PdfPrintManager.AdjustExperimentsCellForPrint(this, PdfPrintManager._ContentTypes.SortsExperiments)});

        html = PdfPrintManager._CleanHtml(div.innerHTML);
        
        document.body.removeChild(div);
      
        div = currentParent = null;
            
        return html
    }
    ,AdjustCellForPrint: function (cell, contentType)
    {   
        jQuery (cell).removeAttr ("id");
        var rowSpan = jQuery (cell).attr ("rowspan") || 1, 
            startRow = cell.parentNode.nextSibling;
        
        //Type "sortencheck"
        if (rowSpan> 1)
        {
            jQuery (cell).attr ("rowspan", 1);
            var paddings = jQuery(cell).css ("padding");
                if (!paddings) {
                    paddings = "";
                    paddings += (jQuery(cell).css ("paddingLeft") || " ") + " ";
                    paddings += (jQuery(cell).css ("paddingRight") || " ")+ " ";
                    paddings += (jQuery(cell).css ("paddingTop") || " ")+ " ";
                    paddings += (jQuery(cell).css ("paddingBottom") || " ")+ " ";
                }   
                    paddings  = Trim (paddings);
            var borders = jQuery(cell).css ("border")
            if (!borders) 
            {
                if (contentType == 1) 
                    borders = "solid 1px white"
                else if (jQuery(cell.parentNode).hasClass('lsv-subheader-row'))
                {
                    borders = "solid 1px #d4e1ae"
                }
                
            }
                    
                    
            while (startRow && --rowSpan)
            {
                var newCell = startRow.insertCell (0);
                newCell.innerHTML = "&nbsp;";
                jQuery(newCell).css ("backgroundColor", 
                    jQuery(cell).css ("backgroundColor"));
                    if (paddings)
                        jQuery(newCell).css ("padding", 
                            paddings);
                
                jQuery(newCell).css ("border", 
                            borders);
                startRow = startRow.nextSibling
            }
        }
        
        //Widths 
        var width = jQuery (cell).outerWidth ();
        /*#b7cc75*/
        if ((width>0 && cell.parentNode.rowIndex == 0)
            && ( jQuery (cell).parents(".TypeTitleTable").length > 0
            || jQuery (cell).parents(".BslEinstufungen").length > 0)
            )
            {
                jQuery (cell).css ("width", String (
                (jQuery(cell).parents("table.bsl-type-2").length>0
                && cell.cellIndex > 0 ? "50" : width ) 
                    ) + 'px');
            }
           
        if (jQuery (cell).hasClass ("lsv-first-cell")) 
        {
            jQuery (cell).css ("width", "auto")
        }
        //LSV-Ergebnisse, cells > 1
        if (jQuery(cell).parents ("#LSVErgebnisse").length>0
         && jQuery(cell).parents ("#NutzungsRichtungen").length == 0
         && jQuery(cell).parents (".lsv-results-header").length == 0 )
        {
            //if (Workspace.Debug)
            {
                jQuery (cell).css ("width", (cell.cellIndex > 0 ? "82px" : "120px"));
                jQuery (cell).css ("border", "solid 1px white");
            }
        }
        if (jQuery (cell).hasClass("text-120"))
        {
            jQuery (cell).css ("width", "120px")                
        }
            
        //Adjust align
        
        if (jQuery(cell).hasClass ("SingleLineFootNote") ||
        	jQuery(cell).hasClass ("MultipleModeSubHeader"))
        {
        
        	cell.align = "left";
        	cell.style.textAlign = "left";
        }
        else {
	        if (cell.align=="middle") cell.align = "center"
	        if (cell.align == "auto") cell.align = "left";        
	        jQuery (cell).css ("text-align", cell.align);
        }
        
        //Bg color
        var cssValue = jQuery (cell).css  ("backgroundColor");        
        if (cssValue && cssValue!= "rgba(0, 0, 0, 0)")
        {
            jQuery (cell).css ("background-color", cssValue);            
        }
        jQuery(cell).removeAttr ("bgColor");
        
        
        //Font color
        cssValue = jQuery (cell).css  ("color");        
        if (cssValue && cssValue!= "rgba(0, 0, 0, 0)")
            jQuery (cell).css ("color", cssValue);
       
        //Font size
        cssValue = jQuery (cell).css  ("fontSize");        
        if (cssValue)
            jQuery (cell).css ("fontSize", cssValue);
       
        //Font weight
        cssValue = jQuery (cell).css ("fontWeight");
        if (cssValue) 
            jQuery (cell).css ("fontWeight", (cssValue>500? "bold": cssValue))
            
        //Paddings
        if (!cell.style.padding || (cell.style.padding+"").match (" ").length<3)
            jQuery (cell).css ("padding", "2px 4px 2px 4px");
        
        //Text
        if (cell.cellIndex > 0 &&  contentType == PdfPrintManager._ContentTypes.InfoTable && 
            jQuery(cell).parents("#LSVErgebnisse").length == 0)
            cell.innerHTML = Trim (jQuery (cell).text());
        if (jQuery(cell).parents("#LSVErgebnisse").length > 0 ) 
        {
            jQuery(cell).find ("img").each (function () { 
                jQuery(this).css ({ "width":"12px", "height": "11px" });
                });
            if (cell.cellIndex == 0)
                jQuery(cell).html (jQuery(cell).html ().replace (/([0-9][0-9][0-9][0-9])/g, 
                    '$1&nbsp;&nbsp;'));                 
                
            
        }
        if (jQuery(cell).hasClass("lsvHead")) 
        {
            
            jQuery(cell).find ("img").each (function () { 
                jQuery(this).css ({ "width": jQuery(this).width() + 'px', 
                    "height": jQuery(this).height () + 'px' });
                });
        }
        
        //Borders
        if (contentType == 1)
        {
             if (!cell.style.border)
                jQuery (cell).css ("border", "solid 1px white")
        }
        else if (contentType == 2)
        {
       
            if (jQuery (cell).parents ('.LsvResultRows').length>0
                //|| jQuery(cell.parentNode).hasClass ('LsvResultRows')
                || jQuery (cell).hasClass ('lsvSortiment')
                || jQuery (cell.parentNode).hasClass ('lsv-subheader-row')
            )
            {
                jQuery (cell).css ("border", "solid 1px #d4e1ae")
            }   
            
        }
    }
    ,AdjustExperimentsCellForPrint: function (cell)
    {   
        jQuery (cell).removeAttr ("id");
        
        if (jQuery(cell).hasClass("NoClientChange")) return
        
        //Widths 
        var width = 0;//jQuery (cell).outerWidth ();
        
        if (jQuery (cell).hasClass("Width173"))
            width = 103;
        else if (jQuery (cell).hasClass("Width25"))
            width = 25;
        else if (jQuery (cell).hasClass("Width70"))
            width = 50;
        else if (jQuery (cell).hasClass("Width45"))
        {
            if (jQuery (cell).hasClass ("SpannedHeaderCol"))
                width = 37 * int (OINK._SortExperiments.YearsCount);
            else
                width = 37;
        }   
        else if (jQuery (cell).hasClass("TypeTitleCell") ||
            jQuery (cell).hasClass("lsvSortiment")  )
        {
            width = 105 + (OINK._SortExperiments.LSV ? 27 : 0 ) + 52 + 
                (jQuery(cell).parents (".TypeSilo").length>0 ? 7 : 3) * 37 * int(OINK._SortExperiments.YearsCount) -
                (OINK._SortExperiments.LSV ? 6 : 4);
        
        }   
        
        if ((width>0))// && cell.parentNode.rowIndex == 0))
        {
            jQuery (cell).css ("width", String (
            width 
                ) + 'px');
                
            jQuery(cell).removeAttr ("width");
        
        }
           
        //Adjust align
        var cssValue = "left";
        if (jQuery(cell).hasClass ("SingleLineFootNote") ||
        	jQuery(cell).hasClass ("MultipleModeSubHeader"))
        {
        	cssValue = "left"
        }
        else {
        	
	        if (cell.cellIndex == 0 && cell.parentNode.cells.length>1)
	        {
	            cssValue = "left";
	        }
	        else
	            cssValue = "center";
        }
        cell.align = cssValue;
        cell.style.textAlign = cssValue;
        
        
        
        //Bg color
        cssValue = jQuery (cell).css  ("backgroundColor");        
        if (cssValue && cssValue!= "rgba(0, 0, 0, 0)")
        {
            jQuery (cell).css ("background-color", cssValue);            
        }
        jQuery(cell).removeAttr ("bgColor");
        
        
        //Font color
        cssValue = jQuery (cell).css  ("color");        
        if (cssValue && cssValue!= "rgba(0, 0, 0, 0)")
            jQuery (cell).css ("color", cssValue);
       
        //Font size
        cssValue = jQuery (cell).css  ("fontSize");        
        if (cssValue)
            jQuery (cell).css ("fontSize", cssValue);
       
        //Font weight
        cssValue = jQuery (cell).css ("fontWeight");
        if (cssValue) 
            jQuery (cell).css ("fontWeight", (cssValue>500? "bold": cssValue))
            
        //Paddings
        if (!cell.style.padding || (cell.style.padding+"").match (" ").length<3)
            jQuery (cell).css ("padding", "2px 2px 2px 2px");
        
        var imgWidth = 35;
        if (jQuery(cell).hasClass("lsvHead")) 
        {
            if (jQuery(cell).hasClass("Width25"))
                imgWidth = 25;
                
            jQuery(cell).find ("img").each (function () { 
                    
                jQuery(this).css ({ "width": imgWidth + 'px', 
                    "height": '103px' });
                });
        }
        
        //Text
        if (jQuery (cell).hasClass ("SpannedHeaderCol") && 
        	int (OINK._SortExperiments.YearsCount)==1)
        {
        	cell.innerHTML = cell.innerHTML.replace (/<wbr[\/]*>/gi,'<br/>');
        	
        }
        else if ((cell.cellIndex ==0 && 
            jQuery(cell).hasClass ("Width173") && 
            !jQuery(cell).hasClass ("FootnoteTitle")
            && !jQuery(cell).hasClass("lsvHead")
            )
            //|| (jQuery(cell.parentNode).hasClass("lsv-subheader-row"))
            )
            cell.innerHTML = jQuery(cell).text();
            if (jQuery(cell).hasClass("lsv_vr_yes"))
            {
                cell.style.fontStyle = "italic"; 
            }
            
        //Borders
        if (jQuery (cell).parents ('.CbxScrollTable').length>0)
            {
                jQuery (cell).css ("border", "solid 1px " + (jQuery (cell).hasClass("lsvHead") ? "white": "#b7cc75"))
            }   
            
        
    }
    ,AdjustExperimentsTableForPrint : function (table)
    {
    	if (jQuery(table).hasClass("NoClientChange")) return
        
    	
        var tableWidth = 105 + (OINK._SortExperiments.LSV ? 27 : 0 ) + 52 + 
            (jQuery(table).hasClass ("TypeSilo") ? 7 : 3) * 37 * int(OINK._SortExperiments.YearsCount);
        
        if (jQuery(table).hasClass ("MultipleMode"))
        {
        	tableWidth-=6;
        }
        if (jQuery(table).hasClass ("FootnoteTable"))
        {
            if (table.innerHTML.indexOf ("SingleLineFootNote") > 0)
            	tableWidth-=6;
            else 
            	tableWidth-=5;
        }
        //Width
        jQuery(table).css ("width", String(tableWidth)+ "px");
        jQuery(table).removeAttr ("width");
        
        //Background color
        if (jQuery (table).hasClass ("LsvHeaderTableTop") ||
            jQuery (table).hasClass ("YearsHeaderTable"))               
            jQuery (table).css ("background-color", "white");
            
        //Border
        jQuery (table).css ("border", "0px none")//"solid 1px #b7cc75");
        
    }
    ,AdjustTableForPrint: function (table, contentType, desiredWidth)
    {
        jQuery (table).removeAttr ("id");
        width = jQuery (table).width ();
        
        
        if (table.style.border)
            jQuery (table).css ("border", "0px none")//solid 1px white");
        
        if (jQuery(table).hasClass ("BslEinstufungen") ||
        jQuery(table).hasClass ("lsv-results-header"))
        {
            jQuery (table).css ("width", '600px');
           
        }
        else if (jQuery(table).hasClass ("CbxScrollTable"))
        {
            if (jQuery(table).hasClass ("TypeTitleTable"))
            {
                if (jQuery(table).hasClass ("TypeSilo"))
                    jQuery (table).css ("width", ((desiredWidth+10) + 'px' || '660px'));
                else 
                    jQuery (table).css ("width", ((desiredWidth+4) + 'px' || '660px'));             
                //jQuery (table).css ("border", 'solid 1px #d4e1ae');
            }
            
            else
            {
                jQuery (table).css ("width", (desiredWidth + 'px' || '800px'))
                if (table.style.removeAttribute)
                    table.style.removeAttribute ("border")
                else
                    table.style.border = null
            }
        }
        else if (jQuery (table).hasClass ("FootNotes"))
        {
            jQuery (table).css ("width", ((desiredWidth) + 'px' || '650px'));
            jQuery (table).css ("border", 'solid 1px #d4e1ae');
            jQuery (table).css ("backgroundColor", "#ffffe6")
        }
        else if (isMS() && width>0)        
            jQuery (table).css ("width", String (width) + 'px');
    }
    ,GetInfoTableHtml : function (table)
    {
        
        var currentParent = table.parentNode,
            div = PdfPrintManager._GetHelperContainer(),
            html = "";
            
          
            if (table.parentNode && jQuery (table.parentNode).attr("align"))
                jQuery(div).attr ("align", jQuery (table.parentNode).attr("align"))
                
            div.appendChild(table);
            
            html = div.innerHTML;
            
            currentParent.appendChild (table);
            
            div.innerHTML = html;
            
            //For the pdf generation
            jQuery (div).find ("table").each (function (){
                PdfPrintManager.AdjustTableForPrint(this, PdfPrintManager._ContentTypes.InfoTable, 
                    table.offsetWidth);
                });
            jQuery (div).find ("td").each (function (){             
                 PdfPrintManager.AdjustCellForPrint(this, PdfPrintManager._ContentTypes.InfoTable);
                });
            
            html = PdfPrintManager._CleanHtml(div.innerHTML);
            
            document.body.removeChild(div);
            
            
            div = currentParent = null;
            
        return html;
    }
    
}

var DownloadManager = {
    InProgress  : false
    ,Start : function ()
    {
        DownloadManager.InProgress = true;
        
        startWaitingAnimation("Das Print-Dokument wird vorbereitet ...");
        //displayLoadingAnimation ("block");
        //waitingAnimationMessage.innerHTML = "Das Download-Dokument wird vorbereitet ...";
        
    },
    CheckStatus : function ()
    {
        
        if (!DownloadManager.InProgress) return;
        var downloadDispatcher = $("pdfPrintDispatcher");
        
        if (downloadDispatcher.readyState == "interactive" || 
            downloadDispatcher.readyState == "complete")
        {   
            DownloadManager.Stop();
            
            try
            {
                var iframeHtml = downloadDispatcher.contentWindow.document.getElementsByTagName ("HTML");
                
                if (iframeHtml && iframeHtml.length > 0)
                {
                    iframeHtml = iframeHtml  [0];
                    var outputHTML = iframeHtml.outerHTML;
                    
                    if (outputHTML && (outputHTML.indexOf ("errors_div")>0 || 
                        outputHTML.indexOf (".error {margin-bottom")>0))
                    {
                        var erroWin = window.open(getVirtualPath () + "pdffactory/error.htm");
                        setTimeout (function () { 
                            errorWin.document.body.innerHTML = outputHTML }, 1000);     
                    }
                }           
            }
            catch (err)
            {
                if (Workspace.Debug)
                    alert (err.description || err);
                
                alert ("Auf Grund eines Serverfehlers konnte das Dokument nicht heruntergeladen werden.\nVersuchen Sie es später noch einmal.");
            }
        }
    }
    ,Stop : function ()
    {
        DownloadManager.InProgress = false;
        //displayLoadingAnimation ("none");
        stopWaitingAnimation();
        
        if ($("cboxLoadingOverlay"))
            $("cboxLoadingOverlay").style.display = $("cboxLoadingGraphic").style.display = "none";
                
    }
    ,CheckDownloadStatus : function ()
    {
        DownloadManager.CheckStatus ();
    }
    ,StartDocumentDownload: function ()
    {
        
        DownloadManager.Start ();
    }
}

var GridView = {
    Sorting: {
    	ApplyLsvEup: function (e){
    		
    		var cell = this;
            
    		table = jQuery(cell).parents ("TABLE")[0];
    		if (!table) return
    		
    		OINK._SortExperiments.ReCheckCache = true;
    		
    		var index = cell.cellIndex,
    			
    			toString = Object.prototype.toString,
    			silo = jQuery(table).hasClass ("TypeSilo"),
    			rgName = table.getAttribute ("ReifeGruppe")|| table.ReifeGruppe, 
    			lsv = OINK._SortExperiments.LSV == true, 
    			tbody = null,
                startTime = new Date(),
                currentDir = jQuery (cell).data ("sort-dir"),
                nextDir = currentDir == "asc" ? "desc" : "asc",
                tableRows, rowsArray = new Array(),
                textNode, textVal;

                
                //Update soap config 
                
                if (typeof (OINK._SortExperiments.SoapConfig [(silo ? "Silo":"Korn") + "Order"])=="string" )
                	OINK._SortExperiments.SoapConfig [(silo ? "Silo":"Korn") + "Order"] = {};
                OINK._SortExperiments.SoapConfig [(silo ? "Silo":"Korn") + "Order"] [rgName] = index;
                
                if (typeof (OINK._SortExperiments.SoapConfig [(silo ? "Silo":"Korn") + "SortOrder"])=="string" )
                	OINK._SortExperiments.SoapConfig [(silo ? "Silo":"Korn") + "SortOrder"] = {};
                OINK._SortExperiments.SoapConfig [(silo ? "Silo":"Korn") + "SortOrder"] [rgName] = nextDir;
                
             /*   Workspace.Alert(rgName);
                Workspace.Alert ($$ (OINK._SortExperiments.SoapConfig));
                Workspace.Alert (OINK._SortExperiments.SoapConfig [(silo ? "Silo":"Korn") + "Order"] [rgName]);*/
                
                //Remove the last sorted cell info
	            if (jQuery(table).find (".sorted").length > 0)
	            {
	                jQuery(table).find (".sorted").removeClass ("sort-asc").removeClass("sort-desc").removeClass("sorted").data ("sort-dir", null);
	            }
	             //Save the current order info
	            jQuery (cell).addClass ("sort-"+ nextDir + " sorted");
	            jQuery (cell).data ("sort-dir", nextDir);
	
	            
    			var tables = document.getElementsByClassName("LsvResultsRows", jQuery ("#cboxLoadedContent")[0]);
    			
    			jQuery.each(tables,function ()
    			{
    				var resultsTable = this, isZZGD5 = false;
    				if (!jQuery (resultsTable).hasClass ("Type" + (silo ? "Silo":"Korn"))) 
    					return
    				if ((resultsTable.getAttribute ("ReifeGruppe")|| resultsTable.ReifeGruppe) != rgName) 
    					return
    					
    				rowsArray = new Array();	
    				tbody = jQuery(resultsTable).find ("tbody")[0] || resultsTable;
		            
		            
		            //Get rows collection as array
		            for (var i = 0, e = resultsTable.rows.length; i < e; i++)
		            { 
		            	//Ignore "zzzGD5%"
			            isZZGD5 = resultsTable.rows[i].cells[0].innerHTML.indexOf ('769')>-1;
			            
		            	if (index > (lsv ? 1 : 0)) 	 //Floats
		            	{
			            	textNode = (resultsTable.rows[i].cells [index] || {childNodes:[]}).childNodes [0];
			            	textVal = jQuery.trim (textNode.nodeValue); 
			            	textVal = float(textVal);
			            	if (isZZGD5)
			            		textVal = (nextDir == "asc" ? "": ".")+"Z" 
			            	else {
				            	if (textVal <10) textVal="00" + textVal
				            	else  if (textVal <100) textVal="0" + textVal
			            	}
		            	}	
		            	else {
		            		textNode = resultsTable.rows[i].cells [index];
			            	textVal = jQuery.trim (jQuery(textNode).text()); 
			            	if (isZZGD5)
			            		textVal = (nextDir == "asc" ? "ZZZZZ": "000000");
			            	
		            	}
		            	
		            	if (textNode)
		            	{  
		            		rowsArray.push(
			                    { row: resultsTable.rows [i], 
			                        sortVal: textVal }
			                )
		            	}
		                
		            };
		                    
		            //rows = jQuery.makeArray (jQuery(table).find ("tr"))
		          //  Workspace.Log ("Start");
		            try {
		                //Override toString
		                Object.prototype.toString = function ()
		                {
		                	return this.sortVal
		                };
		                    
		               rowsArray.sort();
		               if (nextDir == "desc")
		               rowsArray.reverse()
		                
		            }catch(err) {
		                Workspace.Alert(err.description || err);
		            }
		            //Restore orig toString
		            Object.prototype.toString = toString;
		            
		            //Re-insert the rows
		            jQuery.each (rowsArray, function (r, val) {
		            		tbody.appendChild (this.row)
		               }
		            )
		            
		           // Workspace.Log ("Done: " + (new Date() - startTime));
			            
    			});
    		
               
               
                
           
           
            
            
    	}
        ,Apply: function (e)
        {
            var cell = this;
            var index = cell.cellIndex,
                thead = jQuery(cell).parents ("table")[0],
                table= jQuery (cell).parents ("div.tablescroll").find (".tablescroll_body")[0],
                toString = Object.prototype.toString,
                tbody = null,
                startTime = new Date(),
                currentDir = jQuery (cell).data ("sort-dir"),
                nextDir = currentDir == "asc" ? "desc" : "asc",
                tableRows, rowsArray = new Array();
                
            if (!table) return;
            
            //Remove the last sorted cell info
            if (jQuery(thead).find (".sorted").length > 0)
            {
                jQuery(thead).find (".sorted").removeClass ("sort-asc sort-desc").data ("sort-dir", null);
            }
            //Save the current order info
            jQuery (cell).addClass ("sort-"+ nextDir + " sorted");
            jQuery (cell).data ("sort-dir", nextDir);
            
            tbody = jQuery(table).find ("tbody")[0] || table;
            
            tableRows = tbody.getElementsByTagName ("TR");
            
            //Get rows collection as array
            for (var i = 0, e = tableRows.length; i < e; i++)
            { 
                rowsArray.push(
                    { row: tableRows [i], 
                        sortVal: jQuery.trim (jQuery(tableRows[i].cells [index]).text())}
                )
                
            };
                    
            //rows = jQuery.makeArray (jQuery(table).find ("tr"))
          //  Workspace.Log ("Start");
            try {
                //Override toString
                Object.prototype.toString = function ()
                {
                    //Log.Add (this.sortVal);
                    return this.sortVal
                };
                    
               rowsArray.sort();
               if (nextDir == "desc")
                rowsArray.reverse()
                
            }catch(err) {
                Workspace.Alert(err.description || err);
            }
            //Restore orig toString
            Object.prototype.toString = toString;
            
            //Re-insert the rows
            jQuery.each (rowsArray, function (r, val) {
               tbody.appendChild (this.row)
                }
            )
            
           // Workspace.Log ("Done: " + (new Date() - startTime));
                

            
        }
        ,MouseEvent: function (e){
        	
        	//Tooltip
        	if (e.type == "mouseout")
        	{
        		nd()
        	}
        	else if (e.type == "mouseover")
        		overlib('Durch Klicken auf die Jahreszahl, können Sie die Sorten in ab- oder aufsteigender Reihenfolge sortieren lassen.',
        			CAPTION, 'Sortierfunktion')
        	
        	
            var cell = (e ? getEventSource (e) : this);
            var currentDir = jQuery(cell).data ("sort-dir"),
                nextDir = currentDir == "asc" ? "desc" : "asc";
            
            if (e.type =="mouseover")
            {
                jQuery(cell).addClass ("sort-" + nextDir);
            }
            else {
                jQuery(cell).removeClass ("sort-" + nextDir);
                if (currentDir)
                    jQuery(cell).addClass ("sort-" + currentDir);
            }
        }
        ,Extend: function (parent)
        {
        	
            if (!parent) return
            var thead = jQuery(parent).find (".tablescroll_head")[0], 
            	theads = [], isLsvEup = false;
            
            if (!thead) {
            	if (OINK._SortExperiments.Type2 == true) return
            	
            	//LSV/EUP?
            	var tHeads = jQuery(parent).find(".YearsHeaderTable");
            	if (!tHeads) return
            	
            	isLsvEup = true;
            	jQuery.each (tHeads, function () {theads.push(this)});
            }
            else 
            	theads.push(thead)
            
            jQuery.each (theads, function () { 
            	jQuery (this).find ("th,td").each(function () 
	            {
	            	var thisCell = this;
	                if (isLsvEup || this.cellIndex>0)
	                {
	                    jQuery (this).addClass ("sortable");
	                    //addEvent (this, 'onclick', GridView.Sorting.Apply);
	                   	jQuery (this).bind('click', (isLsvEup ? GridView.Sorting.ApplyLsvEup : GridView.Sorting.Apply));
	                    //jQuery (this).bind ('mouseover', GridView.Sorting.MouseEvent);
	                    jQuery (this).bind ('mouseover mouseout', GridView.Sorting.MouseEvent);
	                    //addEvent (this, ['mouseover', 'mouseout'], GridView.Sorting.MouseEvent);
	                    
	                }
	            })
            });
            
        }
    }
    ,Convert : function (table, maxHeight, outTableLayout)
    {
        if (!outTableLayout) outTableLayout = {width: 0, height: 0}
        if (!table) return null
        
        //Workspace.Alert(table.outerHTML);
        
        var tHead = jQuery (table).find ("thead")[0],
            tBody = jQuery (table).find ("tbody")[0],
            container = document.createElement("DIV"),
            tableWidth =  table.offsetWidth,
            tableHeight = table.offsetHeight, 
            headerHeight, wrapperHeight, availableHeight,
            spaceInUse= (35/*top*/ + 15/*bottom*/),
            headerColgroup = document.createElement("COLGROUP"),
            bodyColgroup = document.createElement("COLGROUP")
        ;
        
        
        if (!tHead || !tBody) return;
        
        headerHeight = tHead.offsetHeight;
        
        availableHeight = maxHeight - headerHeight - spaceInUse;
        
        if (tableHeight < availableHeight)
            wrapperHeight = tableHeight + headerHeight;
        else 
            wrapperHeight = availableHeight;
        
        outTableLayout.width = tableWidth + 140;
        outTableLayout.height = wrapperHeight + spaceInUse + headerHeight + 40;
        
        
        container.id = "ContentArea";
        container.innerHTML = '<div class="tablescroll"><table  cellspacing=2 class="tablescroll_head"><tbody></tbody></table>\
<div class="tablescroll_wrapper">\
<table class="tablescroll_body" cellspacing=2><tbody></tbody></table>\
</div></div>';
        
        //Clear head
        jQuery(container).find(".tablescroll_head")[0].removeChild(jQuery (container).find(".tablescroll_head")[0].firstChild);
        //Append colgroup
        jQuery(container).find(".tablescroll_head").append(headerColgroup);
        //Append head
        jQuery(container).find(".tablescroll_head").append(tHead);
        
        
        
        //Clear body 
        jQuery(container).find(".tablescroll_body")[0].removeChild(jQuery (container).find(".tablescroll_body")[0].firstChild);
        //Append colgroup
        jQuery(container).find(".tablescroll_body").append(bodyColgroup);
        //Append body
        jQuery(container).find(".tablescroll_body").append(tBody);
        
        
        //Set head width
        jQuery(container).find(".tablescroll_head").width (tableWidth + "px");
        
        //Set cols widths
        var 
            headerRow = jQuery(container).find(".tablescroll_head").find ("TR")[0],
            tableRow = jQuery(container).find(".tablescroll_body").find ("TR")[0],
            cellWidth, col;
        jQuery(headerRow).addClass ("default-row");
         
        for (var c = 0, e = headerRow.cells.length; c < e; c++)
        {
            
            if (!tableRow.cells [c]) continue;
            cellWidth = int(tableRow.cells [c].style.width);
            if (cellWidth == 0) cellWidth = jQuery(tableRow.cells [c]).width()
            if (c == 0 && !isMS()) cellWidth = 30 
            col = document.createElement("COL");
            
            col.width = cellWidth;
            headerColgroup.appendChild (col)
            
            col = document.createElement("COL");
            col.width = (cellWidth || "*");
            bodyColgroup.appendChild (col)
            if (headerRow.cells [c].style.removeAttribute)
                headerRow.cells [c].style.removeAttribute ("width")
            else 
                headerRow.cells [c].style.width = null;
            
            
            continue;
            
            if (c > 0 && c < (e-1))
            {
                cellWidth += c;
                headerRow.cells [c].style.width  = cellWidth + "px";
            }
            else 
                headerRow.cells [c].style.width  = "auto";
            
            
        }
        
        
        
        //Set body width
        container.firstChild.lastChild.firstChild.style.width = tableWidth + "px";
        
        //Set wrapper height
        container.firstChild.lastChild.style.height = wrapperHeight + "px";
        
        return container
    }
    ,ConvertInfoTable : function (table, maxHeight, outTableLayout)
    {
        if (!outTableLayout) outTableLayout = {width: 0, height: 0}
        
        if (!table) return null                     
        
        //Workspace.Alert(table.outerHTML);
        
        var container = document.createElement("DIV"),
            tableWidth = 550, // table.offsetWidth,
            tableHeight = table.offsetHeight, 
            availableHeight, wrapperHeight,
            spaceInUse= (35/*top*/ + 15/*bottom*/)          
        ;
        
        
        
        availableHeight = maxHeight - spaceInUse;
        
        if (tableHeight < availableHeight)
            wrapperHeight = tableHeight;
        else 
            wrapperHeight = availableHeight;
        
        outTableLayout.width = tableWidth + 80;
        outTableLayout.height = wrapperHeight + spaceInUse +  40;
        
        
        container.id = "ContentArea";
        
        container.style.width = tableWidth + "px";
        container.innerHTML = '<div id=BslEinstufungen align=' + (table.align || 'left') + '></div>';
        container.firstChild.innerHTML = table.innerHTML;
        jQuery (container).find ("#LSVErgebnisse").css ("width", tableWidth + 'px');
        return container
    }

}
function resetCbo(o)
{
  var cbo = o.name;
  var   d = document.ks;
  switch(cbo)
  {
    case "laender_nat" : // Anbaugebiete = FALSE und Bundesländer zurücksetzen
      {
        d.anbaugebiete.value = 0;
        d.laender_nat2.options[0].selected=true;
break;
      }
    case "laender_nat2" : // Anbaugebiete = TRUE und Bundesländer zurücksetzen
      {
        d.anbaugebiete.value = 1;
        d.laender_nat.options[0].selected=true;
break;
      }
    case "lsv_reifegrp" : // Körnerreifezahlen  zurücksetzen
      {
d.lsv_krz.options[0].selected=true;
d.lsv_srz.options[0].selected=true;
        break;
      }
    case "lsv_srz" :     // Reifegruppe zurücksetzen
      {
d.lsv_reifegrp.options[0].selected=true;
        break;
      }
    case "lsv_krz" :      // Reifegruppe zurücksetzen
      {
d.lsv_reifegrp.options[0].selected=true;
        break;
      }
  }
}
function getDoc(docName,height,width){

    if (docName == 'popAbg.htm') height = 670;
    
    url='/sortenspiegel/hilfe/'+docName;
    openPopup(url,height,width, docName);
}
function openPopup (url, height, width, name)
{
    var popup = window.open (url, (name || "Default").replace ((/[^\w]*/gi), ''), 
        "width=" + width + ",height=" + height + ",scrollbars=yes,toolbar=no,menubar=yes,resizable=no");
    popup.focus()
}





 var flagSilo   = false
 var flagKorn   = false
 var flagPrint  = false
 var flagConfm  = false
 var anzJahre,index;

 function checkInput()
 {


  var d    = document.ks;
  var msg  = "Sie müssen mindestens ein Bundes-\n";
      msg += "land, Länderdienststelle oder ein\n";
      msg += "Anbaugebiete Mais auswählen.     \n";
  var flagSubmit = true
  
  // Bundesland bzw Anbaugebiet gewählt ?
 // alert (d.laender_nat.options.selectedIndex);
  if (d.laender_nat != null)
  {
    if  (d.laender_nat.options.selectedIndex==0 && d.laender_nat2.options.selectedIndex==0)
    {
      alert(msg);
      d.laender_nat.focus();
      flagSubmit = false;
    }
  }


 //Anzahl der gewählten Jahre ermitteln
 for (var i = 0; i < d.lsv_jahre.length; i++)
  {
   if (d.lsv_jahre[i].checked == true)   index = i;
  }
 anzJahre  = d.lsv_jahre[index].value;
 //Sortierung nach einem Merkmal > 1 Jahr ?
 if ( checkOrder() == false)   flagSubmit = false

 //Gewählte Parameter zuweisen (Silomais, Körnermais, Druckausgabe)
 flagSilo  = d.lsv_silo.checked;
 flagKorn  = d.lsv_korn.checked;
 flagPrint = d.printversion.checked;

 //Druckhilfe anzeigen ?
 if ((anzJahre == 3) && (flagSilo == true) && (flagPrint == true))   printQuery();

 
 //Formular abschicken ?
 if (flagSubmit == true)   d.submit();

 }
 
function printQuery()
{
 var msg = 'Sie  haben  Silomais  über  3  Jahre  ausgewählt.  \n\n';
 msg    += 'Beachten Sie bitte, dass Silomais Ergebnisse über  \n';
 msg    += '3 Jahre im Querformat ausgedruckt werden müssen,   \n';
 msg    += 'damit alle Daten auf dem Ausdruck erscheinen.      \n\n';
 msg    += 'Wie Sie Ihren Ausdruck im Querformat erhalten,     \n';
 msg    += 'können Sie in der Anleitung "Druckhilfe" nachlesen.\n\n';
 msg    += 'Möchten Sie zuerst die Anleitung lesen ?           ';

 flagConfm = !confirm (msg);
 if (flagConfm == false)  getDoc('pop132.htm','400','620');

}

function checkOrder(){
 var bool = true
 var silo = document.ks.silo_order.options[document.ks.silo_order.selectedIndex].index;
 var korn = document.ks.korn_order.options[document.ks.korn_order.selectedIndex].index;
 var msgSort = 'Sie können die Sortierung nach einem Merkmal nur \n';
 msgSort    += '     bei einjährigen Ergebnissen ausführen !     \n\n';
 msgSort    += 'Drücken Sie "OK", damit die Tabelle mit einem    \n';
 msgSort    += 'Jahrgang aufgebaut sowie sortiert wird oder      \n';
 msgSort    += '"Abbrechen" damit Sie Ihre Auswahl ändern können.\n';

 //Abfrage an Benutzer anzeigen ?
 if ((anzJahre > 1) && ((silo != 0 ) || (korn!=0))){
   bool = confirm(msgSort);
   //Anzahl der Jahre auf eins setzen
   if (bool == true){
     for (var i = 0; i < document.ks.lsv_jahre.length; i++){
      document.ks.lsv_jahre[i].checked = false;
     }
     document.ks.lsv_jahre[0].checked = true;
   }
 }
 return bool
}


function AddChoice(o)
{
    var option = o.options[jQuery(o).val()];
    if (!option) return;
    
    var val = option.text;
    var name = "";
    switch(o.id)
    {
        case "ks_gtm" :
        name = "Gesamttrockenmasse: ";
        break;
        case "ks_sg" :
        name = "Stärkegehalt: ";
        break;
        case "ks_elos" :
        name = "Verdaulichkeit (ElosT): ";
        break;
        case "ks_lp" :
        name = "Lagerneigung (Silo): ";
        break;
        case "ks_ke" :
        name = "Kornertrag: ";
        break;
        case "ks_lp_k" :
        name = "Lagerneigung (Korn): ";
        break;
        case "ks_afs_k" :
        name = "Anfälligkeit für Stengelfäule: ";
        break;
        case "ks_tkm" :
        name = "Tausendkornmasse: ";
        break;
        case "ks_kem" :
        name = "Kälteempfindlichkeit: ";
        break;
        case "ks_nzb" :
        name = "Neigung zur Bestockung: ";
        break;
        case "ks_arb" :
        name = "Abreifgrad der Blätter: ";
        break;
        case "ks_pfl" :
        name = "Pflanzenlänge: ";
        break;
        case "ks_wbd" :
        name = "Weibliche Blüte Datum: ";
        break;
    }
    var inhalt = "<span>"+name+"("+jQuery(o).val()+")<br></span>";
    if ("'"+jQuery(o).val()+"'"=="'0'")
    {
        jQuery("#ContainerSortencheckAuswahl span:contains("+name+")").replaceWith("");
        return;
    }
    
    var a = jQuery("#ContainerSortencheckAuswahl span:contains("+name+")");    
    if (a.length==0)
        jQuery("#ContainerSortencheckAuswahl").append(inhalt);
    else
        jQuery("#ContainerSortencheckAuswahl span:contains("+name+")").replaceWith(inhalt);
    
}
function showUpDivSortenVersuche(id)
{
    OINK.CleanOutputContainer();
    switch(id)
    {
        case 'id_teil1':
            jQuery('#id_teil3').hide();
            jQuery('#id_teil2').hide();
            jQuery('#id_teil1').show();
        break;
        case 'id_teil2':
            jQuery('#id_teil3').hide();
            jQuery('#id_teil1').hide();
            jQuery('#id_teil2').show();
        break;
        case 'id_teil3':
            jQuery('#id_teil2').hide();
            jQuery('#id_teil1').hide();
            jQuery('#id_teil3').show();
        break;        
    }
}

var FavoritesManager = {
    _getUserIndex: function ()
    {
         return CurrentUserInfo ? CurrentUserInfo.UserIndex : null  
    }
    ,_performAction: function (brandIndex, action)
    {
        var userGuid = this._getUserIndex ()
        if (!userGuid) return
        if (!brandIndex) return
    
        
        JSO.Ajax.Send ("POST", "/sortenspiegel/Favorites.asmx/" + action, 
            "userGuid=" + userGuid + "&brandIndex=" + brandIndex, 
            function (response) {
                JSO.Ajax.HandleActionResult (response)
            })
    }
    ,Add: function (brandIndex) {
        
        this._performAction(brandIndex, "Add")
    }
    ,Remove: function (brandIndex) {
        
        this._performAction(brandIndex, "Remove")
    }
    ,Load: function ()
    {
        var userGuid = this._getUserIndex();
        
        if (!userGuid) return
        JSO.Ajax.Send ("POST", "/sortenspiegel/Favorites.asmx/Load", 
            "userGuid=" + userGuid, 
            function (response) {
                
                var result = JSO.Ajax.HandleActionResult (response, true);
                //Workspace.Alert(result.Message)
                if (result && result.Message)
                {
                    var list = window.eval("list = " + result.Message);
                    if (list && list.length >0) 
                    JSO.ForEach (list, function (item){OINK.Favorite (item.name, item.id, true); return true }, true);
                }
            })
    }
}

