var companyDetailWindowCache = new Array();

var initializeApplicaiton = function(){
    UI.Window.setOptions({
        shadow: true,
        wired: true,
        show: function(e1){e1.appear({ duration: 0.2 }) },
        hide: function(e1){
            e1.fade({ duration: 0.2})
        },
        theme: 'vista',
        shadowTheme: 'drop_shadow',
        resizable: true,
        draggable: true
    });

    $$('div#companyList-div div.showCompanyDetail-div').each(function(htmlElement_){
        htmlElement_.observe('click', showCompanyDetail);
    });
}

var showCompanyDetail = function(event_){
    var htmlElement_    = Event.element(event_);
    var htmlElementId_  = htmlElement_.id;
    var companyId_      = htmlElementId_.substr(htmlElementId_.lastIndexOf('_')+1);

    var windowPrefix_   = 'companyDetail_'+companyId_;
    if( !Object.isUndefined(companyDetailWindowCache[windowPrefix_]) ){
        var window_     = companyDetailWindowCache[windowPrefix_];
        window_.destroy();
    }

    //Get Current View Offset
    var viewPort_   = document.viewport.getScrollOffsets();

    var windowPositionTop_  = viewPort_.top + (document.viewport.getHeight() * Math.random()) - 280;                        //-280 to prevent the window overflow to height in the screen
    var windowPositionLeft_ = (document.viewport.getWidth() * Math.random())-300;   //-300 to prevent the window overflow to width in the screen

    var minMargin_          = 50;
    //Prevent window position under min margin
    if( windowPositionLeft_ < minMargin_ ){
        windowPositionLeft_ = minMargin_;
    }
    if( windowPositionTop_ < minMargin_ ){
        windowPositionTop_  = minMargin_;
    }

    var window_             = new UI.Window({
        top:    windowPositionTop_,
        left:   windowPositionLeft_
    });

    var url_        = companyDetailUrl+"&companyId="+companyId_;

    var startTimestamp = new Date();
        startTimestamp = startTimestamp.getTime();

    new Ajax.Request(url_, {
        method: 'get',
        onSuccess: function(transport){
            var responseText = transport.responseText;

            if( responseText.isJSON() ){
                var jsonFormat_ = responseText.evalJSON();
                window_.setHeader(jsonFormat_.header).setContent(jsonFormat_.content);
                //jsonFormat_.content
//                window_.content.update('Hello World');
            }

            var endTimestamp = new Date();
                endTimestamp = endTimestamp.getTime();

            var usedTime     = new Date();
                usedTime.setTime(endTimestamp - startTimestamp);

//            window_.setFooter(LANG['usedSecond']+usedTime.getSeconds());

            window_.show();
            window_.adapt.bind(window_).delay(1);
            companyDetailWindowCache[windowPrefix_] = window_;
        }
    });

}

Event.observe(window, 'load', initializeApplicaiton);
