// Copyright (C) 2005-2008 Ilya S. Lyubinskiy. All rights reserved.
// Technical support: http://www.php-development.ru/
//
// YOU MAY NOT
// (1) Remove or modify this copyright notice.
// (2) Re-distribute this code or any part of it.
//     Instead, you may link to the homepage of this code:
//     http://www.php-development.ru/javascripts/popup-window.php
//
// YOU MAY
// (1) Use this code on your website.
// (2) Use this code as part of another product.
//
// NO WARRANTY
// This code is provided "as is" without warranty of any kind.
// You expressly acknowledge and agree that use of this code is at your own risk.

// USAGE
//
// function popup_show(id, drag_id, exit_id, position, x, y, position_id)
//
// id          - id of a popup window;
// drag_id     - id of an element within popup window intended for dragging it
// exit_id     - id of an element within popup window intended for hiding it
// position    - positioning type:
//               "element", "element-right", "element-bottom", "mouse",
//               "screen-top-left", "screen-center", "screen-bottom-right"
// x, y        - offset
// position_id - id of an element relative to which popup window will be positioned
// swf definition:


// ***** Variables *************************************************************

var popup_dragging = false;
var popup_target;
var popup_mouseX;
var popup_mouseY;
var popup_mouseposX;
var popup_mouseposY;
var popup_oldfunction;
var mySwfDef = "";
var currentContent = "";
// ***** loading function **************



function defineSWF(content){
	//var mySwfDef = "<div class='sample_popup' id='popup' style='display: none;'><div class='menu_form_header' id='popup_drag' style='background-color:#666'><img class='menu_form_exit'   id='popup_exit' src='images/form_exit.png' alt='' />";
	var mySwfDef ="<div class='menu_form_header' id='popup_drag' style='background-color:#003300; border:thin #007700 solid; border-bottom:#000 thin solid'><table width="+content[1]+"align='right'><tr align='right' ><td align='right'><img id='popup_exit' src='images/close.png' alt='' /></td></tr></table></div>";
	mySwfDef += "<div class='menu_form_body' id='popup_content' style='border:thin #003300 solid'>";
	mySwfDef += "<object id='contentID' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width="+content[1]+" height="+content[2]+">";
	mySwfDef += "<param name='movie' value='" + content[0] +"' /><param name='quality' value='high' /><param name='wmode' value='opaque' /><param name='swfversion' value='6.0.65.0' />";
	mySwfDef += "<param name='expressinstall' value='Scripts/expressInstall.swf' />";
	mySwfDef += "<object type='application/x-shockwave-flash' data='" + content[0] +"' width="+content[1]+" height="+content[2]+">";
	mySwfDef += "<param name='quality' value='high' /><param name='wmode' value='opaque' /><param name='swfversion' value='6.0.65.0' /><param name='expressinstall' value='Scripts/expressInstall.swf' />";
	mySwfDef += "<div><h4>Content on this page requires a newer version of Adobe Flash Player.</h4><p>";
	mySwfDef +=  "<a href='http://www.adobe.com/go/getflashplayer'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player' /></a></p></div>";
	mySwfDef +=  "</object><!--<![endif]--></object>";
	mySwfDef += "</div>";	
	return mySwfDef;

}


function ReplaceContentInContainer(id,content) {
	var container = document.getElementById(id);
	container.innerHTML = content;
}

function loadContentInContainer(content) {

//	var container = document.getElementById("popup_content");
//	container.innerHTML = defineSWF(content);
	//alert(content[3]);
	var docExists = document.getElementById("popup");
	var test1 = docExists !=null;
	var test2 = currentContent == content[0];
	var createNewDiv = true;
	
	// if there is already a window with requested content.
	if(!test1 || !test2){
		
		createNewDiv = true;
		
	}else{
	
		createNewDiv = false;
		
	}
	if(test1 && !test2){
		
		removeDiv();
		
		
	}
	
	
	
	if(createNewDiv){
		
	currentContent = content[0];	
	
	var newdiv = document.createElement('div');
	var divIdName = 'popup';
	newdiv.setAttribute('class','sample_popup');
	newdiv.setAttribute('id',divIdName);
	//newdiv.setAttribute('zindex',"1");
	//newdiv.style.width =  content[1];
	//newdiv.style.height = content[2];
	newdiv.style.position = "absolute";	
	newdiv.style.left = content[3];
	newdiv.style.top = content[4];
	newdiv.style.zIndex = "2";
	newdiv.style.display = "none";
	//newdiv.style.border = "2px solid #000000";
	newdiv.innerHTML = defineSWF(content);
	document.body.appendChild(newdiv);

	popup_show('popup', 'popup_drag', 'popup_exit', 'screen-center',0,0);
	
	}
}



// ***** popup_mousedown *******************************************************

function popup_mousedown(e)
{
  var ie = navigator.appName == "Microsoft Internet Explorer";

  popup_mouseposX = ie ? window.event.clientX : e.clientX;
  popup_mouseposY = ie ? window.event.clientY : e.clientY;
}


// ***** popup_mousedown_window ************************************************

function popup_mousedown_window(e)
{
  var ie = navigator.appName == "Microsoft Internet Explorer";

  if ( ie && window.event.button != 1) return;
  if (!ie && e.button            != 0) return;

  popup_dragging = true;
  popup_target   = this['target'];
  popup_mouseX   = ie ? window.event.clientX : e.clientX;
  popup_mouseY   = ie ? window.event.clientY : e.clientY;

  if (ie)
       popup_oldfunction = document.onselectstart;
  else popup_oldfunction = document.onmousedown;

  if (ie)
       document.onselectstart = new Function("return false;");
  else document.onmousedown   = new Function("return false;");
}


// ***** popup_mousemove *******************************************************

function popup_mousemove(e)
{
  var ie      = navigator.appName == "Microsoft Internet Explorer";
  var element = document.getElementById(popup_target);
  var mouseX  = ie ? window.event.clientX : e.clientX;
  var mouseY  = ie ? window.event.clientY : e.clientY;

  if (!popup_dragging) return;

  element.style.left = (element.offsetLeft+mouseX-popup_mouseX)+'px';
  element.style.top  = (element.offsetTop +mouseY-popup_mouseY)+'px';

  popup_mouseX = ie ? window.event.clientX : e.clientX;
  popup_mouseY = ie ? window.event.clientY : e.clientY;
}

// ***** popup_mouseup *********************************************************

function popup_mouseup(e)
{
  var ie      = navigator.appName == "Microsoft Internet Explorer";
  var element = document.getElementById(popup_target);

  if (!popup_dragging) return;

  popup_dragging = false;

  if (ie)
       document.onselectstart = popup_oldfunction;
  else document.onmousedown   = popup_oldfunction;
}

// ***** popup_exit ************************************************************

function popup_exit(e)
{
  var ie      = navigator.appName == "Microsoft Internet Explorer";
  var element = document.getElementById("popup");
  var parent = document.getElementById("popup").parentNode;

  popup_mouseup(e);
  element.style.display = 'none';
  currentContent = "";
  parent.removeChild(element);
  
  //ReplaceContentInContainer(popup_target,"");
  
  //alert("hello");

}


function removeDiv(){

  var element = document.getElementById("popup");
  var parent = document.getElementById("popup").parentNode;
  element.style.display = 'none';	
  parent.removeChild(element);	
}

// ***** popup_show ************************************************************

function popup_show(id, drag_id, exit_id, position, x, y, position_id)
{

  var element      = document.getElementById(id);
  var drag_element = document.getElementById(drag_id);
  var exit_element = document.getElementById(exit_id);

  var width        = window.innerWidth  ? window.innerWidth  : document.documentElement.clientWidth;
  var height       = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight;

  element.style.position = "absolute";
  element.style.display  = "block";



  drag_element['target']   = id;
  drag_element.onmousedown = popup_mousedown_window;

  exit_element.onclick     = popup_exit;
}


// ***** Attach Events *********************************************************

if (navigator.appName == "Microsoft Internet Explorer")
     document.attachEvent   ('onmousedown', popup_mousedown);
else document.addEventListener('mousedown', popup_mousedown, false);

if (navigator.appName == "Microsoft Internet Explorer")
     document.attachEvent   ('onmousemove', popup_mousemove);
else document.addEventListener('mousemove', popup_mousemove, false);

if (navigator.appName == "Microsoft Internet Explorer")
     document.attachEvent   ('onmouseup', popup_mouseup);
else document.addEventListener('mouseup', popup_mouseup, false);

