
var xmlhttp = null;
var response_handlers = Array();
var isIE = window.ActiveXObject ? 1:0;
var myvnnbhtml = null;
var playing = 'frontvideo';
var broadcast_available = false;
var broadcast_description = '';
var currentItem = 0;
var currentPlaylist = '';
var autostart = true;
var is_admin = false;

function vnnbstart() {
  if (getCookie('vnnb_loaded')) {
    autostart = false;
  } else {
    setCookie('vnnb_loaded','1',null);
  }
  showRandomFeatureList();
  rearrangeTop();
  playProgram(null);
  checkStream();
}

function enlargePhoto1(photoid) {
  newwin=window.open('index.php?c=photo&p='+photoid,'photowindow','width=470, height=480,location=no,menubar=no,scrollbars=no,status=no,toolbar=no, resizable=no,top=60,left=200,screenx=200,screeny=60');
  newwin.focus();
}

function sendRequest(url,query,callback_func) {
  request = getHtmlRequest();
  if (!request) return true;
  request.open("POST", url, true);
  request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  request.setRequestHeader("Content-length", query.length);
  request.setRequestHeader("Connection", "close");

  request.onreadystatechange =
    function () {
      if (request.readyState==4 && request.status==200) {
        callback_func(request);
      }
    };
  request.send(query);
  return false;
}

function displayLargePhoto(request) {
  var content = request.responseText;
  var photoDiv = document.getElementById('largephotodiv');
  photoDiv.innerHTML = content;
}

function enlargePhoto(photoid) {
  var width = 540;
  var height = 440;
  var screenHeight = document.body.clientHeight;
  var screenWidth = document.body.clientWidth;
  var left = 0;
  var top = 0;

  var photoDiv = document.getElementById('largephotodiv');
  if (!photoDiv) {
    photoDiv = document.createElement('div');
    photoDiv.id='largephotodiv';
    document.body.appendChild(photoDiv);
  }

  if (screenHeight < height) height = screenHeight;
  left = (screenWidth - width)/2+document.body.scrollLeft;
  top = (screenHeight - height)/2+document.body.scrollTop;
 
  photoDiv.style.width=width+'px';
  photoDiv.style.height=height+'px';
  photoDiv.style.left=left+'px';
  photoDiv.style.top=top+'px';
  photoDiv.className = 'photoDiv';
  photoDiv.innerHTML = '<center>Please wait...</center>';
  sendRequest('index.php','c=photo&p='+photoid,displayLargePhoto);
  return false;
}

function closeLargePhoto() {
  var photoDiv = document.getElementById('largephotodiv');
  if (photoDiv) {
    photoDiv.innerHTML = '';
    document.body.removeChild(photoDiv);
  }
  return false;
}

function popupwindow(url,height,width,name) {
  newwin=window.open(url,name,'width='+width+', height='+height+',location=no,menubar=no,scrollbars=no,status=no,toolbar=no, resizable=no,top=60,left=200,screenx='+width+',screeny='+height);
  newwin.focus();
}

function confirmDelete(url) {
  window.name='main';
  if (confirm('Delete?')) window.open(url,'main');
  else return;
}

response_handlers['ratedis'] = ratedis_handler;

function ratedis_handler(resp) {
  var resp_status = getChildValue(resp,'status');
  var disid = getChildValue(resp,'did');
  var artid = getChildValue(resp,'aid');
  var rater_box = document.getElementById('raterbox'+artid+'_'+disid);

  if (resp_status == 'ok') {
    rater_box.innerHTML = getChildValue(resp,'msg');
    rater_box.className = 'RaterBoxAccepted';
  } else {
    rating_wait_interval += 5000;
    rater_box.innerHTML = getChildValue(resp,'error_msg');
    rater_box.className = 'RaterBoxError';
  }

  return true;
}

function manageDis(articleid,disid,ownerid,action) {
  return sendreq('c=mandis&p='+articleid+'&did='+disid+'&owner='+ownerid+'&action='+action);
}



function changeBodyFontSize(obj) {
  var newsize=10;
  newsize = parseInt(obj.options[obj.selectedIndex].value);
  if (!newsize || newsize<7) {
    newsize = 10;
  }
  document.body.style.fontSize=newsize+'pt';
  setCookie('vnnb_fontsize',newsize+'',null);
  document.body.focus();
}

function setupFlashPlayers(type) { 
  var so;
  if (!document.getElementById('frontvideo')) {
    alert('ERROR: no player');
    return false;
  }
  if (type=='frontvideo') {
    so = new SWFObject('/flash2/mediaplayer41.swf','mpl','400','250','9');
    so.addParam('allowscriptaccess','always');
    so.addParam('allowfullscreen','true');
    so.addVariable('fullscreen','true');
    so.addVariable('autostart','true');
    so.addVariable('repeat','list');
    so.addVariable('enablejs','false');
    so.addVariable('javascriptid','mpl');
    so.addVariable('tracecall','getUpdate');
    so.write('frontvideo');
  } else if (type=='frontbroadcast') {
    so = new SWFObject('http://hwcdn.net/c2a4g6j9/cds/hwplayer.swf','mpl','400','250','9');
    so.addParam('allowscriptaccess','always');
    so.addParam('allowfullscreen','true');
    so.addVariable('image','/images/webradio.jpg');
    so.addVariable('fullscreen','true');
    so.addVariable('autostart','true');
    so.addVariable('enablejs','true');
    so.addVariable('javascriptid','mpl');
    so.addVariable('tracecall','getUpdateBroadcast');
    //so.addVariable('streamscript','rtmpt://flash-2704-live.simplecdn.net/liveplay/');
    //so.addVariable('streamer','rtmpt://flash-2704-live.simplecdn.net/liveplay/');
    so.addVariable('file','http://hwcdn.net/u8v3j6z4/fls/13700-Vnnb-Radio.smil');
    so.addVariable('type','highwinds');
    so.write('frontvideo');
  }
}

function selectFlash(sel,stage) {
  var videoinfo = document.getElementById('videoinfo');
  var playerObj;


  if (!sel) {
    alert("Error!");
    return false;
  }

  if (playing == sel && stage==0)
    return false;

  playerObj = getPlayer('mpl');

  if (stage == 0) {
    if (sel == 'frontvideo') {
      if (videoinfo) {
        videoinfo.innerHTML = '';
      }
    } else {
      if (videoinfo) {
        videoinfo.innerHTML = broadcast_description+
                              '<div>&#272;&#7875; ti&#7871;p t&#7909;c xem vnnb tv, xin b&#7845;m v&#224;o ch&#7919; &quot;vnnb tv&quot; &#7903; tr&#234;n</div>';
      }
    }

    if (playerObj) {
      playerObj.sendEvent("STOP",0);
    }

    document.getElementById(playing+'_tab').className="flash_tab_show";
    document.getElementById(sel+'_tab').className="flash_tab_selected";

    playing = sel;
    setTimeout('selectFlash("'+sel+'",1);',300);
  } else if (stage == 1) {
    document.getElementById('frontvideo').innerHTML = '';
    setupFlashPlayers(sel);
    setTimeout('selectFlash("'+sel+'",2);',300);
  } else {
    if (sel == 'frontvideo') {
      resumeProgram();
    } else {
      if (playerObj && playerObj.sendEvent) {
        playerObj.sendEvent("PLAY",0);
      } else if (stage < 8) {
        setTimeout('selectFlash("'+sel+'",'+(stage+1)+');',500);
      }
    }
  }
  return false;
}

function rearrangeTop() {
  var topleft = document.getElementById('topleft');
  var topright = document.getElementById('topright');
  var leftheight = 0;
  var rightheight = 0;
  var difference = 0;
  var shorter, taller;
  var node;

  if (!topleft || !topright) return;
  for (i=0;i<topleft.childNodes.length; i++) {
    if (!topleft.childNodes[i].tagName) continue;
    if (topleft.childNodes[i].tagName.toLowerCase() != 'div') continue;
    leftheight += topleft.childNodes[i].offsetHeight;
  }
  
  for (i=0;i<topright.childNodes.length; i++) {
    if (!topright.childNodes[i].tagName) continue;
    if (topright.childNodes[i].tagName.toLowerCase() != 'div') continue;
    rightheight += topright.childNodes[i].offsetHeight;
  }
  difference = rightheight - leftheight;
  if (Math.abs(difference)>50) {
    shorter = topleft;
    taller = topright;
    if (difference<0) {
      taller = topleft;
      shorter = topright;
    }
    difference = Math.abs(difference);
  
    for (i=taller.childNodes.length-1;i>=0;i--) {
      if (!taller.childNodes[i].tagName) continue;
      if (taller.childNodes[i].tagName.toLowerCase() != 'div') continue;
      if (taller.childNodes[i].id == 'videoinfo') continue;
      if (taller.childNodes[i].id == 'flash_select_bar') continue;
      if (taller.childNodes[i].offsetHeight<(difference*0.8)) break;
    }
  
    if (i>=0) {
      node = taller.childNodes[i];
      taller.removeChild(node);
      shorter.appendChild(node);
    }
  }
}

function getParams(params) {
  var ret = new Array();
  var temp = new Array();
  var temp1;
  var count = 0;
  if (!params || params=='') return ret; 
  temp = params.split(/\,/,8);
  for (var key in temp) {
    temp1 = temp[key].split(/:/,2);
    ret[temp1[0]] = temp1[1];
    count++;
  }
  return ret;
}

function changeVolume(c) {
  var playerObj = getPlayer('mpl');
  var curVol = getPlayer('mpl').getConfig().volume;
  var newVol = curVol + c;

  if (newVol > 100) newVol = 100;
  if (newVol < 0) newVol = 0;

  getPlayer('mpl').sendEvent('VOLUME',newVol); 
}

function rewritePlaylist(playing_item) {
  var playlist,item;
  var vnnbtvlisting;

  vnnbtvlisting = document.getElementById('vnnbtvlisting');
  playlist = getPlayer('mpl').getPlaylist();

  if (vnnbtvlisting) {
    vnnbtvlisting.innerHTML ='';
    for (var key in playlist) {
      if (key==0) continue;
      item = playlist[key];
      if (item['link']) continue;
      if (key == playing_item) {
        vnnbtvlisting.innerHTML += '<li><b>'+item['title']+'</b></li>';
      } else {
        vnnbtvlisting.innerHTML += '<li><span onClick="autostart=true; return playVideoItem('+key+');" onMouseOver="this.style.fontWeight=\'bold\';" onMouseOut="this.style.fontWeight=\'normal\';" class="out">'+item['title']+'</span></li>';
      }
    }
  }
}

function controllerEvent(e,params) {
  var videoinfo;
  var playlist,item,vidtitle;
  var paramsArray;
  videoinfo = document.getElementById('videoinfo');
  
  if (!videoinfo) return;
  
  paramsArray = getParams(params);
  playlist = getPlayer('mpl').getPlaylist();
  if (e=='ITEM') {
    videoinfo.innerHTML = '';
    currentItem = paramsArray['index'];
    item = playlist[currentItem];
    if (item['link']) {
      videoinfo.innerHTML += '<div class="ad_notice">VNNB TV s&#7869; &#273;&#432;&#7907;c ti&#7871;p t&#7909;c sau ph&#7847;n qu&#7843;ng c&#225;o</div>';
    }
    videoinfo.innerHTML += '<img src="'+item['image']+'" onerror="this.onerror=null;this.src=\'images/PSlogo1.gif\';" width="96" height="60" class="vidimage">';
    vidtitle = '';
    if (item['link']) {
      vidtitle += '<a href="'+item['link']+'">';
    }
    vidtitle += item['title'];
    if (item['link']) {
      vidtitle += '</a>';
    }
    videoinfo.innerHTML+=vidtitle;
    if (item['description'] && item['description'].length>4) {
      videoinfo.innerHTML += ' <div class="description">'+item['description']+'</div>';
    }
    rewritePlaylist(paramsArray['index']);
  } else if (e=='PLAYLIST') {
    if (autostart) {
      playVideoItem(currentItem);
    } else {
      rewritePlaylist(0);
    }
  }
}

function modelEvent(e,params) {
  var videoinfo;
  var paramsArray;
  videoinfo = document.getElementById('videoinfo');
  if (!videoinfo) return;
  paramsArray = getParams(params);
  if (e=='STATE') {
    if (paramsArray['newstate']=='PLAYING') {
      autostart = true;
    } else if (paramsArray['newstate']=='PAUSE') {
      autostart = false;
    }
  }
}

function getUpdateBroadcast(mevent) {
}
 
function getUpdate(mevent) {
  var temp = new Array();
  var part1, part2, etype, e;
  temp = mevent.split(/[\(\)]/,3);
  part1 = temp[0];
  part2 = temp[1];
  if (part1) {
    temp = new Array();
    temp = part1.split(/[:]/,3);
    etype = temp[0];
    e = temp[1].replace(/\s/g,'');
    if (etype == 'MODEL') {
      modelEvent(e,part2);
    } else if (etype == 'CONTROLLER') {
      controllerEvent(e,part2);
    }
  }
}

function playVideoItem(item) {
  var playerObj = getPlayer('mpl');
  if (playing!='frontvideo') {
    currentItem = item;
    selectFlash("frontvideo",0);
    return false;
  }
  if (item>1 && item%2!=0) {
    item = item - 1;
  }
  if (playerObj && playerObj.sendEvent) {
    playerObj.sendEvent("ITEM",item);
  }
  return false; 
}

function startBroadcast(stage,value) {
  var broadcastbar = document.getElementById('broadcastbar');
  var broadcastbox = document.getElementById('frontvideo');
  var wait,stop=0;
  var cur_height,final_bar_height = 40, final_video_height=250;
  var roll_value=10;

  if (!broadcastbox) return false;
  if (stage=='begin') {

    stage = 'rollout';
    wait = 500;
    broadcastbar.className='broadcast_bar';
    broadcastbar.style.height='1px';
    stage = 'rollout';
    value = 0;
  } else if (stage=='rollout') {
    if (value==roll_value) {
      cur_height = final_bar_height;
      stage = 'countdown';
      value = 5;
    } else {
      cur_height = (final_bar_height/roll_value)*(value);
      if (!cur_height) cur_height = 1;
      value+=1;
    }
    broadcastbar.style.height=cur_height+'px';
    broadcastbar.style.top = parseInt(document.body.scrollTop)+'px';
    wait = 100;
  } else if (stage=='countdown') {
    if (broadcastbox) {
      broadcastbar.innerHTML = 'Ch&#432;&#417;ng tr&#236;nh ph&#225;t thanh tr&#7921;c ti&#7871;p s&#7869; b&#7855;t &#273;&#7847;u trong '+value+' gi&#226;y...';
    } else {
      broadcastbar.innerHTML = 'Xin <a href="/?c=autostart">b&#7845;m v&#224;o &#273;&#226;y</a> &#273;&#7875; nghe ch&#432;&#417;ng tr&#236;nh ph&#225;t thanh tr&#7921;c ti&#7871;p';
    }
    if (value>0) {
      value--;
    } else {
      stage='rollin';
      value = roll_value;
    }
    wait = 1000;
    broadcastbar.style.top = parseInt(document.body.scrollTop)+'px';
  } else if (stage=='rollin') {
    var playerObj = getPlayer('mpl');
    if (playerObj && playing != 'frontbroadcast') {
      playerObj.sendEvent("STOP",0);
    }
    if (value==0 && broadcastbar) {
      stage='hidebar';
    } else {
      cur_height = (final_bar_height/roll_value)*(value);
      if (!cur_height) cur_height = 1;
      value -=1;
      broadcastbar.style.height=cur_height+'px';
      wait = 100;
    }
    broadcastbar.style.top = parseInt(document.body.scrollTop)+'px';
    broadcastbar.innerHTML = '';
  } else if (stage=='hidebar') {
    var flash_select = document.getElementById('flash_select_bar');
    if (flash_select) flash_select.style.display='block';
    broadcastbar.className='broadcast_bar_hidden';
    stage='playvid';
    wait = 100;
  } else if (stage=='playvid') {
    stop = 1;
    if (broadcast_available) {
      playBroadcast();
    }
  }
  if (!stop) {
    setTimeout("startBroadcast('"+stage+"',"+value+");",wait);
  }
}

function stopBroadcast() {
  selectFlash('frontvideo',0);
}

response_handlers['checkstream']=checkstream_cb;

function checkstream_cb(resp) {
  var stream_active = getChildValue(resp,'active');
  var flash_select = document.getElementById('flash_select_bar');
  if (stream_active == '1' && !broadcast_available){
    broadcast_available = true;
    startBroadcast('begin',0);
    broadcast_description = getChildValue(resp,'desc');
  } else if (stream_active == '0' && broadcast_available) {
    if (flash_select) flash_select.style.display='none';
    broadcast_available = false;
    stopBroadcast();
  }

  return true;
}

function checkStream() {
  if (playing=='frontbroadcast') {
    sendreq('c=checkstream&s=stream1'); 
    setTimeout("checkStream();",1000*30);
  } else {
    sendreq('c=checkstream&s=stream1'); 
    setTimeout("checkStream();",1000*30);
  }
}

function playBroadcast() {
  if (autostart) {
    selectFlash('frontbroadcast',0);
  }
}

function playProgram(thisform) {
  var articleid='';
  var playerObj;
 
  if (playing!='frontvideo') {
    selectFlash('frontvideo',0);
    return false;
  }

  if (thisform) {
    articleid = thisform.program.value;
    currentItem = 0;
  }
  currentPlaylist = articleid;

  playerObj = getPlayer('mpl');

  if (playerObj) {
    tvurl = '/video.php?c=vnnbtvpl&p='+articleid;
    playerObj.sendEvent("LOAD",tvurl);
  }

  lastFeatureClick = new Date();
  featureWait = 10000;
}

function resumeProgram() {
  var playerObj = getPlayer('mpl');
  if (playerObj) {
    tvurl = '/video.php?c=vnnbtvpl&p='+currentPlaylist;
    playerObj.sendEvent("LOAD",tvurl);
  }
}

function playNext() {
  var playerObj = getPlayer('mpl');
  if (playerObj) {
    playerObj.sendEvent("NEXT",'true');
  }
  
}

function getPlayer(gid) {
  if(navigator.appName.indexOf("Microsoft") != -1) {
    return window[gid];
  } else {
    return document[gid];
  }
  return NULL;
}

function submitStockPrefs(pref) {
  var i, count = 0;
  var param = '';
  for (i=1;i<=4;i++) {
    var stock = pref.elements['s'+i].value;
    if (stock.length==0) continue;
    if (param != '') {
      param += ',';
    }
    param += stock;
    count++;
  }
  if (count<1) {
    alert('Vui long cho biet it nhat 1 stock symbol');
    return false;
  }
  param = 'c=stockpref&stocks='+(param);
  getmyvnnb(param);
  return false;
}

function submitLocPrefs(pref) {
  if (pref.zip.value.length==0 && pref.other.selectedIndex==0) {
    alert('Vui long cho biet dia diem!');
    return false;
  }
  if (pref.zip.value.length!=0 && pref.zip.value.length!=5) {
    alert('Vui long cho biet zipcode!');
    pref.zip.value='';
    pref.zip.focus();
    return false;
  }
  
  if (pref.other.selectedIndex>0) {
    param='c=locpref&loc='+pref.other.value;
  } else {
    param='c=locpref&loc='+pref.zip.value;
  }
  
  if (pref.unit[1].checked) {
    param += '&unit=c';
  }
  getmyvnnb(param);
  return false;
}

function myvnnb_callback() {
  var resp, task='';
  var parser;
  var handler = null;
  if (!myvnnbhtml) {
    return false;
  }
  if ((myvnnbhtml.readyState == 4) && (myvnnbhtml.status == 200)) {
    document.getElementById('features_panel3').innerHTML = myvnnbhtml.responseText;
    myvnnbhtml = null;
  }
  
  return false;
}

function getmyvnnb(param) {
  var dest="myvnnb.php";
  var header='Content-Type:application/x-www-form-urlencoded;';
  if (myvnnbhtml!=null) {
    return false;
  }
  if (!param) {
    param="vnnb";
  } else {
    lastFeatureClick = new Date();
    featureWait = 90000;
  }
  try {
    myvnnbhtml = window.XMLHttpRequest?new XMLHttpRequest():
                new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (e) {
    alert("Please use the latest Internet Explorer and enable scripts");
    return true;
  }
  if (!myvnnbhtml) return false;
  myvnnbhtml.onreadystatechange = myvnnb_callback;
  myvnnbhtml.open('post', dest, true);
  myvnnbhtml.setRequestHeader(header.split(':')[0],header.split(':')[1]);
  myvnnbhtml.send(param);
  return true;
}

function showEmbed(id) {
  var oldVid, newVid;
  if (id == currentEmbed) return false;
  if (currentEmbed!=0) {
	oldVid = document.getElementById('embed'+currentEmbed);
	oldVid.innerHTML = '';
	oldVid.className = 'embed_hide';
  }
  newVid = document.getElementById('embed'+id);
  newVid.innerHTML = embedArray[id];
  newVid.className = 'embed';
  currentEmbed = id;
  return true;
}

function getInnerText(obj)
{
  if (obj.innerText)
  {
    return obj.innerText;
  }
  else
  {
    return obj.textContent;
  }
}

function detectCapLock(st) {
  var i;
  var numspaces=0;
  var numcaps=0;
  var ch;
  for (i=0;i<st.length;i++) {
    ch=st.charAt(i);
    if (ch==' ') {
      numspaces++;
    }
    if (ch>='A' && ch<='Z') {
      numcaps++;
    }
  }
  return numcaps>numspaces+3;
}

function default_handler(resp) {
  alert('Your request has been proccessed: ['+getChildValue(resp,'task')+'] '+getChildValue(resp,'msg'));
  return false;
}

function getChildValue(node,tag) {
  if (!node || node.getElementsByTagName(tag).length<1) return "";
  return getXMLNodeText(node.getElementsByTagName(tag).item(0)); 
}

function getXMLNodeText(node) {

  if (isIE) {
    return node.text;
  } else {
    return node.textContent;
  }
}

function query_callback() {
  var resp, task='';
  var parser;
  var handler = null;
  if (!xmlhttp) {
    alert('XMLHTTP is NULL!');
    return false;
  }
  if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
    //alert(xmlhttp.responseText);
    if (window.ActiveXObject) {
      resp=new ActiveXObject("Microsoft.XMLDOM");
      resp.loadXML(xmlhttp.responseText);
    } else {
      parser = new DOMParser();
      resp = parser.parseFromString(xmlhttp.responseText,'text/xml');
    }
    task = getChildValue(resp,'task');
    handler = response_handlers[task];
    xmlhttp = null;
    if (handler) {
      return handler(resp);
    } else {
      return default_handler(resp);
    }
  }
  return false;
}

function sendreq(param) {
  var dest="req.php";
  var header='Content-Type:application/x-www-form-urlencoded;';
  if (xmlhttp!=null) {
    return false;
  }
  try {
    xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():
                new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (e) {
    alert("Please use the latest Internet Explorer and enable scripts");
    return true;
  }
  //alert(param);
  xmlhttp.onreadystatechange = query_callback;
  xmlhttp.open('post', dest, true);
  xmlhttp.setRequestHeader(header.split(':')[0],header.split(':')[1]);
  xmlhttp.send(param);
  return false;
}

function getHtmlRequest() {
  var request = false;
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = false;
      }
    }
  }

  if (!request)
    alert("Error initializing XMLHttpRequest!");
  return request;
}

function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}

var stopRollAds = new Array();

function startRollAds(id,append) {
  var ad_div = document.getElementById(id);
  var wait_time = 80;
  var ad_height = 0;
  if (!ad_div.hasChildNodes()) {
    if (!append) {
      getRandomAds(id);
    }
  } else if (!stopRollAds[id]) {
    var num_children = ad_div.childNodes.length;
    if (num_children<10 && !append) {
      getRandomAds(id);
    } else {
      var top = parseInt(ad_div.scrollTop);
      if (!top) {
        top = 0;
      }
      if (!ad_height) {
          var ad = get_firstchild(ad_div);
          ad_height = parseInt(ad.scrollHeight);
          if (!ad_height) {
            ad_height = 80;
          }
      }
      if (top < (ad_height)) {
        top += 4;
        if (top>ad_height) top=ad_height;
      } else {
        while (1) {
          var ad = get_firstchild(ad_div);
          if (ad) {
            ad_div.removeChild(ad);
            if (append) {
              ad_div.appendChild(ad);
            }
            if (ad.tagName == 'DIV' || ad.tagName == 'div')
              break;
          }
	}
        wait_time=1000;
        top = 0;
      }
      ad_div.scrollTop = top;
    }
  }
  setTimeout('startRollAds("'+id+'",'+append+');',wait_time);
}

var pendingRandomAdQueries = new Array();

function getRandomAds(id) {
  var url = 'randomad.php';
  var request = getHtmlRequest();
  var ad_div = document.getElementById(id);
  var query = 'id='+id;
  if (!request) return true;

  if (pendingRandomAdQueries[id]) {
    pendingRandomAdQueries[id]--;
    return false;
  }

  pendingRandomAdQueries[id] = 10;

  request.open("POST", url, true);
  request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  request.setRequestHeader("Content-length", query.length);
  request.setRequestHeader("Connection", "close");

  request.onreadystatechange =
    function () {
      if (request.readyState==4 && request.status==200) {
        ad_div.innerHTML += request.responseText;
    	pendingRandomAdQueries[id]=0;
        //setTimeout('getRandomAds("'+id+'");',4000);
      }
    };
  request.send(query);
  return false;
}

function toggleSubCat(catid) {
  var subcatdiv = document.getElementById('catdiv'+catid);
  if (subcatdiv.style.display == 'none') {
    subcatdiv.style.display = 'block';
  } else {
    subcatdiv.style.display = 'none';
  }
  return false;
}


function checkMchpForm(f) {
  var checkrole = false;
  
  for (var i=0; i < f.from.length; i++)
  {
    if (f.from[i].checked) {
      checkrole = true;
      break;
    }
  }

  if (!checkrole) {
    alert("Vui long cho biet vai tro cua ban!\nPlease select your role!");
    return false;
  }
  if (f.problem.value.length<10) {
    alert("Vui long cho biet Van nan cua ban! Please enter your problem!");
    return false;
  }
  if (f.solution.value.length<10) {
    alert("Vui long cho biet long mong uoc cua ban! Please enter your solution!");
    return false;
  }
  return true;
}

var current_feature = new Array();
var current_list = -1;
var lastFeatureClick = new Date()+5000;
var featureWait = 5000;

function selectFeature(lid,num) {
  var feature_display = document.getElementById('feature_display'+lid+num);
  var old_feature = document.getElementById('feature_display'+lid+current_feature[lid]);
  var feature_button = document.getElementById('feature'+lid+num);
  var old_button = document.getElementById('feature'+lid+current_feature[lid]);

  if (num==current_feature[lid]) return false;
  if (!feature_display) return false;
  
  if (old_feature) old_feature.className='main_display_hidden';
  feature_display.className='main_display_show';
  if (old_button) old_button.className='feature';
  feature_button.className='feature_selected';
  current_feature[lid] = num;
  lastFeatureClick = new Date();
  featureWait = 15000;
  return true;  
}

function showFeatureList(lid) {
  var new_list = document.getElementById('features_panel'+lid);
  var old_list = document.getElementById('features_panel'+current_list);
  var new_list_link = document.getElementById('featurepanelink'+lid);
  var old_list_link = document.getElementById('featurepanelink'+current_list);
  
  lastFeatureClick = new Date();
  featureWait = 10000;
  if (!new_list || lid == current_list) return false;
  
  if (old_list) old_list.className = 'features_panel_hidden';
  new_list.className = 'features_panel';
  
  if (old_list_link) old_list_link.className = 'normal';
  new_list_link.className = 'selected';
    
  current_list = lid;
}

function showRandomFeatureList() {
  var now = new Date();
  var new_list = current_list + 1;
  if (new_list > 4) return;
  if ((now - lastFeatureClick) >= featureWait) showFeatureList(new_list);
  setTimeout("showRandomFeatureList()",featureWait);
}

function getCookie(c_name) {
  if (document.cookie.length>0) {
    c_start=document.cookie.indexOf(c_name + "=");
    if (c_start!=-1) { 
      c_start=c_start + c_name.length+1; 
      c_end=document.cookie.indexOf(";",c_start);
      if (c_end==-1) c_end=document.cookie.length;
      return unescape(document.cookie.substring(c_start,c_end));
    }
  }
  return "";
}

function setCookie(c_name,value,expiredays) {
  var exdate=new Date();
  exdate.setDate(exdate.getDate()+expiredays);
  document.cookie=c_name+ "=" +escape(value)+
                  ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
