var isShowpage = false;


// hide the waitlayer and tooltip onload and setup the mousemove observer
Event.observe(window, 'load', function() {
    $('overlay').setOpacity(0.90);

    if(isShowpage == false){
        $('ajaxwait','overlay','modalBox').invoke('hide');
    }

    checkBrowser();
    initSearch();

//resize();
});

Event.observe(window, 'resize', function() {
    var dimensions = getWindowSize();

    //resize();

    $('overlay').setStyle( {
        height :dimensions['height']+'px'
    });
});

function resize(){
    var dimensions = getWindowSize();

    $('global-container').setStyle( {
        width :dimensions['width']-200+'px'
    });
}

function checkBrowser(){
    BrowserDetect.init();
    if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version <=6){
        $('body').innerHTML = langitems['browser-not-supported'];
    }
}

function showWait() {
    centerElement('ajaxwait');// center it on the screen
    showOverlay();
    $('ajaxwait').show();
}

function hideWait() {
    $('ajaxwait').hide();
    hideOverlay();
}

function showOverlay() {
    var dimensions = getWindowSize();
    var olHeight = dimensions['height'];

    if($('body').getHeight() > dimensions['height']){
        olHeight = $('body').getHeight();
    }

    $('overlay').setStyle( {
        /*height :dimensions['height']+'px'*/
        height : olHeight+'px'
    });

    $('overlay').show();
}

function hideOverlay() {
    $('overlay').hide();
}

function getWindowSize(w) {
    var dimensions = new Array();
    w = w ? w : window;

    dimensions['width'] = w.innerWidth || (w.document.documentElement.clientWidth || w.document.body.clientWidth);
    dimensions['height'] = w.innerHeight || (w.document.documentElement.clientHeight || w.document.body.clientHeight);

    //alert('test '+dimensions['width']);

    return dimensions;
}

function centerElement(id) {
    // var dimensions = document.viewport.getDimensions(); // cannot be uset due
    // to bug in prototype
    var dimensions = getWindowSize();

    bw = dimensions['width'];
    bh = dimensions['height'];

    el_width = $(id).getWidth();
    el_height = $(id).getHeight();
    new_pos_x = (bw / 2) - (el_width / 2);
    new_pos_y = (bh / 2) - (el_height / 2);

    $(id).setStyle( {
        position :'absolute',
        left :new_pos_x + 'px'/*,
	top :new_pos_y + 'px'*/
    });

//alert('test'+new_pos_x);
}

function in_array(what, where) {
    var a = false;
    for ( var i = 0; i < where.length; i++) {
        if (what == where[i]) {
            a = true;
            break;
        }
    }
    return a;
}

function getParamsFromURL(name){
    //name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if(results == null){
        return "";
    }else{
        return results[1];
    }
}

function goToBasket(){
    var seatCount;

    if(typeof(selectedSeatsCount) == "undefined"){
        seatCount = 0;
    }else{
        seatCount = selectedSeatsCount;
    }

    if(seatCount > 0){
        var yes=confirm(langitems['gotobasket-confirm']);

        if(yes){
            unblockSelectedSeats();
            document.location.href = '/basket/viewbasket/';
        }
    }else{
        document.location.href = '/basket/viewbasket/';
    }
}

function showModalBox(head,content){
    showOverlay();

    var markup = '<div class="content-container">';
    markup += '<div class="head">'+head+'</div>';
    markup += '<div class="content">'+content+'</div>';
    markup += '<div class="navi">'; 
    markup += '</div>';
    markup += '</div>';
    markup += '<div class="okButt" onclick="hideModalBox();">OK</div>';

    $('modalBox').update(markup);
    $('modalBox').show();
    centerElementAdvanced('modalBox');
    
}

function centerElementAdvanced(whatToCenter){
    var elt         = $(whatToCenter);

    // retrieve required dimensions
    var eltDims     = elt.getDimensions();
    var browserDims = document.body.getDimensions();

    // calculate the center of the page using the browser and element dimensions
    var y  = (browserDims.height - eltDims.height) / 2;
    var x = (browserDims.width - eltDims.width) / 2;

    // set the style of the element so it is centered
    var styles = {
        position : 'absolute',
        top      : y + 'px',
        left     : x + 'px'
    };

    elt.setStyle(styles);
    elt.scrollTo();
}

function hideModalBox(){
    hideOverlay();
    hideWait();
    $('modalBox').hide();
}


function formatCurrency(num, withSymbol) {
    if(withSymbol == undefined){
        withSymbol = false;
    }

    num = isNaN(num) || num === '' ? 0.00 : num;
    var tmp = parseFloat(num).toFixed(2);
    var tmp1 = String(tmp);
    tmp2 = tmp1.replace('.', ',');

    if(withSymbol){
        tmp2 = ' DKK '+ tmp2;
    }

    return tmp2;
}

var startSearch = 0;

function initSearch(){
    if($('searchfor') !== null){
        Event.observe('searchfor','focus',function(){
            $('searchfor').value = '';
            startSearch = 1;
        });
    
        Event.observe('searchform','submit',function(e){
            e.stop();
        
            if(startSearch == 1){
                showWait();
                document.location = '/search/'+escape($('searchfor').value);
            }
        
            return false;
        })
    }
}

function roundNumber(number,decimal_points) {
    if(!decimal_points) return Math.round(number);
    
    if(number == 0) {
        var decimals = "";
        for(var i=0;i<decimal_points;i++) decimals += "0";
        return "0."+decimals;
    }

    var exponent = Math.pow(10,decimal_points);
    var num = Math.round((number * exponent)).toString();
    return num.slice(0,-1*decimal_points) + "." + num.slice(-1*decimal_points)
}

var oldAction;
var okToMoveOn = false;
function getReductionLimits(/*eventNo,showNo,showId,formData*/formId){
    //validate basket via ajax

    showWait();

    var handleFunc = function (t){
        var json = t.responseJSON;
        var message = '';
        var errors = json['errors'];
        
        $(formId).writeAttribute('action', oldAction);
        
        for(var i = 0 ; i < errors.length ; i++){
            if(i == 0){
                message += '<dl><br />';
            }
            //message += '<li>' + errors[i]['eventname'] + ' - ' + errors[i]['showdate'] + ': ' + langitems['ticket'].toLowerCase() + ' #' + (errors[i]['ticketno']+1) + ' ' + langitems['requires'].toLowerCase() + ' ' + errors[i]['message'].toLowerCase() + '</li>';
            message += '<strong>'+errors[i]['redName']+': </strong><br />';
            message += errors[i]['message']+'<br /><br />';
            
            if(i == errors.length - 1){
                message += '</dl>';
            }
        }
        
        if(message.length < 1){
            okToMoveOn = true;
            return true;
        }else{
            hideWait();
            showModalBox(langitems['validation-error'],message);
            return false;
        }
    }

    var errFunc = function(t) {
        hideWait();
        alert('Error ' + t.status + ' -- ' + t.statusText);
    }
   
    oldAction = $(formId).readAttribute('action');

    $(formId).writeAttribute('action', '/basket/get-reduction-limits');
   
    $(formId).request({
        onSuccess: handleFunc,
        onFailure: errFunc,
        asynchronous: false
    });

}

