/*
http://www.sebastian.it/wordpress/wp-content/themes/revolucion/javascript/revolucion.js
*/

/*
http://ecoki.com/
http://www.studio7designs.com/services/
*/

/*
function gcb_doClick(obj) {
//https://developer.mozilla.org/en/DOM/event.initMouseEvent
//event.initMouseEvent(type, canBubble, cancelable, view, 
//                     detail, screenX, screenY, clientX, clientY, 
//                     ctrlKey, altKey, shiftKey, metaKey, 
//                     button, relatedTarget);
  try { 
    var evt = document.createEvent("MouseEvents");
    evt.initMouseEvent("click", true, true, window,1, 1, 1, 1, 1, false, false, false, false, 0,obj);
//    oEvent.initMouseEvent("click", true, true,window, 1, 1, 1, 1, 1, false, false, false, false, 0, target);
    //obj.dispatchEvent(evt);
    if (obj.tagName=='A') {
      if (obj.target) {
        if (frames[obj.target]) {
          alert(obj.href);
          frames[obj.target].location=obj.href;
          //console.log(frames[obj.target]);
        }          
      }  
      //console.log(obj.target);
    }  
    var canceled = !obj.dispatchEvent(evt);
    if(canceled) {
      // A handler called preventDefault  
    } else {
      // None of the handlers called preventDefault
    }
  } catch(er) {
    //console.log(er);
    obj.click();  
  } 
}
*/

function revolucion_init(){
  var _dl=document.location+'';
  var _dls=_dl.split('#');
  if (_dls.length>1) {
    //if (_dls[1]=='mytools') {
      //console.log('go to my tools');
/*
    var anchoro=document.getElementById('topmenu_'+_dls[1]);
    //console.log(_dls[1],' ',anchoro);
    if (anchoro) {
      //alert(anchoro);
      anchoro.focus();
      gcb_doClick(anchoro);
    } else {
*/
      //console.log(_dl);

      frames['hidden'].location='/wordpress/'+_dls[1]+'/'; //put / at the end to avoid 301 redirect... 
      //alert('vai /wordpress/'+_dls[1]);
//    }
    //}  
  }  
}

function replaceHome() {
  replace({font:'revo_B',el:document.getElementById('row0')});  
  replaceSome({parent:'content',font:'revo_F',RegExpClassName:'replace_this_text'});
  
  var $=Segunda.Utils.$;
  
  $('contentSideBar').style.top=$('content').offsetHeight+'px';
  
}

function replaceContent() {
  replace({font:'revo_B',el:document.getElementById('content_title')});  
  replace({font:'revo_F',el:document.getElementById('content_description')});
  //document.getElementById('content_content').innerHTML=document.getElementById('content_content').innerHTML.replace(/[\n\r]/,"<br>\n");
  replace({font:'revo_B',el:document.getElementById('content_replacesubtitle')});  
  replace({font:'revo_B',el:document.getElementById('content_replacecontent')});
  
  //replacements for tweet page
  replaceSome({parent:'content',font:'revo_B',RegExpClassName:'replace_this_title'});
  replaceSome({parent:'content',font:'revo_F',className:'replace_this_description'});
  
  //general replacements 
  replaceSome({parent:'content',font:'revo_A',RegExpClassName:/replaceme_ultrabig/});
  replaceSome({parent:'content',font:'revo_B',RegExpClassName:/replaceme_big/});
}

function replace(oO) {
/*
parameters:
font: string 
el: obj source element containing text to be replaced
destination: obj for dest element
*/
  function retclass(cChar) { //return the proper class 
    var retval=cChar;
    switch(cChar) {
      //case ' ':retval='SPACE';break;
      /*case '%C3%B2': case '%EF%BF%BD': retval='OGRAVE';break;*/
      case ' ': retval='SPACER';break;
      case '%20': retval='SPACER';break;
      case '%3C': retval='<';break;
      case '%3E': retval='>';break;
      case '%7C': retval='PIPE';break;
      case '%7B': retval='CB0';break;
      case '%7D': retval='CB1';break;
      case '\'': retval='BACKT1';break;
      case '.':retval='DOT';break;
      case ',':retval='COMMA';break;
      case '-':retval='HYPHEN';break;
      case ':':retval='COLON';break;
      case ';':retval='SEMIC';break;
      case '!':retval='EX';break;
      case '?':retval='QM';break;
      case '&':retval='AMP';break;
      case '%0A':retval='';break;
      case '%09':retval='';break; //ignore tab
      case '+':retval='PLUS';break;
      case '(':retval='RB0';break;
      case ')':retval='RB1';break;
    }
    return retval;
  }

  var element=oO.el; //source element
  var elementd;      //destination element
  if (typeof oO.destination=='undefined')
    elementd=element;//document.getElementById('oo');
  else
    elementd=oO.destination;  
  var sfinal='';
  //var s=encodeURI(element.innerHTML.replace(/<[^>]+>/g,'')); //encode the whole thing so we are able to recognize accented & strange chars..
  
  var s='';
  try {
    s=element.innerHTML; //encode the whole thing so we are able to recognize accented & strange chars..
    s=s.replace(/&amp;/g,'&');
    s=s.replace(/<p>/i,'');
    s=s.replace(/<p>/ig,'<br><br>');
    s=s.replace(/<\p>/ig,'');
    s=s.replace(/<h\d>/ig,'');
    s=s.replace(/<\h\d>/ig,'');
  } catch (er) {
  }  
  //s=s.replace(/(\s\w+\s)/g,'<div style="display:inline-block;">$1</div>');
  var c,ec,cc,st=0,sf=0;stc='',ignore=0;//stc=oO.font+'_SPACER';
  //if (s.match('%20')) //add spacing to first word if there are more spaces
  //  stc=oO.font+'_SPACER';
  for (var z=0,zEnd=s.length;z<zEnd;z++) {
    c=s.charAt(z);
    ec=encodeURI(c);
    cc=retclass(ec);
    //console.log(ec); //debug
    if (cc=='<') ignore=1;
    
    if (!ignore && cc!='') {
      //sfinal+='<div class="'+oO.font+' '+oO.font+'_'+cc+'_block"><div class="'+oO.font+'_'+cc+'"></div></div>';
      sfinal+='<div class="'+oO.font+' '+oO.font+'_'+cc+'"></div>';
    } else {
      sfinal+=c;
    }  
    if (cc=='>') ignore=0;

  }
  if (sfinal) {
    elementd.innerHTML=sfinal;
  }  
}

function replaceSome(oO) {
  var objs=[];
  if (typeof oO.tagName!='undefined')
    objs=document.getElementsByTagName(oO.tagName);
  if (typeof oO.RegExpClassName=='undefined') {
    if (typeof oO.className!='undefined')
      objs=Segunda.Utils.domWalker({node:oO.parent,getNodeByClassName:oO.className});
  } else {
    //console.log(oO.RegExpClassName);
    objs=Segunda.Utils.domWalker({node:oO.parent,getNodeByRegExpClassName:oO.RegExpClassName});
  }  
  for (var z=0,zEnd=objs.length;z<zEnd;z++) {
    replace({font:oO.font,el:objs[z],destination:objs[z],offsetY:oO.offsetY});
  }  
}  
