function vtgdbObj() {
	this.version = '1.0';
}
var $vtgdb = new vtgdbObj();


vtgdbObj.prototype.showVersion = function() {
	alert('Version: ' + $vtgdb.version);
};

vtgdbObj.prototype.defaultValue = function(field) {
	return $(field)[0].defaultValue;
};

vtgdbObj.prototype.setSelectionValues = function(selectField, httpUrl, firstOption, notFoundAction, initialValue) {
	if (firstOption == null) {
		firstOption = '';
	}	
	//$(selectField).html('<option value="">Die Daten werden gesucht.</option>');	
	$.ajax({
        url: httpUrl,
        type: "GET",
        dataType: "xml",
        //data: request,
        success: function(xmlResponse) {  			    
		    var options = firstOption;
		    $(xmlResponse).find('item').each(function() {		    	
		    	var val = $(this).find('name').text();	
		    	var bez = $(this).find('value').text();		    			    	
			    options += '<option value="'+ val + '">' + bez + '</option>\n';					    
			});		
		    if (options == '' || options == firstOption) {
		    	$(selectField).html('<option value="">Keine Daten gefunden.</option>');
		    	if (notFoundAction == 'hide') {		    		
		    		$(selectField).css('display', 'none');
		    	} else if (notFoundAction == 'disable') {
		    		$(selectField).attr('disabled', 'disabled');
		    	}	
		    } else {	
	            $(selectField).html(options);
	            if (notFoundAction == 'hide') {
		    		$(selectField).css('display', '');
		    	} else if (notFoundAction == 'disable') {
		    		$(selectField).removeAttr('disabled');
		    	}	            
	            if (initialValue != null) {	            		            		            
	            	$(selectField + ' [value=' + initialValue + ']').attr('selected', 'selected');
	            	$(selectField).trigger('change');
	            }		            		            
		    }
        },
	    error: function(xmlHttpReq, statusText, errEvt) {
        	$(selectField).html('<option value="">Es ist ein Fehler aufgetreten: ' + statusText + '</option>');
        }	
    });	
	
};

vtgdbObj.prototype.addGetAutocomplete = function(field, url, minLength, idField, displayTag) {
  $vtgdb.addAutocomplete(field, url, 'GET', minLength, idField, displayTag, true);
};

vtgdbObj.prototype.addPostAutocomplete = function(field, url, minLength, idField, displayTag) {
  $vtgdb.addAutocomplete(field, url, 'POST', minLength, idField, displayTag, true);
};

vtgdbObj.prototype.addAutocomplete = function(field, url, type, minLength, idField, displayTag, searchButton) {	
    if (type == null) {
      type = "GET";
    }
    if (minLength == null) {
	  minLength = 1;
    }  
    if (displayTag == null) {
    	displayTag = "name";
    } else {
    	displayTag = "column[name=" + displayTag + "]";
    }
    
    if ($(field).autocomplete()) {
    	$(field).autocomplete('destroy');
    }
       
	$(field).autocomplete({
        minLength: minLength,
        source: function(request, response) {		    
		    // use value in url
			var val = escape($(field).val());	    
		    var httpUrl = "";
		    if (typeof url == 'function') {		    	
		    	httpUrl = url();
		    } else {
		    	httpUrl = url;
		    }
		    httpUrl = httpUrl.replace(/\{\?\}/g, val);		                                                                          
            $.ajax({
                url: httpUrl,
                type: type,
                dataType: "xml",
                //data: request,
                success:  function(xmlResponse) {            			  
              	  var data = $("item", xmlResponse).map(function() {
                        return {
                            value: $(displayTag, this).text().replace(/</g, '&lt;').replace(/>/g, '&gt;'),
                            id: $("value", this).text().replace(/</g, '&lt;').replace(/>/g, '&gt;'),
                            realVal: $("name", this).text().replace(/</g, '&lt;').replace(/>/g, '&gt;')
                        };
                    }).get();             
                    response(data);                     
                }

            });
        },  // source
        select:  function(event, ui) {
	        if (ui.item && idField) {                    
	      	  $(idField).attr("value", ui.item.id);                           
	        }
	        $(field).attr("value", ui.item.realVal.replace(/&lt;/g, '<').replace(/&gt;/g,'>'));
	        event.preventDefault();

        },
        focus: function(event, ui) {        	
        	$(field).attr("value", ui.item.realVal.replace(/&lt;/g, '<').replace(/&gt;/g,'>'));
        	event.preventDefault();
        }
    });	
	if (searchButton) {
      $('<img class="vtgdb-ui-autocomplete-image" src="../images/Search16.gif" border="0" title="Suchfeld (ab ' + minLength + ' Zeichen)" />').insertAfter($(field));
	}
        
    try {
	    if ($(field).parent().get(0).tagName == 'TD') { // no wrap!
	    	$(field).parent().css('white-space', 'nowrap');
	    }
    } catch (ex) {}    
};

vtgdbObj.prototype.addDatePicker = function(id, dateFormat, calImg) {	
	if (calImg == null) {
		calImg = '../images/calendar16.gif';
	} 		
	if (dateFormat == null) {
		dateFormat = 'dd.mm.yy';
	}
	var len = $(id).attr('size');	
	if (!len || len < (dateFormat.length + 6)) {
		$(id).attr('size', (dateFormat.length + 6));
	}
	$(id).removeClass('data_field');
	$(id).addClass('ui-input');
	var currVal = $(id).val();	
	var currObj = $(id);		
	$(id).datepicker({dateFormat: dateFormat, changeYear: 'true', changeMonth: 'true', showWeek: 'true', showOn: 'both', buttonImage: calImg, buttonImageOnly: 'true'});
};

vtgdbObj.prototype.useJQueryClasses = function() {
	//$('input').attr('class', 'ui-widget');		
	//$('textarea').attr('class', 'ui-widget');
	//$('select').attr('class', 'ui-widget');	
};

vtgdbObj.prototype.addMainMenuItem = function(name, link, target) {	
	name = name.replace(/ /g, '&#160;');
	
	var onclick = null;
	if (link.substr(0,11) == 'javascript:') {
		onclick = link.substr(11);
		link = 'javascript:void(0);';
	} 	
	
	var txt = '<a class="mainMenuItem" href="' + link + '"'; 
	if (target) {
	  txt += 'target="' + target + '"';
	}
	if (onclick != null) {
	  txt += ' onclick="' + onclick + '" ';	
	}
	txt += '>' + name + '</a><br />';
	document.write(txt);		  
};


if (window.addEventListener) {
	window.addEventListener( "load", function() { $vtgdb.useJQueryClasses(); }, false );
}
else if (window.attachEvent) {
	window.attachEvent( "onload", function() { $vtgdb.useJQueryClasses(); });
}


