
/*<html>
<body>
<script type="text/javascript" >
*/
 
(function() {
    var PREFIX = "zocdoc_";
    var baseUrl = 'http://offsiteschedule.zocdoc.com';
    var selectedLocationId = 0;
    var autoPopupToken = 'showZocDocAppointment=true';
   
    attachEventListener(window, 'load', fix_flash, false);   
    
     var anchor = document.getElementById('zocdoc_schedule');
     if(anchor) //then the script was declared after the link
     {
        placeBookNowButton();
     }
     else //older versions declare the script before the link. so they wouldnt be aware of it yet.
     {
        attachEventListener(window, 'load', placeBookNowButton, false);
     }
     
     if(window.location.toString().indexOf(autoPopupToken) > -1){
        attachEventListener(window, 'load', ShowZocDocCalendar, false);
     }
     attachEventListener(window, 'load', attachOtherListeners, false);
     
   
    
    function attachEventListener(target, eventType, functionRef, capture) {
        if(typeof(functionRef)== 'string') {
            functionRef=eval(functionRef);
        }

        if (typeof target.addEventListener != "undefined"){
            target.addEventListener(eventType, functionRef, capture);
        } else if (typeof target.attachEvent != "undefined"){
            target.attachEvent("on" + eventType, functionRef);
        } else {
            eventType = "on" + eventType;

            if(typeof target[eventType] == "function") {
                var oldListener = target[eventType];
                target[eventType] = function() {
                    oldListener();                    
                    return functionRef();
                };
            }else {
                target[eventType] = functionRef;
            }
        }
    }
    
    function attachOtherListeners(){
         //attach listeners to any link with the class 'ShowZocDocCalendar'
        var anchors = document.getElementsByTagName('a');
        for(var i=0; i<anchors.length; i++) 
        {
            if(anchors[i].className.toLowerCase().indexOf('showzocdoccalendar') > -1)
            {
                attachEventListener(anchors[i], 'click', ShowZocDocCalendar, false);
            }
        }
   }
    
    function placeBookNowButton()
    {
       var anchor = document.getElementById('zocdoc_schedule');
        
       if(anchor) 
       {
            
            
            var button = document.createElement('a');
            button.setAttribute('href','#');
            button.innerHTML = '<img id="' + PREFIX + 'bookNow" src="' + baseUrl + '/images/remote/bookAnAppointmentOrange.gif" style="border:0px;" />';
            
            anchor.parentNode.replaceChild(button, anchor);
            
            //now register the click event
            attachEventListener(button, 'click', ShowZocDocCalendar, false);
            
            
           
            
        }
    }
    
    
   
    function close()
    {
        if(window.location.toString().indexOf(autoPopupToken) > -1){
            window.location =  window.location.href.replace(autoPopupToken,'');
        }
        else{
            window.location.reload();
        }
      
    }
    
    function ShowZocDocCalendar(evt) {
  
        if (evt.preventDefault) 
        {
            evt.preventDefault();
        }
        else
        {
            evt.returnValue = false;
        }
        
        scroll(0, 0); //focus at the top, where the popup is 
        
        var headElm = document.getElementsByTagName('head')[0];

        //stylesheets
        var styleElm = document.createElement('link');
        styleElm.rel = 'stylesheet';
        styleElm.type = 'text/css';
        styleElm.href = baseUrl + '/remote/Schedule2.css.aspx?prefix=' + PREFIX;
        
        
        
        if(headElm.childNodes.length == 0)
            headElm.appendChild(styleElm);
        else
            headElm.insertBefore(styleElm, headElm.childNodes[0]);

        /*@cc_on
            var ie6StyleElm = document.createElement('link');
            ie6StyleElm.rel = 'stylesheet';
            ie6StyleElm.type = 'text/css';
            ie6StyleElm.href = baseUrl + '/remote/Schedule2_ie6.css.aspx?prefix=' + PREFIX;
            
            if(headElm.lastChild == styleElm) {
                headElm.appendChild(ie6StyleElm);
            } else {
                headElm.insertBefore(ie6StyleElm, headElm.childNodes[1]);
            }
        @*/
        
        //add iframe to the body, so that it is not restricted by the position or size of the XSS container
        var body = document.getElementsByTagName('body')[0];
        if(body)
        {
                //wrap in popup
                var popupContainer = document.createElement('div');
               popupContainer.innerHTML = '<div id="' + PREFIX + 'noAppointmentsPopupOverlay" class="' + PREFIX + 'modalOverlay" >&nbsp;</div>\
                                            <div id="' + PREFIX + 'noAppointmentsPopupParentContainer" class="modalContainer" style="position: absolute; z-index: 3100; display: block;width:717px">\
                                                <div>\
                                                    <div id="' + PREFIX + 'noAppointmentsPopupContainer">\
                                                      <a hef="#" id="' + PREFIX + 'closeButton" title="close" style="position:absolute; top:10px;right:10px;cursor:pointer;">\
			                                              <img src="' + baseUrl + '/images/welcomePopup/welcome_x.gif" title="close" alt="close" />\
		                                               </a>\
		                                               <iframe src="' +baseUrl + '/remote/schedulePopup.aspx?professionalId=&providerId=1670&locationId=" width="717px" height="520px" scrolling="yes" frameborder="0" />\
                                                    </div>\
                                                </div>\
                                            </div>';
                
               
                body.appendChild(popupContainer)
                
                attachEventListener(document.getElementById( PREFIX + 'closeButton'), 'click', close, false);
               
               //correct the overlay for ie6
                    
               
        }
        
    }
   
})();

function fix_flash() {
    // loop through every embed tag on the site
    var embeds = document.getElementsByTagName('embed');
    for(i=0; i<embeds.length; i++)  {
        embed = embeds[i];
        var new_embed;
        // everything but Firefox & Konqueror
        if(embed.outerHTML) {
            var html = embed.outerHTML;
            // replace an existing wmode parameter
            if(html.match(/wmode\s*=\s*('|")[a-zA-Z]+('|")/i))
                new_embed = html.replace(/wmode\s*=\s*('|")window('|")/i,"wmode='transparent'");
            // add a new wmode parameter
            else 
                new_embed = html.replace(/<embed\s/i,"<embed wmode='transparent' ");
            // replace the old embed object with the fixed version
            embed.insertAdjacentHTML('beforeBegin',new_embed);
            embed.parentNode.removeChild(embed);
        } else {
            // cloneNode is buggy in some versions of Safari & Opera, but works fine in FF
            new_embed = embed.cloneNode(true);
            if(!new_embed.getAttribute('wmode') || new_embed.getAttribute('wmode').toLowerCase()=='window')
                new_embed.setAttribute('wmode','transparent');
            embed.parentNode.replaceChild(new_embed,embed);
        }
    }
    // loop through every object tag on the site
    var objects = document.getElementsByTagName('object');
    for(i=0; i<objects.length; i++) {
        object = objects[i];
        var new_object;
        // object is an IE specific tag so we can use outerHTML here
        if(object.outerHTML) {
            var html = object.outerHTML;
            // replace an existing wmode parameter
            if(html.match(/<param\s+name\s*=\s*('|")wmode('|")\s+value\s*=\s*('|")[a-zA-Z]+('|")\s*\/?\>/i))
                new_object = html.replace(/<param\s+name\s*=\s*('|")wmode('|")\s+value\s*=\s*('|")window('|")\s*\/?\>/i,"<param name='wmode' value='transparent' />");
            // add a new wmode parameter
            else 
                new_object = html.replace(/<\/object\>/i,"<param name='wmode' value='transparent' />\n</object>");
            // loop through each of the param tags
            var children = object.childNodes;
            for(j=0; j<children.length; j++) {
                if(children[j].getAttribute('name').match(/flashvars/i)) {
                    new_object = html.replace(/<param\s+name\s*=\s*('|")flashvars('|")\s+value\s*=\s*('|")[^'"]*('|")\s*\/?\>/i,"<param name='flashvars' value='"+children[j].getAttribute('value')+"' />");
                }
            }
            // replace the old embed object with the fixed versiony
            object.insertAdjacentHTML('beforeBegin',new_object);
            object.parentNode.removeChild(object);
        }
    }
}


