//Lightbox JS
//backgroundID,LightboxID,open or close,boxsize2-4,entryfieldID
function lightbox(bg,fg,action,boxsize,entryfield){
  if(!boxsize) boxsize = 3;
  if(action == 'open'){
    var y = document.body.scrollTop
    document.getElementById(fg).style.display='block';
    document.getElementById(fg).style.top = document.body.clientHeight / boxsize + (y - 50);
    document.getElementById(fg).style.left = document.body.clientWidth / boxsize;
    if(bg){
      document.getElementById(bg).style.display ='block';
      document.getElementById(bg).style.height = document.getElementById('canvas').clientHeight;
    }
  }else{
    document.getElementById(fg).style.display='none';
    if(bg){
      document.getElementById(bg).style.display='none';
    }
  }
}

//Reply JS
//backgroundID,LightboxID,open or close,boxsize2-4,entryfieldID
function replybox(e,fg,action,wid,tomember,cid,img,vword){
  if(action == 'open'){
    var y = document.body.scrollTop
    document.getElementById(fg).style.display='block';
    var pos = findPos(e);
    document.getElementById(fg).style.top = pos[1];
    document.getElementById(fg).style.left = pos[0];
    if(img && document.getElementById('replyimage')){
      document.getElementById('replyimage').src = document.getElementById(img).src;
      document.getElementById('replyimage').className = document.getElementById(img).className;
    }
    if(tomember) document.getElementById('replyname').innerHTML = tomember;
    if(vword) document.getElementById('replyformtag').action = "/default/word/" + vword;
    if(cid) document.getElementById('replycid').value = cid;
    if(wid) document.getElementById('replywid').value = wid;
    if(document.getElementById('reply_activity_setting')) document.getElementById('reply_activity_setting').value = document.getElementById('activity_setting').value;
    document.getElementById(fg).style.display = 'block';
  }else{
    document.getElementById(fg).style.display='none';
    document.getElementById('reply_activity_setting').value = '';
  }
}


//Alert JS
//backgroundID,LightboxID,open or close,boxsize2-4,entryfieldID
function alertbox(e,fg,action,boxsize,entryfield){
  if(!boxsize) boxsize = 3;
  if(action == 'close'){
      document.getElementById(fg).style.display='none';
      if(document.getElementById('alert_activity_setting')) document.getElementById('alert_activity_setting').value = '';
  } else{
      // do not need to invoke this part of code
      if (0 && action == 'follow') {
          var follow = '/ajax/FUSER/' + entryfield; 
          generalAjax(follow,['update_follow']);
      }
      var actionurls = new Array('/follow/user/','/follow/word/','/favorite/cid/','/unfollow/user/','/unfollow/word/','/unfavorite/cid/');
      var alertforms = document.getElementById(fg).getElementsByTagName('FORM');
      var boxcommand = e.rel;
      switch (boxcommand){
        case (boxcommand = 'follow_add'):
        alertforms[0].action = actionurls[0] + entryfield;
        break
        case (boxcommand = 'follow_word_add'):
        alertforms[0].action = actionurls[1] + entryfield;
        break
        case (boxcommand = 'favorite_add'):
        alertforms[0].action = actionurls[2] + entryfield;
        break
        case (boxcommand = 'follow_delete'):
        alertforms[0].action = actionurls[3] + entryfield;
        break
        case (boxcommand = 'follow_word_delete'):
        alertforms[0].action = actionurls[4] + entryfield;
        break
        case (boxcommand = 'favorite_delete'):
        alertforms[0].action = actionurls[5] + entryfield;
        break
      }
      if(document.getElementById('alert_activity_setting')) document.getElementById('alert_activity_setting').value = document.getElementById('activity_setting').value;
      changeAlertBoxMsg('alert_message',e.rel);
      var y = document.body.scrollTop;
      document.getElementById(fg).style.display='block';
      var pos = findPos(e);
      document.getElementById(fg).style.top = pos[1];
      document.getElementById(fg).style.left = pos[0];
      document.getElementById(fg).style.display = 'block';

  }
}

function changeAlertBoxMsg(e,msg){
  if(document.getElementById(e) && document.getElementById(msg)){
  document.getElementById(e).innerHTML = document.getElementById(msg).innerHTML;  
  }
}

// Summary: Check email validator
// params: elem - element object (e.g. ele = document.getElementById('email')
function checkEmail( elem ) {
    return !elem.value || /^[a-z0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/i.test( elem.value );
}

// Summary: Set proper update folllow
// params: msg - json object
function update_follow(msg) {
    var id = msg['follow'];
    var ddID = '#' + id;
    var text = $(ddID).text();
    update_alertbox_message(text);
}

// Summary: Update the alert message
function update_alertbox_message(txt) {
    $('#alert_message:first').text(txt);
}


// Summary: General ajax method for reply, favorites, follow, follow_word
// params: method - array with method names to invoke
function generalAjax(param, method) {
    var ref = window.location.href;
    var pattern = /(http:\/\/[^\/]+)/;
    var result = ref.match(pattern);
    var dm = result[1];

    var url = dm + param;
    var len = method.length;

    $.ajax( { type: 'GET',
              url: url,
              dataType: 'json',
              success: function(msg) {
              for (var x = 0; x < len; x++) {
                var name = method[x];
                self[name](msg);
              }
              },
              cache: false, 
              timeout: 1000,
              error: function() {
                            alert('AJAX ERROR: WORD.JS');
                          }
           });
}


//Login special JS
function loginfield(a,hidfield){
    if(hidfield){
        a.style.display = 'none';
        document.getElementById(hidfield).style.display = 'block';
        try {
        document.getElementById(hidfield).focus();
        } catch(e) {

        }
    }else{
        a.value = '';
    }
}


//label hover
function hoverlabel(local,text,container){
  if(local && text && container){
  local.onmouseout = function() {document.getElementById(conatiner).style.display = 'none';}
    var pos = findPos(local);
    document.getElementById(conatiner).innerHTML = text;
    document.getElementById(conatiner).style.top = pos[1];
    document.getElementById(conatiner).style.left = pos[0];
    document.getElementById(conatiner).style.display = 'block';
  }
}


//Toggle Activity Comments and Entries
function toggleData(tabscontainer,adata,displayscreen,a){
  if(document.getElementById(tabscontainer) && document.getElementById(displayscreen) && document.getElementById('act_data_all')){
    //establish variables
    var deactivate = '_off';
    var activity_tabs = activity_tabs;
    var activity_display = document.getElementById(displayscreen);
    var activity_content = document.getElementById(adata);
    var activity_tab = document.getElementById(adata);
    var xtabs = document.getElementById(tabscontainer).getElementsByTagName('IMG');
    //loop through tabs and deactivate - if one equals 'a' then highlight it
    if(a){
      for (var i = 0; i < xtabs.length; i++) {
        xtabs[i].className = xtabs[i].name + deactivate;
        if(a == xtabs[i]){
          xtabs[i].className = xtabs[i].name;
        }
      }
    }
    //change activity_setting hidden element
    if (adata == 'act_data_all'){
      document.getElementById('activity_setting').value = 'all';
    }else{
      document.getElementById('activity_setting').value = 'follow';
    }
    //display the requested content
    activity_display.innerHTML = activity_content.innerHTML;
  }
}
if (document.getElementById('tab_activity_followed') && document.getElementById('tab_activity_everyone')){
  document.getElementById('tab_activity_followed').onclick = function(){toggleData('activitytabs','act_data_follow','act_display',this)};
  document.getElementById('tab_activity_everyone').onclick = function(){toggleData('activitytabs','act_data_all','act_display',this)};
}


//Dropdown Main Menu
if(document.getElementById('main_menu_dynamic')){
  var menulist = document.getElementById('main_menu_dynamic').getElementsByTagName('dd');
  var floatmenu = document.getElementById('main_menu_dynamic_dropdown');
  for (var i = 0; i < menulist.length; i++) {
    if((menulist[i].getElementsByTagName('dl').length > 0) && menulist[i].getElementsByTagName('a').length > 0){
      menulist[i].getElementsByTagName('a')[0].onmouseover = function(){main_menu_dynamic(this,'open')}
      menulist[i].getElementsByTagName('a')[0].onmouseout = function(){main_menu_dynamic(this,'close'); floatmenu.name = '0'}
    }
  }
  var main_menu_dynamictime = 0;
}
function main_menu_dynamic(a,action){
  var floatmenu = document.getElementById('main_menu_dynamic_dropdown');
  if(action == 'open'){
    floatmenu.innerHTML = a.parentNode.getElementsByTagName('dl')[0].innerHTML;
    floatmenu.onmouseout = function(){main_menu_dynamic(floatmenu,'close'); floatmenu.name = '0'}
    floatmenu.onmouseover = function(){floatmenu.name = '1'}
    var pos = findPos(a.parentNode);
    floatmenu.style.top = pos[1];
    floatmenu.style.left = pos[0];
    floatmenu.name = '1';
    floatmenu.style.display = 'block';
    clearTimeout(main_menu_dynamictime);
  }else{
    main_menu_dynamictime = setTimeout ( function(){main_menu_dynamic_terminate(floatmenu)}, 1050 );
  }
}
function main_menu_dynamic_terminate(a){
  if(a.name == '0'){
  clearTimeout(main_menu_dynamictime);
  a.style.display = 'none';
  }
}


//Find Position of any element
findPos = function(obj) {
  var curleft = curtop = 0;
  if (obj.offsetParent) {
    curleft = obj.offsetLeft;
    curtop = obj.offsetTop;
    while (obj = obj.offsetParent) {
      curleft += obj.offsetLeft;
      curtop  += obj.offsetTop;
    }
  }
  return [curleft,curtop];
}

