/* get flash movie */
function thisMovie(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

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

function displayElem (aId, aState) {
  
  var css_state = (aState) ? 'block' : 'none';
  var aElem = document.getElementById(aId);
  
  if(aElem) {
    
    aElem.style.display = css_state;
    
  }
  
}

function hiliteElem (aElem, aState) {
  
  var css_add = '_hoover';
  
  if(aElem) {
    
    if( aElem.className.indexOf('_active') > -1) return;
    if( aState == 1) {
      aElem.className += css_add;
    } else {
      var e_css = aElem.className.replace(css_add, '');
      aElem.className = e_css;
    }
  }
  
}

function setElemActive (numActiveElem, numElems, elemPrefix) {
  
  var active_elem = document.getElementById(elemPrefix+numActiveElem); 
  
  for(var i=0; i<numElems; i++) {
    
    var currElem = document.getElementById(elemPrefix+i);  
    if( !currElem ) continue;
    
    var e1_css = currElem.className.replace('_hoover', '');
    var e2_css = e1_css.replace('_active', '');
    
    currElem.className = e2_css;
    
  }
  
  if(active_elem) 
    active_elem.className += '_active';
  
}


function activateTab (numActiveTab, numTabs, tabPrefix, containerPrefix) {
  
  setElemActive (numActiveTab, numTabs, tabPrefix);
  setElemActive (numActiveTab, numTabs, containerPrefix);
  
}

function batchNav( dir, numPages, containerPrefix ) {
  
  var curr_num_elem = document.getElementById( containerPrefix + 'curr_num');
  var curr_num = Number(curr_num_elem.innerHTML);
  if(!curr_num) return;
  
  var next_num = curr_num + dir;
  if( next_num > numPages || next_num <= 0 ) return;

  setElemActive ((next_num-1), numPages, containerPrefix);
  curr_num_elem.innerHTML = next_num;
  
}

function GetXmlHttpObject(handler)
{
  var objXMLHttp=null
  if (window.XMLHttpRequest)
  {
      objXMLHttp=new XMLHttpRequest()
  }
  else if (window.ActiveXObject)
  {
      objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  }
  return objXMLHttp
}

function stateChanged(aXmlHttp, aObjId)
{                   
  if (aXmlHttp.readyState==4 || aXmlHttp.readyState=="complete")
  {    
      document.getElementById(aObjId).innerHTML=aXmlHttp.responseText;
  }
  else {
      //alert(aXmlHttp.status);
  }
}

function htmlData(aUrl, qStr, aObjId)
{
  
  if(aObjId == undefined) aObjId = "txtResult";
  var container = document.getElementById(aObjId);
  
  
  
  if (aUrl.length==0)
  {
      container.innerHTML="";
      return;
  }
  xmlHttp=GetXmlHttpObject()
  if (xmlHttp==null)
  {
      alert ("Browser does not support HTTP Request");
      return;
  }

  
  aUrl=aUrl+"?"+qStr;
  aUrl=aUrl+"&sid="+Math.random();
  
  xmlHttp.onreadystatechange = function() {
    stateChanged(xmlHttp, aObjId);
  }
  
  xmlHttp.open("GET",aUrl,true) ;
  xmlHttp.send(null);
}

/* screenshot gallery right column */
function scaleStage(s_id, s_rows) {
    
  var d_height = 177;
  
  var s_obj = document.getElementById(s_id);
  if (!s_obj) return;
   
  var s_height = d_height + (s_rows * (68+12));
    
  setTimeout( function() { doResize( s_obj, s_height) }, 5);
      
}

function doResize ( s_obj, s_height ) {
  
  var sh = s_obj.offsetHeight;
  var diff = 20;
  
  shn = s_obj.offsetHeight + diff;
  
  if( shn < s_height ) {
    s_obj.style.height = shn + 'px';
    setTimeout( function() { doResize( s_obj, s_height) }, 5);
  } else {
    s_obj.style.height = s_height + 'px';
  }

}

/* screenshots product page */
function showGImage(gid, num) {
    var mov = thisMovie(gid);
    if(mov.showGalleryImage != undefined) {
      mov.showGalleryImage(num);
    }
}

/* pulldown menu functions */
var timeout       = 50;
var closetimer		= 0;
var ddmenuitem    = 0;
var ddhoverimg    = 0;
var ddiframe    = 0;

function jsddm_open()
{	jsddm_canceltimer();
	jsddm_close();
	ddmenuitem = $(this).find('div.jsddm_submenu').eq(0).css('visibility', 'visible');
	ddhoverimg = $(this).find('img.image_hover').eq(0).css('visibility', 'visible');
	
	// for IE select problem
	var h = ddmenuitem.height();
	ddiframe = $(this).find('iframe').eq(0).css('height', h + 'px');
	
}

function jsddm_close()
{	if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');
  if(ddhoverimg) ddhoverimg.css('visibility', 'hidden');}

function jsddm_timer()
{	closetimer = window.setTimeout(jsddm_close, timeout);}

function jsddm_canceltimer()
{	if(closetimer)
	{	window.clearTimeout(closetimer);
		closetimer = null;}}

jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

function callSearchResults(f_event,f_obj, f_url, f_qs) {

  var e_target = (typeof event != "undefined") ? event.srcElement : f_event.target;
  var qselems = f_qs.split('&');
  var qselems_new = new Array();
  for(var i=0; i<qselems.length; i++) {
    if(qselems[i].indexOf('topics=') != 0) {
      qselems_new.push(qselems[i]);
    }
  }

  // check/uncheck checkbox of this item
  var cb = $(f_obj).find('input').eq(0);
  if(e_target.tagName != 'INPUT') {  
    cb.attr('checked', ( (cb.attr('checked') == true ) ? false : true ) );
  }
  
  // get all options of the topic checkbox and join values for qs
  var topiclist = new Array();
  var atLeastOneChecked = false;
  var cbs = $('input[name=' + cb.attr('name') + ']');
  for(var i=0; i < cbs.length; i++) {
    if(cbs[i].checked == true) { topiclist.push(cbs[i].value); atLeastOneChecked = true; }
  }
  
  if ( atLeastOneChecked ) {
    qselems_new.push('topics=' + topiclist.join(','));
  } else {
    qselems_new.push('topics=noneselected');
  }
  var spath = f_url+'?'+qselems_new.join('&');
  
  window.location.href=spath;
  
}
