/*
  6 arguemnts:
  	1) string - feed to display
    2) object that the alert should be close to, or ''
    3) integer - width in pixels - default: 350
    4) integer - height in pixels - default: 150 (minimum height)
    5) string - message for the closing button

  functions:
    customCommandAccept - will be called if user clicks the 'OK'/'Agree' button
    customCommandDecline - will be called if user clicks the 'Decline' button
*/
var priorQS = "";

function showFeed(form,element,width,height){
	var qs = formFieldsGET(form);
	if(qs == priorQS) { showLayer(); return false; }
	priorQS = qs;
	
	var frame = '<iframe src="http://www.clickshub.com/?' + qs + '" style="margin:0; padding:0; display:block;" width="890px" height="450" frameborder="0" scrolling="yes" onload="document.getElementById(\'loadingMessage\').style.visibility = \'hidden\';"></iframe>';
	
  if (!width)
    width = 920;
  if (!height)
    height = 505;

  var newDiv1 = document.createElement("DIV");
  var newDiv2 = document.createElement("DIV");
  var newDiv3 = document.createElement("DIV");

  var topLayerDiv = '<div id="topLayer" style="position:fixed;top:0;left:0;width:100%;height:100%;filter:alpha(opacity=50);opacity: 0.5;background-color:#b0b0b0;visibility:hidden;z-index:99;"></div>';
  var focusBoxDiv = '<div id="focusBox" style="position:fixed;top:15px;left:15px;text-align:center;width:' + width + 'px;min-height:' + height + 'px;visibility:hidden;background-color:white;color:#5b5b5b;border:solid brown 2px;-moz-border-radius:8px;-webkit-border-radius:8px;z-index:100;"></div>';
  var loadingMessageDiv = '<div id="loadingMessage" style="position:fixed; top:100px; left:15px; text-align:left; padding:20px;visibility:hidden;background-color:white;color:#5b5b5b;border:solid gray 1px;-moz-border-radius:8px;-webkit-border-radius:8px;z-index:101;">Gathering & Loading Matching Companies<br>Please wait a few seconds...<br><img src="/images/processing.gif" width="250" height="250"></div>';

  newDiv1.innerHTML = topLayerDiv;
  newDiv2.innerHTML = focusBoxDiv;
  newDiv3.innerHTML = loadingMessageDiv;
  
  if(!document.getElementById('topLayer')) document.body.appendChild(newDiv1);
  if(!document.getElementById('focusBox')) document.body.appendChild(newDiv2);
  if(!document.getElementById('loadingMessage')) document.body.appendChild(newDiv3);
  showLayer('new');

  if(element){    
    var XY = findPos(element); 
    var WH = getWindSize();
    var boxW; var boxH;
	var messageW; var messageH;

    if(document.getElementById('focusBox').offsetWidth) boxW = document.getElementById('focusBox').offsetWidth;
    if(document.getElementById('focusBox').offsetHeight) boxH = document.getElementById('focusBox').offsetHeight;

    if(document.getElementById('loadingMessage').offsetWidth) messageW = document.getElementById('loadingMessage').offsetWidth;
    if(document.getElementById('loadingMessage').offsetHeight) messageH = document.getElementById('loadingMessage').offsetHeight;


    if( (XY[0] + boxW/2) > WH[0]) XY[0] = WH[0] - boxW/2 - 5;
    if( (XY[0] - boxW/2) < 0) XY[0] = boxW/2 + 5;
    if( (XY[1] - boxH) < 0) XY[1] = boxH + 5;
    
    document.getElementById('focusBox').style.left = (XY[0] - boxW/2) + 'px';
//    document.getElementById('focusBox').style.top = (XY[1] - boxH) + 'px';

    document.getElementById('loadingMessage').style.left = (XY[0] - messageW/2) + 'px';
//    document.getElementById('loadingMessage').style.top = (XY[1] - messageH - 200) + 'px';
  }

  var innerHTML = '<table width="100%" height="100%" border="0">'
    + '<tr><td align="right" height="20px" style="padding:3px;"><a href="#" style="color:gray;text-decoration:none;font-size:14px;" onClick="closeLayer();">close X</a>'
    + '<tr valign="middle"><td align="center" style="border-top:solid 1px #333333;border-bottom:solid 1px #333333;">'
    + '<table border="0" width="100%"><tr><td align="center">' + frame + '</table>'
	+ '</table>'
	+ '<a href="#" style="color:#0080ff;text-decoration:none;font-size:13px;" onClick="window.open(\'http://www.clickshub.com/?' + qs + '\');"><span style="position:relative;bottom:2px;">View Results in New Window</span> <img src="/images/new-window.png" border="0" style="margin-top:2px;"></a>';

  document.getElementById('focusBox').innerHTML = innerHTML;

}

function OKed(){
  closeLayer();
  try{ customCommandAccept(); } catch(err) {}
  return false;
}
function notOKed() {
  closeLayer();
  try{ customCommandDecline(); } catch(err) {}
  return false;
}

function showLayer(newQuery){
	document.getElementById('topLayer').style.visibility='visible';
	document.getElementById('focusBox').style.visibility='visible';
	if(newQuery) document.getElementById('loadingMessage').style.visibility='visible';
}

function closeLayer() {
  document.getElementById('topLayer').style.visibility='hidden';
  document.getElementById('focusBox').style.visibility='hidden';
  document.getElementById('loadingMessage').style.visibility='hidden';
}

function findPos(obj) {
  var curleft = curtop = 0;
  while (obj) {
    curleft += obj.offsetLeft
    curtop += obj.offsetTop
    obj = obj.offsetParent
  }
  return [curleft,curtop];
}

function getWindSize(){
  var winW; var winH;
  if (parseInt(navigator.appVersion)>3) {
   if (navigator.appName=="Netscape") {
    winW = window.innerWidth;
    winH = window.innerHeight;
   }
   if (navigator.appName.indexOf("Microsoft")!=-1) {
    winW = document.body.offsetWidth;
    winH = document.body.offsetHeight;
   }
  }  
  return [winW,winH];
}

function formFieldsGET(form){
	var qstr = '';
	var elem = document.getElementById(form).elements;
	for(var i = 0; i < elem.length; i++){
		qstr += elem[i].name + "=";
		qstr += elem[i].value + "&";
	} 
	return qstr;
}

