/*
Element.implement({
  getHiddenHeight: function() { 

  	var oldVisibility = this.style.visibility;
  	var oldPosition = this.style.position;
  	var oldDisplay = this.style.display;
  	this.style.visibility = "hidden";
  	this.style.position = "absolute";
  	this.style.display = "block";
    
    var height = this.getHeight();

  	this.style.display = oldDisplay;
  	this.style.position = oldPosition;
  	this.style.visibility = oldVisibility;
  	
  	return height;
  }
});
*/

function getQueryVariable(variable) { 
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 
    for (var i=0;i<vars.length;i++) { 
        var pair = vars[i].split("="); 
        if (pair[0] == variable) { 
            return pair[1]; 
        } 
    } 
    return null;
} 

galleryIndex = 0;
galleryCount = 7;

function setGalleryIndex(newIndex) {
    $('gallery-nav').children[galleryIndex].removeClass('selected');

    if (newIndex < 0) {
        newIndex += galleryCount;
    } else if (newIndex >= galleryCount) {
        newIndex -= galleryCount;
    }

    duration = Math.min(Math.abs(newIndex - galleryIndex) * 250, 750);
    $('items').set('tween',  {duration: duration});

    galleryIndex = newIndex;

    $('items').tween('left', galleryIndex * -540);

    galleryChild = $('gallery-nav').children[galleryIndex];

    galleryChild.addClass('selected');

    $('gallery_title').innerHTML = galleryChild.getElement('a').innerHTML;
    $('gallery_desc').innerHTML = galleryChild.getElement('span').innerHTML;
}

function select_tab(content_name, animated) {
    new_tab_content = $('content-' + content_name);
    old_tab_content = $$('#content-main div.selected')[0];

    if (new_tab_content == old_tab_content) {
        return false;
    }

    $('subnav').getChildren().each(function(tab) {         
        if (tab.hasClass(content_name))
        tab.addClass('selected');
        else
        tab.removeClass('selected');
    });

    if (animated) {
        window.location.hash = content_name;
        new_tab_content.fade('hide');
        new_tab_content.addClass('selected');

        old_tab_content.set('tween',  {duration: 100, onComplete: function() {
            old_tab_content.removeClass('selected');
            new_tab_content.set('tween',  {duration: 100});
            new_tab_content.fade('in');
            } }
        );
        old_tab_content.fade('out');

        content_main = $('content-main');
        content_main.setStyle('height', old_tab_content.getHeight());
        content_main.set('tween',  {duration: 200});
        content_main.tween('height', new_tab_content.getHeight());
    } else {
        new_tab_content.addClass('selected');
        old_tab_content.removeClass('selected');
    }

    return false;
}

function _playMovie() {
  var myQuickie = new Quickie($('movie_link').href , {
      id: 'quicktime_movie',
      width: 660,
      height: 371,
      container: 'clip',
      attributes: { controller: 'true', autoplay: 'true' },
      onEnded: hideMovie
  });
}

function showMovie() {
    function _loadMovie() {
      setTimeout("_playMovie()", 50);
    }

    function _showMovie() { $('video-container').fade('in').get('tween').chain(_loadMovie); }

    $('curtains').set('tween',  {duration: 200});
    $('video-container').set('tween',  {duration: 200});

    $('curtains').fade('in').get('tween').chain(_showMovie);

    return false;
}

function hideMovie() {
    function _hideCurtains() { $('curtains').fade('out').get('tween'); }

    //$('quicktime_movie').dispose();
    $('clip').innerHTML = '';
    $('video-container').fade('out').get('tween').chain(_hideCurtains);

    return false;
}

function mailingEmailChanged() {
    if ($('mailing_email').value) {
        $$('#mailing_list dd').removeClass('error');
        $$('#mailing_list dd').addClass('focus');
    } else
        $$('#mailing_list dd').removeClass('focus');
}

function mailingListFailure() {
    $('mailing_email').blur();
    $$('#mailing_list dd').addClass('error');
    $$('#mailing_list dd').removeClass('focus');
    $('mailing_email').value = '';
    $('mailing_email').disabled = false; 
    $$('#mailing_list button').removeClass('hide'); 
    $$('#mailing_list span').addClass('hide'); 

    return true;
}

function mailingListSuccess() {
    $$('#mailing_list dd').addClass('success');
    $$('#mailing_list dd').removeClass('focus');
    $$('#mailing_list span').addClass('hide'); 
    $$('#mailing_list input').addClass('hide'); 
    $('mailing_email').value = '';
}


window.addEvent('domready', function() {    
    referer = getQueryVariable('r');
    if (referer) {
      Cookie.write('referer_host', referer, {path: '/'});
    } else {
      referer = Cookie.read('referer_host');
    }
    if (referer) {
        $$('.linkshare-link').each(function(link) { link.href = link.href + '&u1=' + referer; });
    }

    if ($('mailing_list')) {
        $('mailing_list').onsubmit = function(evt) {  
            $$('#mailing_list button').addClass('hide'); 
            $$('#mailing_list span').removeClass('hide'); 

            $('mailing_list').set('send', {onFailure: mailingListFailure, onSuccess: mailingListSuccess });
            $('mailing_list').send(); 

            $('mailing_email').disabled = true; 

            return false;
        }
        $('mailing_email').onblur = mailingEmailChanged;
        $('mailing_email').onkeyup = mailingEmailChanged;
        $('mailing_email').onchange = mailingEmailChanged;
    }

    if ($$('.tab-ctrl').length != 0) {
        if (window.location.hash) {
            select_tab(window.location.hash.slice(1), false);
        }

        $$('.tab-ctrl').each(function(link) {
            link.onclick = function() {
                return select_tab(link.hash.slice(9), true);
            };
        });
    }

    if ($('previous')) {
        $('previous').onclick = function() {
            setGalleryIndex(galleryIndex - 1);
            return false;
        };
    }

    if ($('next')) {
        $('next').onclick = function() {
            setGalleryIndex(galleryIndex + 1);
            return false;
        };
    }

    if ($('help')) {
        $('help').onclick = function() {
            window.open('help/','Help','scrollbars=yes,location=no,status=nomenubar=no,toolbar=no,width=650,height=400');
            return false;
        };
    }

    $$('#gallery-nav a').each(function(link) {
        link.onclick = function() { 
            setGalleryIndex($('gallery-nav').getChildren().indexOf(this.getParent())); 
            return false; 
        };
    });

    // Support

    $$('.help a').each(function(link) {
        link.onclick = function() { 
            
            if ($$('.help.selected').length != 0) {
                return false;
            }
            
          $('form_intro').addClass('hide');
          $$('.help').addClass('selected');
          $$('.suggest').removeClass('selected');
          
          $('form_suggest_success').addClass('hide');
          $('form_suggest_error').addClass('hide');
          
          $('form_support_success').addClass('hide');
          $('form_support_error').addClass('hide');
          $('form_support_send').addClass('hide');
          $('form_support_submit').removeClass('hide');
          
          $('support_form').addClass('selected');
          $('support_form').fade('hide');
          
          $('suggest_form').removeClass('selected');
          $('support_form').fade('in');

          return false; 
        };
    });

    $$('.suggest a').each(function(link) {
        link.onclick = function() { 

            if ($$('.suggest.selected').length != 0) {
                return false;
            }

            $('form_intro').addClass('hide');
            $$('.suggest').addClass('selected');
            $$('.help').removeClass('selected');

            $('form_support_success').addClass('hide');
            $('form_support_error').addClass('hide');

            $('form_suggest_success').addClass('hide');
            $('form_suggest_error').addClass('hide');
            $('form_suggest_send').addClass('hide');
            $('form_suggest_submit').removeClass('hide');

            $('suggest_form').addClass('selected');
            $('suggest_form').fade('hide');
            
            $('support_form').removeClass('selected');
            $('suggest_form').fade('in');

            return false; 
        };
    });
    
    if ($('suggest_form')) {
        $('suggest_form').onsubmit = function(evt) {  
            $('form_suggest_send').removeClass('hide');
            $('form_suggest_submit').addClass('hide');
            $('form_suggest_error').addClass('hide');

            $('suggest_form').set('send', {
                onFailure: function () { 
                    $('form_suggest_send').addClass('hide');             
                    $('form_suggest_error').removeClass('hide');
                }, 
                onSuccess: function () { 
                    $('form_suggest_send').addClass('hide');             
                    $('suggest_form').removeClass('selected');
                    $('form_suggest_success').removeClass('hide');
                }
            });
            $('suggest_form').send(); 

            return false;
        };    
    }

    if ($('support_form')) {
        $('support_form').onsubmit = function(evt) {  
            $('form_support_send').removeClass('hide');
            $('form_support_submit').addClass('hide');
            $('form_support_error').addClass('hide');

            $('support_form').set('send', {
                onFailure: function () { 
                    $('form_support_send').addClass('hide');             
                    $('form_support_error').removeClass('hide');
                }, 
                onSuccess: function () { 
                    $('form_support_send').addClass('hide');             
                    $('support_form').removeClass('selected');
                    $('form_support_success').removeClass('hide');
                }
            });
            $('support_form').send(); 

            return false;
        };    
    }

    
    if ($('company_form')) {
        $('company_form').onsubmit = function(evt) {  
            $('form_send').removeClass('hide');
            $('form_submit').addClass('hide');
            $('form_error').addClass('hide');

            $('company_form').set('send', {
                onFailure: function () { 
                    $('form_send').addClass('hide');             
                    $('form_error').removeClass('hide');
                }, 
                onSuccess: function () { 
                    $('form_send').addClass('hide');
                    $('company_form').addClass('hide');
                    $('form_success').removeClass('hide');
                }
            });
            $('company_form').send(); 

            return false;
        };    
    }

    if ($('select_app')) {
        $('select_app').onclick = function() {
            $('select_app_list').fade('in');
            return false;
        }
        
        $('select_app_list').fade('hide');
        $('select_app_list').set('tween',  {duration: 200});
        $('select_app_list').addEvent('mouseleave', function() { this.fade('out'); });
    }

    // Products
    if ($('video-container')) {
        if (!Browser.Platform.ipod) {
            $('video-container').fade('hide');
            $('curtains').fade('hide');
            $('show_movie').onclick = showMovie;
            $('hide_movie').onclick = hideMovie;
        }    
    }
    
    // Blog
    $$('#filter-group .button').each (function(link) {
        link.onclick = function() {
            $$('.filter-subgroup').fade('out');
            this.getNext().fade('in');
            return false;
        }
        
        $$('.filter-subgroup').fade('hide');
        $$('.filter-subgroup').set('tween',  {duration: 200});
        $$('.filter-subgroup').addEvent('mouseleave', function() { this.fade('out'); });
    });

});

