/* mooSocialize - bookmark tool ©2008 artViper designstudio - all rights reserved */

/* information about this tool and other widgets: info@artviper.net  */

/* the header 'artViper's social bookmark widget has not to be disposed */

/* same goes for the link to this tool */


function updateSocialNetwork( url, social )
{
  var d = new Date();
    new Request(
      {
      	url:'/irj/servlet/prt/portal/prtroot/com.wyeth.pagerating.SocialNetworkServlet?socialId='+social+'&pageId='+url+'&pageTitle='+document.title+'&rand='+d.getTime(),
        method:'get',       
        onSuccess: function(transport){
          var response = transport || "no response text";         
        },
        onFailure: function(){
         }
      }).send( );
}

function queryString(parameter) { 
  var loc = location.search.substring(1, location.search.length);
  var param_value = false;

  var params = loc.split("&");
  for (i=0; i<params.length;i++) {
      param_name = params[i].substring(0,params[i].indexOf('='));
      if (param_name == parameter) {
          param_value = params[i].substring(params[i].indexOf('=')+1)
      }
  }
  if (param_value) {
      return param_value;
  }
  else {
      return false; //Here determine return if no parameter is found
  }
}


function updateFromSocialNetwork(  )
{
  var d = new Date();

    var socialNetwork = queryString('socialNetwork');
    
    if ( socialNetwork )
    {    
      new Request(
      {
        url:'/irj/servlet/prt/portal/prtroot/com.wyeth.pagerating.SocialNetworkServlet?socialNetwork='+socialNetwork+'&pageId='+document.location.href+'&pageTitle='+document.title+'&rand='+d.getTime(),
        method:'get',       
        onSuccess: function(transport){
          var response = transport || "no response text";         
        },
        onFailure: function(){
         }
      }).send( );
    }
}

/* Call for update from social network sites */
updateFromSocialNetwork (  ); 

/* SNIPPLR HASCLASS ADDCLASS REMOVECLASS SCRIPTS WWW.SNIPPLR.COM */
function hasAClass(ele,cls) {
    return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
/* USE:  if(hasClass(document.getElementById("test"), "test")){//do something}; */

function addAClass(ele,cls) {
    if (!this.hasAClass(ele,cls)) ele.className += " "+cls;
}
/* USE:  addAClass(document.getElementById("test"), "test"); */
 
function removeAClass(ele,cls) {
    if (hasAClass(ele,cls)) {
        var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
        ele.className=ele.className.replace(reg,' ');
    }
}
/* USE:  removeAClass(document.getElementById("test"), "test") */
var registerShareDropDown = function(){
 
    var docURL = window.location.href;
    if(docURL.indexOf('http://') > -1) {
        loadBitlyJSFile();
    }
    $$('.socializer').addEvent('click',function(e) {

        //ADD BORDER AROUND LINK
        var sharecontainer = this.parentNode;
       
        //Check if it has a hoverborder class
        
        if(  hasAClass(sharecontainer,"hoverborder") == null && document.getElementById('containerx') != null ) {
            //The container of the other click is open. Lets close that and remove the hoverborder class
            if($('containerx'))
                $('containerx').dispose();

            $$('.socializer').each(function (ele) { removeAClass(ele.parentNode,"hoverborder") });
        }

        addAClass(sharecontainer, "hoverborder");
        this.style.marginTop='-1px';        

        if(document.getElementById('containerx') == null){

        var div     = new Element('div');
        div.addClass('soc_container');
        div.setAttribute('id','containerx');
        div.injectInside(document.body);
        
       $(div).addEvent('blur',function(){ this.dispose(); })
        
        var title= escape(document.title);
        var url  = document.location.href;
        if (url.indexOf("?") > 0) {
            url = url+"&";
        } else {
            url = url+"?";
        }
        url = escape(url);
        
        //whitediv is the element that will "erase" the gray line of the dropdown to merge it with the box around "Share".
        var whitediv = new Element('div');
        whitediv.addClass('borderEraser');
        whitediv.injectInside(div);
        
        var ulist = new Element('ul');
        ulist.addClass('soc_list');
        ulist.injectInside(div);
             
        // del.icio.us
        
        var listitem = new Element('li');
        listitem.addClass('delicious');
        var listlink = new Element('a');
        listlink.href = '/exit?newwin=false&amp;url=http://del.icio.us/post?url='+url+'socialNetwork=del.icio.us'+'&title='+title;
        listlink.title = 'send to del.icio.us';
        listlink.innerHTML = 'Del.icio.us';
        listlink.injectInside(listitem);
        listitem.injectInside(ulist);

       // digg
        
        var listitem = new Element('li');
        listitem.addClass('digg');
        var listlink = new Element('a');
        listlink.href = '/exit?newwin=false&amp;url=http://digg.com/submit?phase=2&url='+url+'socialNetwork=digg'+'&title='+title;
        listlink.title = 'send to digg';
        listlink.innerHTML = 'Digg';
        listlink.injectInside(listitem);
        listitem.injectInside(ulist);

       // facebook
        
        var listitem = new Element('li');
        listitem.addClass('facebook');
        var listlink = new Element('a');
        listlink.href  = '/exit?newwin=false&amp;url=http://www.facebook.com/sharer.php?u='+url+'socialNetwork=facebook'+'&t='+title,'sharer','toolbar=0,status=0,width=626,height=436';
        listlink.title = 'send to facebook';
        listlink.innerHTML = 'Facebook';
        listlink.injectInside(listitem);
        listitem.injectInside(ulist);

       // google
        
        var listitem = new Element('li');
        listitem.addClass('google');
        var listlink = new Element('a');
        listlink.href  = '/exit?newwin=false&amp;url=http://www.google.com/bookmarks/mark?op=edit&output=popup&bkmk='+url+'socialNetwork=google bookmarks'+'&title='+title;
        listlink.title = 'send to google';
        listlink.innerHTML = 'Google Bookmarks';
        listlink.injectInside(listitem);
        listitem.injectInside(ulist);

       // linkedin
        
        var listitem = new Element('li');
        listitem.addClass('linkedin');
        var listlink = new Element('a');
        listlink.href  = '/exit?newwin=false&amp;url=http://www.linkedin.com/shareArticle?mini=true&url='+url+'socialNetwork=linkedin'+'&title='+title;
        listlink.title = 'send to linkedin';
        listlink.innerHTML = 'Linkedin';
        listlink.injectInside(listitem);
        listitem.injectInside(ulist);

       // myspace
        
        var listitem = new Element('li');
        listitem.addClass('myspace');
        var listlink = new Element('a');
        listlink.href  = '/exit?newwin=false&amp;url=http://www.myspace.com/Modules/PostTo/Pages/?u='+url+'socialNetwork=myspace'+'&t='+title;
        listlink.title = 'send to myspace';
        listlink.innerHTML = 'MySpace';
        listlink.injectInside(listitem);
        listitem.injectInside(ulist);

       // twitter
       var twitterShortURL=url;
       var docURL = window.location.href;
       if(docURL.indexOf('http://') > -1) {

            twitterShortURL='';
            BitlyCB.myShortenCallback = function(data) {
                // this is how to get a result of shortening a single url
                var result;
                for (var r in data.results) {
                    result = data.results[r];
                    result['longUrl'] = r;
                    break;
                }
                twitterShortURL =  result['shortUrl'];
                twitterShortURL = twitterShortURL +' '+ title; 

                var listitem = new Element('li');
                listitem.addClass('twitter');
                var listlink = new Element('a');
                listlink.href  = '/exit?newwin=false&amp;url=http://twitter.com/home?status='+twitterShortURL+'&socialNetwork=twitter'+'&title='+title;
                listlink.title = 'send to twitter';
                listlink.innerHTML = 'Twitter';
                listlink.injectInside(listitem);
                listitem.injectInside(ulist); 
                
                // yahoo
                var listitem = new Element('li');
                listitem.addClass('yahoo');
                var listlink = new Element('a');
                listlink.href  = '/exit?newwin=false&amp;url=http://bookmarks.yahoo.com/myresults/bookmarklet?u='+url+'socialNetwork=yahoo'+'&t='+title;
                listlink.title = 'send to yahoo';
                listlink.innerHTML = 'Yahoo';        
                listlink.injectInside(listitem);
                listitem.injectInside(ulist);
            }
            BitlyClient.shorten(document.location.href, 'BitlyCB.myShortenCallback');
        } else {
                var listitem = new Element('li');
                listitem.addClass('twitter');
                var listlink = new Element('a');
                listlink.href  = '/exit?newwin=false&amp;url=http://twitter.com/home?status='+twitterShortURL+'&socialNetwork=twitter'+'&title='+title;
                listlink.title = 'send to twitter';
                listlink.innerHTML = 'Twitter';
                listlink.injectInside(listitem);
                listitem.injectInside(ulist);   
                
                // yahoo
                var listitem = new Element('li');
                listitem.addClass('yahoo');
                var listlink = new Element('a');
                listlink.href  = '/exit?newwin=false&amp;url=http://bookmarks.yahoo.com/myresults/bookmarklet?u='+url+'socialNetwork=yahoo'+'&t='+title;
                listlink.title = 'send to yahoo';
                listlink.innerHTML = 'Yahoo';        
                listlink.injectInside(listitem);
                listitem.injectInside(ulist);                
        }
        




        
        // define container position coordinates
        var top     = this.getCoordinates().top.toInt();
        var height  = sharecontainer.offsetHeight;
        var topPosition  = (top + height - 2);
        
        var left    = this.getCoordinates().left.toInt();
        var width   = sharecontainer.offsetWidth;
        left = left - ((width - this.offsetWidth) / 2);
        var containerwidth = div.offsetWidth; //get width of newly created div
        var leftshift = (((containerwidth - width) / 2)+1); //to center div below "Share" box
        var leftPosition = ((left - leftshift) < (790-containerwidth + 10)) ? (left - leftshift) : (790-containerwidth + 10); //depending on where "Share" box is, the new div will either be centered under "Share" box or 10px to the right of the masthead edge.
        
        //position the container
        div.setStyle('left',leftPosition);
        div.setStyle('top',topPosition);
        //position the "borderEraser"
        whitediv.setStyle('width',width - 2);
        whitediv.setStyle('left',left - leftPosition - 1);
    
        // div appears without fade effect
        div.setStyle('visibility','visible');

        // div appears with fade in
//        var eff = new Fx.Morph(div, { duration: 500, wait:true, transition:Fx.Transitions.linear }).chain(function(){ $$('.soc_list').setStyle('visibility','visible'); });
//        eff.start({ 'opacity':[0,1] });


    //  div.effect('opacity',{duration:500, wait:true, transition:Fx.Transitions.linear }).chain(function(){
    //  }).start(0,1);  
        
        // open new window via ajax

        $$('.soc_list a').addEvent('click',function(e){
            e = new Event(e).stop();            
            var address     = this.href;
            updateSocialNetwork(url,this.innerHTML);
            window.open(address,'_blank','resizable=1,location=1,top=1,left=1,status=no,menubar=no,scrollbars=yes,toolbar=no,width='+document.documentElement.clientWidth+',height='+document.documentElement.clientHeight);

            


        })

      }else{

          $('containerx').dispose();
          $$('.socializer').each(function (ele) { removeAClass(ele.parentNode,"hoverborder") });
          this.style.marginTop='0px';
        }

    })

}

window.addEvent('domready',registerShareDropDown);

function loadBitlyJSFile(){

  var fileref=document.createElement('script')
  fileref.setAttribute("type","text/javascript")
  fileref.setAttribute("src", 'http://bit.ly/javascript-api.js?version=latest&login=wyeth&apiKey=R_13ddd0a32d37924d304777bb30a21b4a')
 if (typeof fileref!="undefined")
  document.getElementsByTagName("head")[0].appendChild(fileref);

}


