var CompanyLoaded = false;

function showCompany( company_id, slug, sort, fee, country, state, platforms ){
    
    try { pageTracker._trackPageview('/company_view/' + company_id); } catch(err) {}

    $('selected_company_container').show();
    $('fade_layer').show();
    window.location.hash = '/' + company_id + '/' + slug;
    new Ajax.Updater( 'selected_company_container', '/companies/view/' + company_id, {
        method : 'post',
        asynchronous:true,
        evalScripts:true,
        parameters: { sort:sort, fee:fee, country:country, state:state, platforms:platforms },

        //insertion: 'bottom',
        onSuccess: function() {
            CompanyLoaded = true;
        },
        onComplete: function(){
            //loaded = true;
        }
    });
    
    return false;
}

function showCompanyContact( company_id ){

    try { pageTracker._trackPageview('/show_contact_form/' + company_id); } catch(err) {}

    $('selected_company_container').show();
    $('fade_layer').show();
    new Ajax.Updater( 'selected_company_container', '/messages/add/' + company_id, {
        method : 'post',
        asynchronous:true,
        evalScripts:true,

        onSuccess: function() {
            CompanyLoaded = true;
        },
        onComplete: function(){
            //loaded = true;
        }
    });
    return false;
}

function hideCompany(){
    
    $('selected_company_container').innerHTML = '';
    $('selected_company_container').hide();
    $('fade_layer').hide();
    
    CompanyLoaded = false;
    window.location.hash = '#hide';
    return false;
}

function hideInbox(){
    $('inbox').innerHTML = '';
    $('inbox').hide();
    $('fade_layer').hide();
    return false;
}

function getHash() {
    var hash = window.location.hash;
    return hash.substring(1); // remove #
}

function isNumeric(sText){
  var validChars = "0123456789";
  var isNumber=true;
  var character;
  for (i = 0; i < sText.length && isNumber == true; i++)
  {
    character = sText.charAt(i);
    if (validChars.indexOf(character) == -1)
    {
      isNumber = false;
    }
  }
  return isNumber;
}

function checkHash(){
    var currentHash = getHash();
    if (currentHash.length > 0 && currentHash != 'hide'){
        var hashParts = currentHash.split("/");
        if( isNumeric(hashParts[1]) ){
            showCompany(hashParts[1],hashParts[2]);
        }
    }
}

Event.observe(document, 'dom:loaded', checkHash);


function setCompanyTop(){
    var offset = document.viewport.getScrollOffsets();
    $('selected_company_container').setStyle({ top: offset[1] + 58 + 'px' })
}



if( $('selected_company_container') ){
    Event.observe(window, 'scroll', setCompanyTop);
    Event.observe(document, 'keyup', checkKeyPress);
}

/* ====================================================
 * BEGIN CLOSE COMPANY INFO CODE
 * event handler defined above
 * ====================================================
 */

function checkKeyPress(event){
    if(Event.KEY_ESC == event.keyCode && CompanyLoaded){
        if(typeof hideCompany == 'function') {
            hideCompany();
        }
    }
}

/* ====================================================
 * END CLOSE COMPANY INFO CODE
 * ====================================================
 */