$(document).ready(function(){
	
	$("div.main-body").corner("10px top");
		
	//ajax.initialize();
	
	//$("div.startLink").fadeTo("0.5");
	
	//$("div.error").hide();
	
	//statistik.init( $("div.statistik") );
	
	//$("div.checkbox").bind('click', function(){ $(this).toggleClass('checkbox_a'); });
	
	//$(".dialog .buttons .btn-close").bind('click', function(){dialog.close($(this).parent().parent());});
	
	$("#login").bind('click', function(){
		$("div.main-sidebar").html('Benutzername:<br /><input type="text"><br />Password: <br /><input type="password"><a>submit</a>');
		showSidebar();
	});
	
	// initialize navigation
	
	
	//check if we have a #link defined, if so, load it.
	var locStr = '' + self.location;
	var locAr = locStr.split('#');
	if(locAr[1]){
		//this.loadPageM(locAr[1]);
		var locAr1 = locAr[1].split('&');
		$.each(locAr1, function(i, n){
			var argAr = n.split('=');
			
			//page-load:
			if(argAr[0] == 'q'){
				//load page via ajax
			}
			if(argAr[0] == 'selCat'){
				//select the appropriate category
				selCat = argAr[1];
			}
			if(argAr[0] == 'color'){
				$('.bg-top').attr('src', '/images/pattern_top_red.png');
				$('.oberleiste').attr('src', '/images/Oberleiste_red.png');
				$('body').css('background-color', '#C80000').css('background-image', 'url(/images/bg_rep_red.png)').css('background-repeat','repeat-y');
			}
			arg1 = argAr;
		});
	}	
});

var selCat = '';
var arg1 = '';

//////////////////////////////////  Sidebar functions  ////////////////////////////////
	// FUNCTIONS:
	// 	showSidebar() : void
	// 	hideSidebar(setNoSidebar: boolean) : void
	
var noSidebar = false;
function showSidebar(){
	if(!noSidebar){
		$("div.main-body").animate({left: 20}, 1000, function(){ 
			$("div.main-sidebar").slideDown(1000);
			$("div.main-sidebar").corner("10px");
		});
	}
}
function hideSidebar(setNoSidebar){
	$("div.main-sidebar").slideUp(1000, function(){ 
		$("div.main-body").animate({left: 100}, 1000);
	});
	if(setNoSidebar){
		noSidebar = true;
	}
}

//////////// AJAX ///////////
var ajax = {
	
	initialize: function(){
		//initializing the ajax loading mechanism
		$.ajaxSetup( {
			url: '/index.php',
			type: 'POST',
			ifModified: false,
			global: true,
			error: function(v1,v2){ajax.error("Load Error!<br />"+this.url); },
			async: true, 
			data: 'ajax=true'
		});
		//bind links and navbar items
		$("a").bind('click', this.loadPage);
		$("a").not('.extern').bind('click', this.loadPage);
		
	},
	loadPage: function(){
		$.post('/index.php' ,{q: $(this).attr('href')}, function(data){
			$("div.main-body").html(data);
			ajax.refreshBind();
		});
		var locStr = '' + self.location;
		var locAr = locStr.split('#');
		top.location.href = locAr[0] + '#' + $(this).attr('href');
		return false;
	},
	loadPageM: function(pUrl){
		$("div.main-content .body").load( 'index.php' ,{q: pUrl}, ajax.refreshBind);
	},
	loadTo: function(etarget, eaction){
		$(etarget).load('index.php', {ajax: true, a: eaction});
	},
	refreshBind: function(){
		$("a").bind('click', ajax.loadPage);
	},
	error: function(pText){
		$("div.error").html(pText).fadeIn();
		setTimeout('$("div.error").fadeOut("slow");', 3000);
	}
	
}
/////////// DIALOG ///////////
var dialog = {
	open: function(elem){
		$(elem).slideDown("slow");
		$(".overlay").show().fadeTo('normal',0.6);
	},
	close: function(elem){
		$(elem).slideUp("slow");
		$(".overlay").fadeOut();
	}
}

//////////////////////////////////////////  HUD   //////////////////////////////////

HUD = {
		show: function(){
			$("div.HUD").slideDown();
			// hack to prevent unnesccesary scrollbars
			$('body div.HUD').css('width', $("table.HUD", 'body div.HUD').outerWidth()+30 );
			
			//return this object
			return HUD;
		},
		hide: function(){
			$("div.HUD").fadeOut();
			//return this object
			return HUD;
		},
		enable: function(){
			//clean up first
			HUD.destroy();
			
			//append html to body
			$('body').append('<div class="HUD" style="display: none;"><table class="HUD" cellspacing="0">'+
		'	<tr class="HUDhandle"><td class="HUDheadLeft"></td><td class="HUDheadCenter">'+
		'	<img src="/images/HUD/HUDClose.png" style="float: left; margin-top: 4px; margin-left: -8px;" class="HUDclose">'+
		'	<div class="HUDtitle" id="handle">'+ "HUD Title here..." +'</div><div class="HUDtoolbar">'+ "HUD Toolbar items here..." +'</div></td><td class="HUDheadRight"></td></tr>'+
		'	<tr><td class="HUDLeft"></td><td class="HUDCenter">'+ "HUD Body here..." +'</td><td class="HUDRight"></td></tr>'+
		'	<tr><td class="HUDbottomLeft"></td><td class="HUDbottomCenter"></td><td class="HUDbottomRight"></td></tr>'+
		'</table></div>');
			// binds the close-button
			$(".HUDclose", 'body div.HUD').bind('click', function(){ $("div.HUD").fadeOut();});
			//$('body div.HUD').draggable({handle: '.handle'});
			
			return HUD;
		},
		title: function(arg){
			if(arg){
				//set the title
				$("div.HUDtitle", 'body div.HUD').text(arg);
				//return this object
				return HUD;
			}else{
				//return title;
				return $("div.HUDtitle", 'body div.HUD').text();
			}
		},
		toolbar: function(arg){
			if(arg){
				//add toolbar HTML
				$("div.HUDtoolbar", 'body div.HUD').html(arg);
				//return this object
				return HUD;
			}else{
				//return selector to toolbar
				return $("div.HUDtoolbar", 'body div.HUD');
			}
		},
		body: function(arg){
			if(arg){
				//add body html
				$(".HUDCenter", 'body div.HUD').html(arg);
				//return this object
				return HUD;
			}else{
				//return selector to body
				return $("div.HUDCenter", 'body div.HUD');
			}
		},
		destroy: function(){
			//destroy
			$('body div.HUD').remove();
			HUD.loadedImages = 0;
			HUD.firstImage = false;
		},
		slider: function(){
			var container = $('div.HUDtoolbar');
			var ul = $('ul', container);
			
			var itemsWidth = ul.innerWidth() - container.outerWidth();
			// size the toolbar accordingly to the content
			
			
			if(itemsWidth > 0){
				$('.slider', container).slider({
					minValue: 0,
					maxValue: itemsWidth,
					handle: '.handle',
					stop: function (event, ui) {
						ul.animate({'left' : ((ui.value/100) * itemsWidth *-1)}, 500);
					},
					slide: function (event, ui) {
						ul.css('left', ((ui.value/100) * itemsWidth *-1));
					}
				});
			}else{
				$('.slider', container).hide();
			}
			return HUD;
		},
		imageGallery: function(){
			HUD.destroy(); //clean up first
			HUD.enable().toolbar('<ul></ul><div class="slider"><div class="handle"></div></div>').body('<img id="HUDimg" /><div class="HUDctrlAlign"><img src="/images/HUD/Left.png" class="HUDctrlLeft"><div class="HUDctrlCenter">Gallery<br />by FlyCam.org</div><img src="/images/HUD/Right.png" class="HUDctrlRight"></div>');
			
			return HUD;
		},
		addImage: function(file){
			var id = 'IMG_tn_'+$('.HUDtoolbar ul li').size();
			$(".HUDtoolbar ul").append('<li id="'+id+'"><img src="'+productImageCache.imageUrl(file, 'thumbnail')+'" file="'+file+'" height="43"></li>'+"\n");
			
			$('.HUDtoolbar ul li:last img').load(function(){
				//alert('Loaded '+ id_num + ' of '+ $('.HUDtoolbar ul li').size() );
				HUD.loadedImages++;
				if(HUD.loadedImages == $('.HUDtoolbar ul li').size()){
					// all have loaded, initialize
					//bind the image changing mechanism
					$(".HUDtoolbar img").bind('click', function(){
						//change image
						HUD.changeImage(this);
					});
					
					$("#HUDimg").load(function(){
						// prevent any image being displayed too wide because of previous height adjustments
						var ratio = $("#HUDimg").width() / $("#HUDimg").height();
						if($("#HUDimg").width() > 600){
							// width may not be adjusted to preserve correct aspect ratio, so calculate appropriate height and let the desired width be used automatically
							$("#HUDimg").height(600/ratio);
						}
						var maxHeight = 600/ratio;
						//adjust height to browser window
						if($(window).height() - 180 < maxHeight){
							$("#HUDimg").height($(window).height() - 180);
							$("#HUDimg").css('width', 'auto');
						}else{
							$("#HUDimg").height(maxHeight);
						}
					});
					
					//center it nicely
					$(".HUDtoolbar ul li img:first").addClass("active");
					$(".HUD").css('left', ($(window).width() - $(".HUD").outerWidth()) / 2 );
					
					//initialize slider
					HUD.slider();
					
					// bind prev/next buttons
					$('.HUD .HUDctrlLeft').bind('click', function(){
						var prev = $('img',$(".HUDtoolbar ul li img.active").parent().prev());
						if($('.HUDtoolbar ul li:first img').is('.active'))
							prev = $('.HUDtoolbar ul li:last img');
						HUD.changeImage(prev);
					});
					$('.HUD .HUDctrlRight').bind('click', function(){
						var next = $('img',$(".HUDtoolbar ul li img.active").parent().next());
						if($('.HUDtoolbar ul li:last img').is('.active'))
							next = $('.HUDtoolbar ul li:first img');
						HUD.changeImage(next);
					});
					
					// change to first image, either provided or the first one in the HUDtoolbar
					if(HUD.firstImage){
						HUD.changeImage($(".HUDtoolbar ul li img[@file="+$(HUD.firstImage).attr('file')+"]"));
					}else{
						HUD.changeImage($('.HUDtoolbar ul li:first img'));
					}
					
					// animate the HUDctrls
					$('.HUD .HUDctrlAlign').animate({bottom: -5}, 2000);
				}
			});
			return HUD;
		},
		changeImage: function(newI){
			//IE Hack:
			if($.browser.msie){
				// remove and readd the #HUDimg html to retrigger the load event
				$("HUDimg").remove();
				HUD.body('<img id="HUDimg" />'+HUD.body() );
				alert('MSIE');
			}
			$("#HUDimg").attr('src', productImageCache.imageUrl($(newI).attr('file'), 'large') );
			//alert($(newI).attr('file'));
			$(".HUDtoolbar ul li img.active").removeClass("active");
			$(newI).addClass("active");
			$(".HUDctrlCenter").html(($(".HUDtoolbar ul *").index($(newI).parent())/2 +1) + ' von ' + $(".HUDtoolbar ul li").size());
		},
		loadedImages: 0,
		firstImage: false

	}

var productImageCache = {
	imagePath: '',
	imageUrl: function(url, size){
		return ('/image.php?file='+this.imagePath+url+'&size='+size);
	}
}



//////////////////////////////////////////////////////////////////            DATA FUNCTIONS            //////////////////////////////////////////////////////////////////
	
	var colXML;
	
	function getFilename(data){
		
		var m = data.match(/(.*)[\/\\]([^\/\\]+\.\w+)$/);
		
		return {path: m[1], file: m[2]}
		
	}
	
	// declare the variable that will hold the slideshow array
	
	var SlideshowImages = new Array();
	
	
	
	// declare the function for making the XMLHttp Request (AJAX)
	
	function XMLrequest(url, callback){
		
		var xhr;
		
		var xmlDoc;
		
		if (window.XMLHttpRequest){     // Object of the current windows
		
		    xhr = new XMLHttpRequest();     // Firefox, Safari, ...
		    
		}else if (window.ActiveXObject){   // ActiveX version (NOTE: the space between the "}else" and "if" is required, otherwise JS will give an error )
		    
		    xhr = new ActiveXObject("Microsoft.XMLHTTP");  // Internet Explorer 
		    
		 } 
		 
		xhr.onreadystatechange  = function(){ 
			
			if(xhr.readyState  == 4){
				if(xhr.status  == 200){
					
					xmlDoc = xhr.responseXML;
					
					callback(xmlDoc);
	
				}else 
					alert("Error code " + xhr.status);
			}
		}; 
		
		xhr.open("GET", url,  true); 
		xhr.send(null); 
	}


function zeroPad(num,count)
{
var numZeropad = num + '';
while(numZeropad.length < count) {
numZeropad = "0" + numZeropad;
}
return numZeropad;
}