﻿$(document).ready(function(){
	
	 // Set popup window dimensions
		$.nyroModalSettings({
		    width: '780', // **********************************  changed: width & height - 08.03.2010 (cv)
		    height: '768'
		});
	
    // Execute code only for the used cranes application
    $('div#frmUsedCranes').each(function(){

        // Language
        // To do: set language in page
//        var language = "en";
		var language = tx_currLang;
        
        /* Selected dropdown list fields */
        var ddlSelected = {
            craneowner: '',
            category: '',
            manufacturer: ''
        }
        
        /* Fill dropdown lists */
		reset();
		function reset(){
			callAjax0("/app/UsedCranes/asmx/UsedCranes.asmx/GetLanguageStrings", language, "TerexCranesUsedCranesHome");
			callAjax1("/app/UsedCranes/asmx/UsedCranes.asmx/GetDDLValues", language, "#craneowners");
			callAjax1("/app/UsedCranes/asmx/UsedCranes.asmx/GetDDLValues", language, "#categories");
			callAjax1("/app/UsedCranes/asmx/UsedCranes.asmx/GetDDLValues", language, "#manufacturers");
			callAjax2("/app/UsedCranes/asmx/UsedCranes.asmx/GetUsedcranes", language);
		}
        
        /* Get and set translations */
		// To-do: What happen's in case of a failure 
        function callAjax0(webservice, language, scope){
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: webservice,
                data: "{language: '" + language + "', scope:'" + scope + "'}",
                dataType: "json",
                success: function(msg){
                
                    var mf = (typeof msg.d) == 'string' ? eval('(' + msg.d + ')') : msg.d;
                    var translations = new Object();
                    
                    for (var i = 0; i < mf.length; i++) {
                        $(mf[i].key).html(mf[i].value);
                    }
                
                },
                failure: function(msg){
                    // do nothing?
                }
            });
        }
        
        /* Get dropdown list values */
		// To-do: Error handler OK?
        function callAjax1(webservice, language, id){
        
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: webservice,
                data: "{language: '" + language + "', type: '" + id + "'}",
                dataType: "json",
                success: function(msg){
                    fillDropdownList(msg, id);
                },
                failure: function(msg){
                    $('div#error').empty();
					$('div#error').html('Error loading dropdown lists.');
					$('div#error').css({'display' : 'block'});
                }
            });
            
        }
        
		/* Display dropdown list values */
		// To-do: Error handler OK?
        function fillDropdownList(msg, id){
        
            if (msg.d) {
				var mf = (typeof msg.d) == 'string' ? eval('(' + msg.d + ')') : msg.d;
				var cont = [];
				
				cont.push('<option value="empty"></option>');
				for (var i = 0; i < mf.length; i++) {
					cont.push('<option value="' + mf[i].value + '">' + mf[i].text + '</option>');
				}
				
				$(id).empty();
				$(id).html(cont.join(''));
			} else {
				var $error_div = $('div#error');
				$error_div.empty();
				$error_div.html('Error loading dropdown lists.');
				$error_div.css({'display' : 'block'});
			}
            
        };
		
		/* Display used cranes list */
		// To-do: Error handler OK?
		function callAjax2(webservice, language){
			$.ajax({
				type: "POST",
				contentType: "application/json; charset=utf-8",
				url: webservice,
				//public string GetUsedcranes(string language, string category, string manufacturer, string craneowner)
				data: "{language: '" + language + "', category: '" + ddlSelected.category + "', manufacturer: '" + ddlSelected.manufacturer + "', craneowner: '" + ddlSelected.craneowner + "'}",
				dataType: "json",
				success: function(msg){
				
					if (msg.d) {
						var mf = (typeof msg.d) == 'string' ? eval('(' + msg.d + ')') : msg.d;
						var cont = [];
						var t;
						
						for (var i = 0; i < mf.length; i++) {
							cont.push('<tr>');
							//cont.push('<td><a href="UsedCrane.aspx?codenr=' + mf[i].codenr + "&lang=" + language + '">' + mf[i].codenr + '</a></td>');
							cont.push('<td><a href="#" class="nyroModal">' + mf[i].codenr + '</a></td>');
							cont.push('<td>' + mf[i].manufacturer + ' ' + mf[i].model + '<br />' + mf[i].owner + '</td>');
							cont.push('<td>' + mf[i].catname + '</td>');
							if (mf[i].us_tons == "0") {
								t = " t";
							}
							else {
								t = " t (US)"
							};
							cont.push('<td>' + mf[i].capacity + t + '</td>');
							//cont.push('<td>' + mf[i].us_tons + '</td>');
							cont.push('<td>' + mf[i].year + '</td>');
							cont.push('</tr>');
						}
						
						$('#usedtable tbody').empty();
						$('#usedtable tbody').html(cont.join(''));
					}
					else {
						var $error_div = $('div#error');
						$error_div.empty();
						$error_div.html('Error loading crane list.');
						$error_div.css({
							'display': 'block'
						});
					}
					
				},
				failure: function(msg){
						var $error_div = $('div#error');
						$error_div.empty();
						$error_div.html('Error loading crane list.');
						$error_div.css({
							'display': 'block'
						});
				}
			});
		}
        
		/* Event handlers */
        $(function(){
        
            $("#categories").change(function(){
                ddlSelected.category = $(this).val(); //attr("selectedValue");
                callAjax2("/app/UsedCranes/asmx/UsedCranes.asmx/GetUsedcranes", language);
            });
            
            $("#craneowners").change(function(){
                ddlSelected.craneowner = $(this).val(); //attr("selectedValue");
                callAjax2("/app/UsedCranes/asmx/UsedCranes.asmx/GetUsedcranes", language);
            });
            
            $("#manufacturers").change(function(){
                ddlSelected.manufacturer = $(this).val(); //attr("selectedValue");
                callAjax2("/app/UsedCranes/asmx/UsedCranes.asmx/GetUsedcranes", language);
            });
            
            $("#language a").click(function(){
                if ( String(this.href).indexOf(".") == -1 ) {
                    var iLen = String(this.href).length;
                    language = String(this.href).substring(iLen, iLen - 2);
                    reset();
				    //callAjax0("UsedCranes.asmx/GetLanguageStrings", language);
                    return false;
                }
            });
            
			// Load used crane
            $.listen('click', 'a.nyroModal', function(e){

                e.preventDefault();
                var codenr = $(this).text();
                $.nyroModalManual({
                    url: '/app/UsedCranes/UsedCrane.aspx?codenr=' + codenr + '&lang=' + language
                });
                return false;

            });
			
        });
       
    });
    
});
