
//jQuery(document).ready(function(){
//    if(jQuery.browser.ie && jQuery.browser.version <=7){
//        alert('ie7');
//        jQuery('.container-outer,.container').css('width',jQuery(window).width()+'px');
//        $(window).resize(function(){
//            jQuery('.container-outer,.container').css('width',jQuery(window).width()+'px');
//            alert('ie7 resize');
//        });
//    }
//});


function loadUpcomming(caller){
    var ref2 =jQuery(caller).attr('ref2')+",date="+jQuery(caller).val();
    var elmId=jQuery(caller).parents('div:first').parents('div:first').parents('div:first').attr('class');
    var cont = jQuery(caller).parents('div:first').parents('div:first').parents('div:first');
    var layoutId = elmId.split("-")[1];
    var layerId= elmId.split("-")[2];
    var itemId = elmId.split("-")[3];
    var selected = jQuery(caller).parents('div:first').parents('div:first').parents('div:first').find('li.active').attr('id');
    jQuery(cont).load('loadFunction',{layoutId:layoutId,layerId:layerId,exportCode:itemId,ref2:ref2},function(){
        jQuery(cont).find('#'+selected).trigger('click');
    });
}
function setLocation(location){
    jQuery("<div style='display:none;' onclick='location =\""+location+"\"'>").appendTo('body').trigger('click');
}

function closeSnatch(){
    jQuery('#snatch').remove();
    jQuery('.container-outer,.container').height(jQuery(window).height());
}


//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2008 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
    var version;
    var axo;
    var e;
    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }
    if (!version)
    {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful.

            // default to the first public version
            version = "WIN 6,0,21,0";
            // throws if AllowScripAccess does not exist (introduced in 6.0r47)
            axo.AllowScriptAccess = "always";
            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }

    return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;

    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
            var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == "") {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == "d") {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == "r") {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf("d") > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                }
            }
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    else if ( isIE && isWin && !isOpera ) {
        flashVer = ControlVersion();
    }
    return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
    versionStr = GetSwfVer();
    if (versionStr == -1 ) {
        return false;
    } else if (versionStr != 0) {
        if(isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
            tempString        = tempArray[1];			// "2,0,0,11"
            versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
        } else {
            versionArray      = versionStr.split(".");
        }
        var versionMajor      = versionArray[0];
        var versionMinor      = versionArray[1];
        var versionRevision   = versionArray[2];
        // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}
function AC_AddExtension(src, ext)
{
    if (src.indexOf('?') != -1)
        return src.replace(/\?/, ext+'?');
    else
        return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs)
{
    var str = '';
    if (isIE && isWin && !isOpera)
    {
        str += '<object ';
        for (var i in objAttrs)
        {
            str += i + '="' + objAttrs[i] + '" ';
        }
        str += '>';
        for (var i in params)
        {
            str += '<param name="' + i + '" value="' + params[i] + '" /> ';
        }
        str += '</object>';
    }
    else
    {
        str += '<embed ';
        for (var i in embedAttrs)
        {
            str += i + '="' + embedAttrs[i] + '" ';
        }
        str += '> </embed>';
    }
    document.write(str);
}
function AC_FL_RunContent(){
    var ret =
        AC_GetArgs
            (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
                , "application/x-shockwave-flash"
            );
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
    var ret =
        AC_GetArgs
            (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
                , null
            );
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i=0; i < args.length; i=i+2){
        var currArg = args[i].toLowerCase();
        switch (currArg){
            case "classid":
                break;
            case "pluginspage":
                ret.embedAttrs[args[i]] = args[i+1];
                break;
            case "src":
            case "movie":
                args[i+1] = AC_AddExtension(args[i+1], ext);
                ret.embedAttrs["src"] = args[i+1];
                ret.params[srcParamName] = args[i+1];
                break;
            case "onafterupdate":
            case "onbeforeupdate":
            case "onblur":
            case "oncellchange":
            case "onclick":
            case "ondblclick":
            case "ondrag":
            case "ondragend":
            case "ondragenter":
            case "ondragleave":
            case "ondragover":
            case "ondrop":
            case "onfinish":
            case "onfocus":
            case "onhelp":
            case "onmousedown":
            case "onmouseup":
            case "onmouseover":
            case "onmousemove":
            case "onmouseout":
            case "onkeypress":
            case "onkeydown":
            case "onkeyup":
            case "onload":
            case "onlosecapture":
            case "onpropertychange":
            case "onreadystatechange":
            case "onrowsdelete":
            case "onrowenter":
            case "onrowexit":
            case "onrowsinserted":
            case "onstart":
            case "onscroll":
            case "onbeforeeditfocus":
            case "onactivate":
            case "onbeforedeactivate":
            case "ondeactivate":
            case "type":
            case "codebase":
            case "id":
                ret.objAttrs[args[i]] = args[i+1];
                break;
            case "width":
            case "height":
            case "align":
            case "vspace":
            case "hspace":
            case "class":
            case "title":
            case "accesskey":
            case "name":
            case "tabindex":
                ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
                break;
            default:
                ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
        }
    }
    ret.objAttrs["classid"] = classid;
    if (mimeType) ret.embedAttrs["type"] = mimeType;
    return ret;
}

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}
function encode_utf8( s )
{
    return  encodeURIComponent( s ) ;
}

function postRedirect(url,params){
    $("<div style='display:none;'><form id='postForm' action='"+url+"' method='post'></form></div>'").appendTo('body');
    $.each(params,function(key,value){
        $("<input type='hidden' name='"+key+"' value='"+value+"'>").appendTo('#postForm');
    });
    $('#postForm').submit();
}

function printActionResult(action){
    var disp_setting="toolbar=yes,location=no,directories=yes,menubar=yes,";
    disp_setting+="scrollbars=yes,width=650, height=600, left=100, top=25";
    // alert(action);
    docprint= window.open(action, "printWindow", disp_setting);
    //        docprint.document.open();
    //        docprint.document.write('<html>');
    //        docprint.document.write('<body></body></html>');
    //        docprint.document.write(content_value);
    docprint.print();
    if($.browser.msie){
        setTimeout(function(){docprint.close()},5000);
    }else{
        docprint.close();
    }
    docprint.focus();
    //    jQuery.post(action,function(data){
    //        var result = data;
    //        var disp_setting="toolbar=yes,location=no,directories=yes,menubar=yes,";
    //        disp_setting+="scrollbars=yes,width=650, height=600, left=100, top=25";
    //        var content_value=result;
    //        docprint= window.open(null, "printWindow", null);
    //        docprint.document.open();
    //        docprint.document.write('<html>');
    //        docprint.document.write('<body></body></html>');
    //        docprint.document.write(content_value);
    //        docprint.print();
    //        docprint.close();
    //        docprint.focus();
    //    });
}
function openPrintableActionResult(action){
    if(window.print)
    {
        var disp_setting="toolbar=yes,location=no,directories=yes,menubar=yes,";
        disp_setting+="scrollbars=yes,width=0, height=0, left=0, top=0";
        window.open(action, "printWindow", disp_setting);
    }
}

function normalizeTable(tableId,maxTD){
    $('#'+tableId).find('tr').each(function(i,currTR){
        if($(currTR).find('td').length<maxTD){
            $(currTR).find('td:last').attr('colspan',maxTD-$(currTR).find('td').length+1);
        }
    });
}
function showError(text){
    text = "<span class='error'>"+text+"</span>";
    showInFancyBoxAutoSize(text);
}
function showInFancyBoxAutoSize(text){
    $('body').append("<div id='tempInsert'>"+text+"</div>");
    var height = $('#tempInsert').height()+50;
    var width = 20;
    $('#tempInsert').children().each(function(i,child){
        width+=$(child).width();
    });
    if(width<400) width = 400;
    $('#tempInsert').remove();
    showInFancyBox(text,false,height,width);
}

function showInFancyBox(text,autoSize, height, width) {
    if(autoSize) showInFancyBoxAutoSize(text);
    if(frameWidth==0 && frameHeight==0 ){
        autoSize = true;
    }

    jQuery('a#openFancyBox_gen,#inlineText').remove();
    jQuery('body').append("<a id='openFancyBox_gen' style='display:none;' href='#inlineText'></a>");
    jQuery('body').append("<div id='inlineText' style='display:none;'>"+text+"</div>");
    if(!autoSize){
        jQuery('a#openFancyBox_gen').fancybox({hideOnOverlayClick:false,hideOnContentClick:false,frameWidth:width,frameHeight:height,overlayOpacity:0.7}).trigger('click');
    }else{
        jQuery('a#openFancyBox_gen').fancybox({hideOnOverlayClick:false,hideOnContentClick:false,frameWidth:frameWidth,frameHeight:frameHeight,overlayOpacity:0.7}).trigger('click');
    }

}

function addLoadingToDiv(elm,className){
    jQuery(elm).append('<div class="'+className+'"/>');
}
function removeLoadingFromDiv(elm,className){
    jQuery(elm).find('.'+className).fadeOut(function(){$(this).remove();});
}

function submitEntryForm(caller){
    $(caller).attr('disabled',true);
    addLoadingToDiv($(caller).parents('.layerItem:first'),'productLoader');
    $.post('submitEntryForm',$(caller).parents('form:first').formSerialize(),function(data){
        $(caller).parents('form:first').find('input.error').each(function(){
            $(this).removeClass('error').tooltip().hide();
            $(this).tooltip().destroy();
            if($(this).attr('defTitle')){
                if (!data[$(this).attr('id')]) {
                    $(this).attr('title', $(this).attr('defTitle'));
                    var x = -30;
                    if($(this).hasClass('small_textBox')){
                        x=35;
                    }
                    $(this).tooltip({effect:'fade',offset:[10,x]});
                }
            }
        });
        removeLoadingFromDiv($(caller).parents('.layerItem:first'),'productLoader');
        if(!data.success){
            $.each(data,function(key,value){
                $('#'+key).attr('title',value).data('title',value).addClass('error');
                if($('#'+key).data('tooltip')){
                    $('#'+key).tooltip().destroy();
                }
                var x = -30;
                if($('#'+key).hasClass('small_textBox')){
                    x=35;
                }
                $('#'+key).tooltip({effect:'fade',tipClass:'errorTooltip',offset:[10,x]});
                $('#'+key).tooltip().show();

            });
            $('html').animate({scrollTop:($('input.error:first').offset().top-50)+'px'},800);

        }else{
            if(data.isRedirect){
                window.location = data.action;
            }else{
                var useEntryFormResultMsg=true;
                if(useEntryFormResultMsg)
                {
                    $.each(data.action.split(','), function(index, value) {
                        $.post(value,null,function(data){
                            if(index==0)
                            {
                                var msg;
                                if(data.success)
                                {
                                    msg=$(caller).parents('.layerItem:first').find('.entryFormCont .resultMessage.success');
                                }
                                else
                                {
                                    msg=$(caller).parents('.layerItem:first').find('.entryFormCont .resultMessage.fail');
                                }
                                var clone=msg.clone();
                                var html = $("<div/>").append(clone).html();
                                showInFancyBoxAutoSize(html);
                            }
                        });
                    });
                }
                else{
                    addLoadingToDiv($(caller).parents('.layerItem:first').find('.entryFormCont'),'productLoader');
                    $(caller).parents('.layerItem:first').find('.entryFormCont').load(data.action);
                }
            }
        }

        $(caller).attr('disabled',false);
    });

}

function initEntryForm(cont){
    jQuery(document).ready(function(){
        $(cont).find('.fieldClassInfo').each(function(i,currFieldClass){
            var fieldClass = $(currFieldClass).attr('id');
            var trCount = $('tr.'+fieldClass).length;
            $(currFieldClass).find('td.fieldClassNumber').attr('rowspan',trCount);
            var color = $(currFieldClass).attr('rel');
            $('tr.'+fieldClass).find('select,input,textarea').bind('focus',function(){entryFormOnFocus(color,fieldClass)}); //focus(function(){

            //        });
            $('tr.'+fieldClass+':last').addClass('lastTR');
        });
        $(cont).find('[title]').each(function(i,currTitle){
            var x = -30;
            if($(currTitle).hasClass('small_textBox')){
                x=35;
            }
            $(currTitle).tooltip({effect:'fade',offset:[10,x]});
        });
        $(cont).find('.NumericTextField').numeric();
        setTimeout( function(){
            $(cont).parents('.layerItem').css('height','auto');
            reValidateLayerHeight($(cont).parents('.layerItem'))
        },500);
    });

}

function entryFormOnFocus(color,fieldClass){
    $('tr.'+fieldClass).find('td').css('background-color',color);
    $('tr.'+fieldClass).parents('.entryFormCont:first').find('tr').not('.'+fieldClass).find('td').css('background-color','');
}

function reValidateLayerHeight(posKey){
    var layerBot = $(posKey).parents('.layer').offset().top +  $(posKey).parents('.layer').height();
    var posKeyBot =$(posKey).offset().top +  $(posKey).height();
    if($(posKey).find('.dialog_b,.ch_b').length>0){
        posKeyBot+=Math.abs( parseInt( $(posKey).find('.dialog_b,.ch_b').css('bottom') ));
    }
    if(layerBot<posKeyBot){
        $(posKey).parents('.layer').height( $(posKey).parents('.layer').height() +(posKeyBot-layerBot) );
    }
    reValidateAnchoring(posKey);
}

function reValidateAnchoring(posKey){
    var anchoredPosKey = null;
    $('.layerItem.anchored').each(function(i,currAnchored){
        var anchoredTo = $(currAnchored).data('anchoredTo');
        if($(posKey).hasClass(anchoredTo)){
            anchoredPosKey = currAnchored;
            var marginTop = parseFloat( $(anchoredPosKey).data('marginTop') );
            var newTop = marginTop + $(posKey).height() + $(posKey).position().top; //Changed to position from offset (tootle)
            $(anchoredPosKey).css('top',newTop+'px');
            return reValidateLayerHeight(anchoredPosKey);
        }
    });
//    if(anchoredPosKey!=null){
//
//    }
}

function loadFunction(){
    var params = $.address.parameterNames();
    if (params.length>1) {
        var layoutId = $.address.parameter(params[0]);
        var layerId = params[1].split(",")[0];
        var exportCode = params[1].split(",")[1].split("-")[0];
        $('.layerItem.'+exportCode).html('');
        addLoadingToDiv($('.layerItem.'+exportCode),'productLoader');
        var parameters = {};
        parameters['layoutId'] = layoutId;
        parameters['layerId'] = layerId;
        parameters['exportCode']  = exportCode;
        for(var i=1;i<params.length;i++){
            var ref = params[i].split(",")[1].split("-")[1].substring(0,1);
            var value = $.address.parameter(params[i]);
            var prefix = "ref";
            if(ref=="f"){
                prefix = "functionId";
                ref = "";
            }
            parameters[prefix+ref] = value;
        }
        $('.layerItem.'+exportCode).load('loadFunction',parameters);

    }
}

function openFancyBox(url,width,height) {
    if (navigator.userAgent.toLowerCase().indexOf("iphone") > -1 ||
        navigator.userAgent.toLowerCase().indexOf("android") > -1 ||
        navigator.userAgent.toLowerCase().indexOf("htc") > -1 ||
        navigator.userAgent.toLowerCase().indexOf("ipod") > -1 ||
        ($(window).width()<=800 && $(window).height()<=600) || $(window).height()<=600 ) {
        //window.open(url, "fancyout", "WIDTH=550 HEIGHT=400");
        //return;
    }
    var autoSize = false;
    width = parseFloat(width);
    if(!width || isNaN(width)){
        width = 0;
    }
    if(!height){
        height=0;
    }
    if (width == 0 && height == 0 && frameWidth == 0 && frameHeight == 0) {
        autoSize = true;
    } else if (width == 0 && height == 0) {
        width = frameWidth;
        height = frameHeight;
    }

    jQuery('a#openFancyBox_gen').remove();
    jQuery('body').append("<a id='openFancyBox_gen' style='display:none;' href='" + url + "'></a>");
    if (autoSize) {
        jQuery('a#openFancyBox_gen').fancybox({hideOnOverlayClick:false,hideOnContentClick:false,overlayOpacity:0.7,autosize:true}).trigger('click');
    } else {
        jQuery('a#openFancyBox_gen').fancybox({hideOnOverlayClick:false,hideOnContentClick:false,frameWidth:width,frameHeight:height,overlayOpacity:0.7}).trigger('click');
    }
}

//function openFeatureInfo(exportCode){
//    openFancyBox("featureInfo?featureCode="+exportCode+"&isLocal=false");
//}
function openFeatureInfo(exportCode,bookingCode){
    var href="featureInfo?featureCode="+exportCode+"&isLocal=false";
    if(bookingCode)
    {
         href+="&groupByBookingCode=true";
    }
    openFancyBox(href);
}
function openLocalFeatureInfo(exportCode){
    openFancyBox("featureInfo?featureCode="+exportCode+"&isLocal=true");
}
function openFancyBoxExternal(url) {
    var currentTime = new Date();
    var urlWithTimeStamp = currentTime.getHours();
    //alert(urlWithTimeStamp);
    if (navigator.userAgent.toLowerCase().indexOf("iphone")>-1 ||
        navigator.userAgent.toLowerCase().indexOf("android")>-1 ||
        navigator.userAgent.toLowerCase().indexOf("htc")>-1 ||
        navigator.userAgent.toLowerCase().indexOf("ipod")>-1 ||
        ($(window).width()<=800 && $(window).height()<=600) || $(window).height()<=600 )
    {
       window.open(url, "fancyout","WIDTH=800,HEIGHT=600,scrollbars=yes");
       return;
    }
    jQuery('a#openFancyBox_dropDownSubmit').remove();
    jQuery('body').append("<a id='openFancyBox_dropDownSubmit' style='display:none;' href='showExternal.jsp?u=" + url.replace("&","-AMP-") + "'></a>");
    jQuery('a#openFancyBox_dropDownSubmit').fancybox({hideOnOverlayClick:false,hideOnContentClick:false,frameWidth:800,frameHeight:576,overlayOpacity:0.7,padding:5,
        'callbackOnStart':function(){
            //            var oldBack = jQuery('#fancy_bg').css('background');
            //            alert(oldBack);
            jQuery('#fancy_bg').addClass("iframe");
            //            jQuery('#fancy_bg').attr('rel',oldBack);
        },'callbackOnClose':function(){
            //            alert('close'+jQuery('#fancy_bg').attr('rel'));
            jQuery('#fancy_bg').removeClass("iframe");
        }}).trigger('click');
}

function changeBackground(layoutId){
    $.post('getNextBackground',{layoutId:layoutId},function(data){
        if(data){
            var backgroundStr  ="url('"+data.backgroundFile+"') no-repeat scroll 50% 0 ";
            if(data.color && data.color.length>0){
                backgroundStr+=data.color;
                $("body").css({backgroundColor:data.color});
                if (data.backgroundFile) {
                    jQuery('.container').css('background', backgroundStr);
                }
                if(data.swap && data.swap >0){
                    setTimeout(function(){changeBackground(layoutId)},parseInt(data.swap)*1000);
                }
            }
        }
    });
}
