var debug=true;
var do_drag=false
var contenttarget = '';
var dragobject,x,y,orW,orH;
var lasturl = "";

var is_opera = false;
var is_nav = false;
var is_moz = false;
var deltaX = 0;
var deltaY = 0;


document.onmousedown=mousedown;
document.onmouseup=new Function("do_drag=false")
document.onmousemove=mousemove;



// Generic
function closepanel(panel){
	var targetpanel = document.getElementById(panel);
	targetpanel.style.display = 'none';
}


function getobject(object){
// browser checking ......
var obj = document.getElementById(object);
if (obj){
	return(obj);
}else{
		//var obj = document.getElementByName(object);
		//if (obj){return(obj)
		//}else{
			if (debug){alert('Object ' + object + ' niet gevonden');}
		//}
	}
}

function hidepanel(layer){
var obj=getobject(layer);
if (obj){
	obj.style.display = 'none';
	}
}

function showpanel(layer){
var obj=getobject(layer);
if (obj){
	obj.style.display = 'block';
	}
}


function togglepanel(layer){
var obj=getobject(layer);
if (obj){
	if (obj.style.display == 'none'){
		obj.style.display = 'block';
	}else{
		obj.style.display = 'none';
	}
	
	}
}


function mousemove(evt){
		if (!evt) var evt = window.event;
		var tg = (evt.target) ? evt.target : evt.srcElement
		
		//if (event.button==1&&do_drag){
		
		if (do_drag){
			if (dragobject.style.cursor == 'nw-resize'){
				dragobject.style.width = orW + (evt.clientX-x) + 'px';
				dragobject.style.height = orH + (evt.clientY-y) + 'px';
			}else{
				dragobject.style.left=temp1+ (evt.clientX-x) + 'px';
				dragobject.style.top=temp2 + (evt.clientY-y) + 'px';
			}
			return false;
		}else{
				if (tg.className=="menu"){
					tg=getObjectParentTag('div',tg);
				}
				if (tg.className=="dragable"){
					var ox=parseInt(tg.style.width) - (evt.clientX - parseInt(tg.style.left));
					trace(ox);
					if (ox<5){
						tg.style.cursor = 'nw-resize';
					}else{
						tg.style.cursor = 'pointer';
					}
				}
		}
			
		
		

}
function mousedown(evt){
	if (!evt) var evt = window.event;
	var tg = (evt.target) ? evt.target : evt.srcElement

	if (tg.className=="dragable"){
		do_drag=true;
		dragobject=tg;
	}
	if ((tg.className=="barheader") || (tg.className=="dragparent") || (tg.className=="menu")){
		do_drag=true
		dragobject=getObjectParentTag('div',tg);
	}
	if (do_drag){
		//temp1=dragobject.style.pixelLeft
		//temp2=dragobject.style.pixelTop
		temp1=parseInt(dragobject.style.left)
		temp2=parseInt(dragobject.style.top)
		orW=parseInt(dragobject.style.width)
		orH=parseInt(dragobject.style.height)
		if (isNaN(temp1)) {temp1 = 0} 
		if (isNaN(temp2)) {temp2 = 0} 
		
		x=evt.clientX
		y=evt.clientY
		document.onmousemove=mousemove
	}

}


function startdrag(panel){
	do_drag=true
	dragobject=getobject(panel);
}

function stopdrag(){
	do_drag=false;
}

function getParentTag(currEl) {
  	if (currEl.parentElement){
  		currEl = currEl.parentElement;
	}else{
		currEl = currEl.parentNode;
	}
	
  return currEl;
}

function getObjectParentTag(elName,currEl) {
	
	currEl = getParentTag(currEl);
	
  while (currEl && currEl.tagName.toLowerCase() != "body") {
    if (currEl.tagName.toLowerCase() == elName) {
      return currEl;
    }
	
    currEl = getParentTag(currEl);
 
  }  
 
  return null;
}

function trace(txt){
	//Getobject('mainmenu').innerHTML = txt;
	
}



function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}




// specific

function setup(){
	var contentpanel = document.getElementById('contentpanel');
	var flashpanel = document.getElementById('flashpanel');
	var coors = findPos(flashpanel);
	contentpanel.style.left = (coors[0] + 10) + 'px';
	contentpanel.style.top = coors[1]  + 'px';
	
	var newsleft = coors[0] + 10;
	var newstop = coors[1] + 10;
	
	var querystring = window.location.search.substring(1);
	
	if (querystring != ''){
		loadpage('',querystring);
	}else{
		var newspanel = document.getElementById('newspanel');
		if (newspanel){
			slidelayer('newspanel',newsleft,newstop,30,false)
		}
	}
}

function loadpage(pagetitel,pagename){
	var contentpanel = document.getElementById('contentpanel');
	var contenttitel = document.getElementById('titel');
	var contentbody = document.getElementById('contentbody');
	var sliderpanel = document.getElementById('sliderpanel');
	contenttitel.innerHTML = pagetitel;
	contentpanel.style.display = 'block'
	sliderpanel.style.marginTop = '588px'
	ahah('vliegnaar/?page=' + pagename + '&rn=' + Math.random(),'contentbody');
	
}


// ahah code

function ahah(url,target) {
	lasturl = url;
    document.getElementById(target).innerHTML = 'loading data...';
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {ahahDone(target);};
        req.open("GET", url, true);
        req.send(null);
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {ahahDone(target);};
            req.open("GET", url, true);
            req.send();
        }
    }
} 

function ahahDone(target) {
   // only if req is "loaded"
   if (req.readyState == 4) {
       // only if "OK"
       if (req.status == 200 || req.status == 304) {
           results = req.responseText;
           document.getElementById(target).innerHTML = results;
		   
		   // rebind javascript events?
		   //thumbnailviewer.dotask(window, function(){thumbnailviewer.init()}, "load");
		   //thumbnailviewer.dotask(window, function(){thumbnailviewer.cleanup()}, "unload");
		   //alert('load');
		   
		   
       } else {
           document.getElementById(target).innerHTML="ahah error:\n" +
               req.statusText + '(' + lasturl +')';
       }
   }
}





function movelayer(layer,Xpos,Ypos){
var obj=getobject(layer);
if (obj){
	obj.style.left = Xpos + 'px';
	obj.style.top = Ypos + 'px';
	}

}

function slidelayer(layer,Xpos,Ypos,steps,elastic){
	// Elastic is nog niet klaar
	
	// NetScape and Mozilla are a bit slow: decrease steps
	// Do not slide in Opera: it's VERY slow
	
	if (is_nav || is_moz){steps = steps / 1.5;}
	if (!is_opera){
		var obj = getobject(layer);
		
		
		var deltaX=(Xpos-parseInt(obj.style.left))/steps;
		var deltaY=(Ypos-parseInt(obj.style.top))/steps;
		setTimeout('slide("'+layer+'",'+deltaX+','+Xpos+','+deltaY+','+Ypos+')', 50);
		
	}else{
		movelayer(layer,Xpos,Ypos);
	}
}

function slide(layer,deltaX,Xpos,deltaY,Ypos){
	
	
	
var obj = getobject(layer);
if (obj){
		var CurX=parseInt(obj.style.left);
		var CurY=parseInt(obj.style.top);
		//alert(CurX);
		var doslide=false;
		if ((deltaX>0) && ((CurX+deltaX) < Xpos)){doslide=true}
		if ((deltaX<0) && ((CurX+deltaX) > Xpos)){doslide=true}
		if ((deltaY>0) && ((CurY+deltaY) < Ypos)){doslide=true}
		if ((deltaY<0) && ((CurY+deltaY) > Ypos)){doslide=true}
		if (doslide){
			obj.style.left = CurX+deltaX+'px';
			obj.style.top = CurY+deltaY+'px';
			setTimeout('slide("'+layer+'",'+deltaX+','+Xpos+','+deltaY+','+Ypos+')', 50);
		}else{
			//clearInterval(intervalID);
			obj.style.left = Xpos+'px';
			obj.style.top  = Ypos+'px';
			
		}
	}else{
	//clearInterval(intervalID);
	}
	
}


function showimage(el){
	var contentpanel = document.getElementById('contentpanel');
	var thumbImage = document.getElementById("thumbImage")
	var thumbBox = document.getElementById("thumbBox")
	if (thumbImage && thumbBox){
		thumbImage.innerHTML = '<img src="' + el + '">'
		
		
		thumbBox.style.left = (parseInt(contentpanel.style.left) + 4) + 'px';
		thumbBox.style.top = (parseInt(contentpanel.style.top) + 30) + 'px';
	    showpanel('thumbBox');
	}
}

