
//init globals (DON'T TOUCH!)
_movePopWindowTrigger = false;
_popWindowOffsetX = 0;
_popWindowOffsetY = 0;
_lastPopWindowLeft = 0;
_lastPopWindowTop = 0;
posx = 0;
posy = 0;

/*
* popWindow(STRING mypage [, INT w] [, INT h] [,BOOL gui]);
*	pop a navigator window with my own specs
*		mypage	: STRING	URL to display
*		w		: INT		window width in pixels
*		h		: INT		window heigth in pixels
*		gui		: BOOL		show window title bar, default true
*/
function popWindow(mypage,w,h,direct,gui){
    //set defaults
    w = w ? w : 200;
    h = h ? h : 150;
	
	
	//get or create element...
    if(!document.getElementById('popwindiv')){
        //create div
	    popwindiv = document.createElement('DIV');
	    popwindiv.id = 'popwindiv';
    	popwindiv.style.position = document.all ? 'absolute' : 'fixed'; //fixed position for MSIE is patched!
	    popwindiv.style.zIndex = 1000000;
	    popwindiv.style.visibility = 'hidden';
		popwindiv.style.overflow='hidden';  

        popwindiv.style.backgroundColor = '#000';
        document.getElementsByTagName('body')[0].appendChild(popwindiv);

		//add gui
		if(gui !== false){
			popwingui = document.createElement('DIV');
			popwingui.id = 'popwingui';
			popwingui.style.textAlign = 'right';
			popwingui.innerHTML = "<a href=\"javascript:void(0);\" onclick=\"javascript:document.getElementById('popwindiv').style.visibility='hidden';\" style=\"text-decoration:none;color:#000000;background-color:#cccccc;border:2px outset #c0c0c0;font-size:10px;font-family:arial;\">&nbsp;Kapat (X)&nbsp;</a>";
			popwindiv.appendChild(popwingui);
		}

	    //add iframe
	    popwiniframe = document.createElement('IFRAME');
		popwiniframe.id = 'popwiniframe';
		popwiniframe.name = 'popwin';
		popwiniframe.frameBorder = 0;
		if(document.all){
		    popwiniframe.onmouseover = function(){_movePopWindowTrigger=false;};
		}else{
			popwiniframe.setAttribute('onmouseover','_movePopWindowTrigger=false;');
		}
		popwindiv.appendChild(popwiniframe);
    }else{
    	//get elements
	    popwindiv = document.getElementById('popwindiv');
	    popwingui = document.getElementById('popwingui');
	    popwiniframe = document.getElementById('popwiniframe');
    }

	//when mypage is an imgage file, kill margins. (this doesn't seem to work on Mozilla based browsers??)
	ext = mypage.substring(mypage.lastIndexOf('.') + 1);
	if(ext == 'gif' || ext == 'png' || ext == 'jpg' || ext == 'jpeg'){
		popwiniframe.setAttribute('marginWidth','0');
		popwiniframe.setAttribute('marginHeight','0');
	}else{
		popwiniframe.setAttribute('marginWidth','10');
		popwiniframe.setAttribute('marginHeight','10');
	}

    //resize element...
    popwindiv.style.width = w + 'px';
    popwindiv.style.height = (h + parseInt(popwingui.offsetHeight)) + 'px';
	popwiniframe.style.width = w + 'px';
	popwiniframe.style.height = h + 'px';
	popwindiv.style.overflow='hidden'; 

    //position the popup
    posx = mousePos('x');
	posy = mousePos('y');

	if(direct == "left") posx -= w;
	else if(direct == "center") posx -= parseInt(w/2);

	popwindiv.style.top = document.body.scrollTop+"px";
	popwindiv.style.left = 10+"px"; 
	popwindiv.style.overflow='hidden'; 

   	//emulate fixed position.
    if(document.all) window.onscroll = window.onresize = _MSIEpositionPopWindow;

	//get page
	popwiniframe.src = mypage;

	//add drag and drop functionality.
	document.onmousedown = _movePopWindow;
	document.onmouseup = new Function('_movePopWindowTrigger=false;');

	//show popup
	popwindiv.style.visibility = '';
	popwindiv.style.overflow='hidden'; 
}

/**
* _MSIEpositionPopWindow()
*	nasty patch for fixed position for MSIE
*	(This can be done better, only not without a CSS style. And because I want this script to be fool proof...)
*/
function _MSIEpositionPopWindow(){
	popwindiv = document.getElementById('popwindiv');
	popwindiv.style.top = document.body.scrollTop+"px";
	popwindiv.style.left = 10+"px"; 
	popwindiv.style.overflow='hidden';
}

/**
* _movePopWindow()
*	Init the drag of the popup window...
*/
function _movePopWindow(e){
	bar = document.all ? event.srcElement.id : e.target.id;
	if(bar == 'popwingui'){
		//get start mouse position
		_popWindowOffsetX = document.all ? event.clientX : e.clientX;
		_popWindowOffsetY = document.all ? event.clientY : e.clientY;

		//get window position
		popwindiv = document.getElementById('popwindiv');
		tempx = parseInt(popwindiv.style.left);
		tempy = parseInt(popwindiv.style.top);

		//do movement
		_movePopWindowTrigger = true;
		document.onmousemove = _dragPopWindow;
	}
}

/**
* _dragPopWindow()
*	Do movement of window....
*/
function _dragPopWindow(e){
	if(_movePopWindowTrigger == true){
		//push to new position
		popwindiv = document.getElementById('popwindiv');
		popwindiv.style.overflow='hidden'; 
		if(document.all){
			popwindiv.style.left = _lastPopWindowLeft = (tempx + (event.clientX - _popWindowOffsetX)) + 'px';
			popwindiv.style.top = _lastPopWindowTop = (tempy + (event.clientY - _popWindowOffsetY)) + 'px';
			popwindiv.style.overflow='hidden'; 
		}else{
			popwindiv.style.left = _lastPopWindowLeft = (tempx + (e.clientX - _popWindowOffsetX)) + 'px';
			popwindiv.style.top = _lastPopWindowTop = (tempy + (e.clientY - _popWindowOffsetY)) + 'px';
			popwindiv.style.overflow='hidden'; 
		}
	}
	return false;
}


function mousePos(posw,e) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
		popwindiv.style.overflow='hidden'; 
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
			popwindiv.style.overflow='hidden'; 
	}
	
	if(posw == 'x') return posx;
	else if(posw == 'y') return posy;
}


