jQuery.fn.exists = function(){return jQuery(this).length>0;}


/*

function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {};
var tokens;

while (tokens = /[?&]?([^=]+)=([^&]*)/g.exec(qs)) {
params[decodeURIComponent(tokens[1])]
= decodeURIComponent(tokens[2]);
}

return params;
}

var $_GET = getQueryParams(document.location.search);

*/



var is_full_screen = false;

var scrolled_to = 0;
//var scroll_speed = 800;

var total_tickers = 0;

function iterate_news(index){
    $('#ticker_list #ticker_' + index).animate({
        top: '3px'
    },3000,function(){	


        $(this).wait(5000,function(){
            $('#ticker_list #ticker_' + index).animate({
                top: '25px'
            },5000,function(){				
                index++;
                if(index>total_tickers){
                    index = 1;
                }
                iterate_news(index);
            });
        });

    });

}


var ticker_text = new Array();
var ticker_timer = 1000;
var ticker_total_iterations = 0;
var ticker_curr_text = '';
var ticker_curr_arr = new Array();
var ticker_curr_iteration = 0;
var ticker_total_items = 0;
var ticker_curr_item = 0;
var ticker_urls = new Array();  

function iterate_ticker(){
    if(ticker_curr_item < ticker_total_items){
        if(ticker_text[ticker_curr_item]){
            $('.tickerHolder a').text('').attr('href',ticker_urls[ticker_curr_item]);
            ticker_curr_arr = ticker_text[ticker_curr_item].split('');
            ticker_total_iterations = ticker_text[ticker_curr_item].length; 
            ticker_curr_item ++;
            ticker_curr_iteration = 0;	
            iterate_ticker_item();
            setTimeout('iterate_ticker()', 10000);
        }else{		
            return false;
        }

    }else{
        // reset
        ticker_curr_item = 0;
        setTimeout('iterate_ticker()', 5000);		
    }
}

function iterate_ticker_item(){
    if(ticker_curr_iteration <= ticker_total_iterations){
        $('.tickerHolder a').append(ticker_curr_arr[ticker_curr_iteration]);
        ticker_curr_iteration ++;
        setTimeout('iterate_ticker_item()', 50); 
    }
} 


$(document).ready(function(){


    $('.multi_license').click(function(){
        var can_submit = false;
        var button_id = $(this).attr('id');
        var answer = confirm("This is for a group booking of " + $('#item_qty').val() + " licenses. Are you sure?")
        if (answer){
            $('#license_hidden_fields').html('<input type="hidden" name="' + button_id + '" value="1" />');
            $('#buy_form').submit();
            return true;
        }else{
            return false;
        }


        /*
        $('#dialog').dialog(
        {
        modal: true, title: 'Confirm purchase 1', 
        buttons: { "Ok": function() { 
        can_submit = true; }
        , "Cancel": function() { $(this).dialog("close"); return false; } }

        }); 
        alert("Sub:" + can_submit);
        return can_submit;   
        */      
    });

    /*

    $('.multi_license').click(function(e){
    var action = $(this).attr('id');
    e.preventDefault();
    $('#dialog').dialog(
    {
    modal: true, title: 'Confirm purchase', 
    buttons: { "Ok": function() { 
    $('#buy_form').submit( {buy_group_cc: action} ); $(this).dialog("close"); }, "Cancel": function() { $(this).dialog("close"); return false; } }

    });        
    });

    */


    $('.item_chapters').live('change',function(){
        if($(this).val()){
            location.href = $(this).val();  
        }

    });

    $('.buttonBox').css('background', 'url(/images/purchase_icons/buttons.png)')  
    $('.buttonBox').hover(function(){
        $(this).css('background', 'url(/images/purchase_icons/buttonsOver.png)')                      
    },
    function(){
        $(this).css('background', 'url(/images/purchase_icons/buttons.png)')                       
    });

    if($.browser.msie && $.browser.version != 6){         
        $(document).pngFix();
    }

    $('.lightbox_info').click(function(e){
        e.preventDefault();
        $("#lightbox").width('600');
        //alert($(this).attr('href'));
        $('#lightboxArea').load($(this).attr('href')+ " #cms_content",function(){
            loadPopup();            
        });


    });


    $('#voucher_ref').focus(function(){
        if($(this).val()=='Enter voucher code'){
            $(this).val('');
        }
    });

    $('#keywords').focus(function(){
        if($(this).val()=='SEARCH ARCHIVE'){
            $(this).val('');
        }
    });    

    $('#voucher_ref').keyup(function(e) {
        if(e.keyCode == 13) {
            if($('#voucher_ref').val() && $('#voucher_ref').val()!='Enter voucher code'){
                location.href = '/pages/voucher_verify.html?voucher_ref=' + $('#voucher_ref').val();
            }else{
                alert("Please enter a voucher code first");
            }
        }
    });       


    $('#voucher_go').click(function(){
        if($('#voucher_ref').val() && $('#voucher_ref').val()!='Enter voucher code'){
            location.href = '/pages/voucher_verify.html?voucher_ref=' + $('#voucher_ref').val();
        }else{
            alert("Please enter a voucher code first");
        }
    });




    $('#ticker_list li').css('position','absolute').css('top','-20px');




    if($.browser.msie && $.browser.version < 7){

    }else{
        $('#ticker_list li').each(function(index) {
            ticker_text[index] = $(this).text();
            ticker_urls[index] = $('a',this).attr('href'); 
        });

        ticker_total_items = ticker_text.length;
        iterate_ticker();
    }

    $('.sel_satellite_picker_class').change(function(){
        if(conf_id && $(this).val()){
            //location.href = "/buy/satellite/" + $(this).val() + "/" + conf_id;

            $("#lightbox").width('600');
            //alert($(this).attr('href'));
            var url = "/satellite/" + $(this).val() + ".html?conf_id=" + conf_id + " #satellite_page";
            //alert(url);
            $('#lightboxArea').load(url,function(){
                loadPopup();                          
            });


        }
    });


    $('#live_picker').change(function(){
        if(conf_id && $(this).val()){
            location.href = "/live/" + conf_id + "/" + $(this).val();
        }
    });    

    $('.poll_a').live('click', function(){
        //$(this).closest('.poll_form').hide();
        var q = $(this).val();
        var poll_id = $(this).siblings('.poll_id_val').val();
        
        var poll_form = $(this).closest('.poll_form');
        $.post("/ajax/poll_vote.php", { poll_id: poll_id, q: q}, function(data){

            if(data.result!='success'){
                if(data.errors){
                    alert(data.errors);
                }else{
                    alert("Your vote was not recorded. Please try again");
                }
            }else{
                $(poll_form).html(data.html);
            }

        },"json");  
    });

    $('.agenda_docs_button a').live('click',function(e) {
        e.preventDefault();
        $(this).parent().parent().next().toggle('fast');
    }); 


    $('.bookmark').live('click', function() {


        var id_var = $(this).attr('id');


        var id_components = id_var.split("_");
        var type = id_components[1];
        var id = id_components[2];
        var link_type;

        if(!logged_in){
            redirect_to = "javascript:bookmark_item('" + type + "','" + id + "','" + id_var + "');"; 
            do_login();			
            return false;
        }else{
            bookmark_item(type,id,id_var);
        }

    });


    $('#description_more').click(function(){
        $('#hidden_description').fadeIn('slow');

    });   

    $('.close_desc').click(function(){
        $(this).parent().fadeOut('slow');
    });

    $('.speaker_bio_link').live('click',function(){
        var tmp = $(this).attr('id').split('_');
        var speaker_id = tmp[1];
        /*
        $('#hidden_bio #hidden_container').load(load_url,function(){
        $(this).parent().fadeIn('slow');
        })
        */

        show_bio(speaker_id);

    });

    $('#payment_options_container #existing_button').click(function(){
        payment_show_existing();
    });

    $('#payment_options_container #new_button').click(function(){
        payment_show_new();
    });	

    $('#buy_register_table #customer_email').blur(function(){

        if($(this).val()){
            var check_email = $(this).val();
            var element_id = $(this).attr('id');
            // check email against customer records
            $.getJSON('/ajax/check_customer_by_email_json.php?email=' + check_email, function(response) {
                if(response.result=='success'){
                    inline_error('<p>This email address is already in use. Please login</p>',element_id);
                    $('#buy_register_button').attr('disabled','disabled');
                }else{
                    clear_inline_error(element_id);
                    $('#buy_register_button').removeAttr('disabled');
                }
            });

        }
    })



    $('#complete_free_reg').hide();

    $('#free_accept_ts').click(function(){
        if($(this).attr('checked')){
            $('#complete_free_reg').show();
        }else{
            $('#complete_free_reg').hide(); 
        }
    });

    $('#sectorColumn').hide();

    $('#sector_menu_link').click(function(){
        $('#sectorColumn').toggle();
    });


    if($('#js-news').exists()){
        $('#js-news').ticker({
            titleText: '',
            controls: true
        });        
    };


    /*
    $('#newsletter_signup').click(function(){
    $("#lightbox").width('600');
    //alert($(this).attr('href'));
    var url = "/ajax/register.php?type=newsletter";
    //alert(url);
    $('#lightboxArea').load(url,function(){
    loadPopup();


    });        
    }); */

    // GROUP BOOKING EVENT HANDLERS
    $('#add_group_member').click(function(){
        var finished_html = "";
        var first = $('#group_bookings_first_name').val();
        var last = $('#group_bookings_last_name').val();
        var email = $('#group_bookings_email_address').val();
        var confirm_email = $('#group_bookings_confirm_email_address').val();
        var purchaser_id = $('#group_bookings_purchaser_id').val();
        var order_id = $('#group_bookings_order_id').val();
        var number_of_licenses = $('#number_of_licenses').val();

        $.post("/ajax/add_group_member.php", {
            group_bookings_first_name: first,
            group_bookings_last_name: last,
            group_bookings_email_address: email,
            group_bookings_confirm_email_address: confirm_email,
            group_bookings_purchaser_id: purchaser_id,
            group_bookings_order_id: order_id,
            number_of_licenses: number_of_licenses 
        }, function(data){


            if(data.result != 'success'){
                if(data.errors){
                    $('#dialog').html(data.errors);
                    $( "#dialog" ).dialog({ title: 'Error:' });
                }else{
                    alert("Error: The delegate was not added");
                }
            }else{
                $('#group_booking_members_list').html(data.html);
                $('#group_booking_num_completed_text').html(data.number_complete);
                $('.group_bookings_form_field').val("");
                // Are they done adding group members?
                if (data.done == 'done') {
                    $('#group_booking_form_holder').hide();
                    finished_html = '<p class="group_booking_heading">All members added.<p><p>You have now added all of your group booking members to our system. You may now send the registration instructions to your group members by clicking the send viewing instructions button.</p><p><strong>PLEASE NOTE:</strong> Once you have sent the instructions you will <strong>not</strong> be able to change the group members list.</p>';
                    finished_html += data.html;
                    $('#group_booking_members_list').html(finished_html);
                    $('#group_booking_members_list').append('<input type="button" class="submit" id="send_group_emails" value="Send viewing instructions" />');
                }
            }

        },"json");  


    });

    $('#group_member_register_button').click(function(e){
        e.preventDefault();
        var errors = "";
        if (!$('#customer_email').val()) {
            errors += "Please enter your email address.<br />"; 
        }
        if (!$('#customer_confirm_email').val()) {
            errors += "Please confirm your email address.<br />"; 
        }
        if ($('#customer_email').val() != $('#customer_confirm_email').val()) {
            errors += "The email addresses do not match.<br />"; 
        }
        if (!$('#customer_password').val()) {
            errors += "Please enter a password.<br />"; 
        }
        if (!$('#customer_firstname').val()) {
            errors += "Please enter your first name.<br />"; 
        }
        if (!$('#customer_lastname').val()) {
            errors += "Please enter your last name.<br />"; 
        }
        if (!$('#customer_company').val()) {
            errors += "Please enter your company name.<br />"; 
        }
        if (!$('#customer_job_title').val()) {
            errors += "Please enter your Job title.<br />"; 
        }
        if ($("#agree_toc").attr('checked') == false) {
            errors += "Please tick the box to agree to our terms and conditions.<br />"; 
        }

        if (errors) {
            $('#dialog').html(errors);
            $( "#dialog" ).dialog({ title: 'Error:', minWidth: 600 });
            return false;  
        }  else {
            $('#group_member_register_form').submit();
            return true;
        }

    });

    $('.remove_group_member').live('click', function(){
        var purchaser_id = $('#group_bookings_purchaser_id').val();
        var order_id = $('#group_bookings_order_id').val();
        var number_of_licenses = $('#number_of_licenses').val();
        $.getJSON('/ajax/remove_group_member.php', {id: $(this).attr('id'), number_of_licenses: number_of_licenses, order_id: order_id }, function(data){
            if (data.result == 'failed') {
                $('#dialog').html(data.errors);
                $( "#dialog" ).dialog({ title: 'Error:', minWidth: 600 }); 
            } else {
                $('#group_booking_members_list').html(data.html);
                $('#group_booking_num_completed_text').html(data.number_complete);
                $('#group_booking_form_holder').show();  
            }                
        });        
    });

    $('#send_group_emails').live('click', function(){
        //$('#dialog').html('');
        //$( "#dialog" ).dialog({ title: 'Error:', minWidth: 600 });
        var purchaser_id = $('#group_bookings_purchaser_id').val();
        var order_id = $('#group_bookings_order_id').val();
        $.getJSON('/ajax/email_group_members.php', {order_id: order_id, purchaser_id: purchaser_id}, function(data){
            //if (data.response == 'failed') {
            //$('#dialog').html(data.errors);
            //$( "#dialog" ).dialog({ title: 'Error:', minWidth: 600 }); 
            //}
            if (data.response == 'success') {

                $('#group_booking_members_list').html(data.html);
                $('#group_booking_num_completed_text').html(data.number_complete); 
            }                
        });        
    });

    // Is the booker also a group member?
    $('#booker_is_in_group').click(function() {
        //alert("So IS");
        var purchaser_id = $('#group_bookings_purchaser_id').val();
        var order_id = $('#group_bookings_order_id').val();
        $.post("/ajax/add_group_member.php?action=add_booker", {purchaser_id: purchaser_id, order_id: order_id}, function(data){
            //get_group_members();
            window.location.reload();
        },'json');


    });

    $('#booker_not_in_group').click(function() {
        //alert("So ISN'T");
        $.post("/ajax/add_group_member.php?action=not_in_group", {}, function(data){
            //get_group_members();
            window.location.reload();
        },'json');
    });

    // UNIFIED SEARCH EVENT HANDLERS

    $('.unified_search_submit').click(function(){
        var action = $(this).attr('id');
        $('#hidden_fields').html('<input type="hidden" name="action" value="' +action + '" />');
        $('#unified_search').submit();
    });

    $('.search_filter').click(function(){
        var sort_by = $(this).attr('id');
        $('#hidden_fields').html('<input type="hidden" name="sort_by" value="' +sort_by + '" />');
        $('#unified_search').submit();
    });

    $('#search_within_results_submit').click(function(){
        var action = $(this).attr('id');
        $('#hidden_fields').html('<input type="hidden" name="action" value="' +action + '" />');
        $('#unified_search').submit();
    });

    $('.auto_submit').keyup(function(e) {

        if(e.keyCode == 13) {
            $(this).closest("form").submit();
        }
    });

    $('#content_type').change(function(){
        $('#unified_search').submit(); 
    });

    $('#confcat_id').change(function(){
        $('#unified_search').submit(); 
    });

    $('.inputDate').datepicker({ dateFormat: 'dd-mm-yy' });

    $('#search_within_results').click(function(){
        $('#search_within_results_container').slideDown('fast');       
    });

    $('#search_within_results_cancel').click(function(){
        $('#search_within_results_keywords').val('');
        $('#search_within_results_container').slideUp('fast');    
    });


    if($('#buy_links_panel_holder').height()<10){
        $('#buy_links_panel_holder').remove();
        $('.agendaHolder').height(270);
    }else{
        $('.agendaHolder').height((268-$('#buy_links_panel_holder').height()));  
    }

    if ($('#search_within_results_keywords').val()) {
        $('#search_within_results_container').slideDown('fast');
    } else {
        $('#search_within_results_container').hide();
    }
    
    $('#all').mouseenter(function(){
        $('#all_content_search_icon').attr('src', '/images/search/archiveHover.png')
    });
    
    $('#all').mouseleave(function(){
        $('#all_content_search_icon').attr('src', '/images/search/archive.png')
    });
    
    $('#recent').mouseenter(function(){
        $('#recent_search_icon').attr('src', '/images/search/newHover.png')
    });
    
    $('#recent').mouseleave(function(){
        $('#recent_search_icon').attr('src', '/images/search/new.png')
    });
    
    $('#future').mouseenter(function(){
        $('#future_search_icon').attr('src', '/images/search/calenderHover.png')
    });
    
    $('#future').mouseleave(function(){
        $('#future_search_icon').attr('src', '/images/search/calendar.png')
    });

    //NEWS ARCHIVE HANDLERS
    
    $('#more_featured_news_link').click(function(e){
        e.preventDefault();
		if(!$(document).data('featured_news_start_id')){
			$(document).data('featured_news_start_id',5);
            //alert($(document).data('news_start_id'));
		}        
        
        $.post('/ajax/get_more_news_json.php', {start_id: $(document).data('featured_news_start_id'), mode: 'featured', limit: '10'}, function(data){
            if (data.length < 5) {
                $('#more_featured_news_link').hide;    
                
            } else {
                $('#more_featured_news').append(data);    
            }
               //alert(data); 
            
            $(document).data('featured_news_start_id',$(document).data('featured_news_start_id')+10);   
            //console.log("Setting: " + $(document).data('news_start_id'));           
        });      
    });
    
    $('#more_news_link').click(function(e){
        e.preventDefault();
        var search_params = $(this).attr('rel');
        if(!$(document).data('news_start_id')){
            $(document).data('news_start_id',10);
        }        
        //alert($(document).data('news_start_id'));
        $.post('/ajax/get_more_news_json.php', {start_id: $(document).data('news_start_id'), mode: 'news', limit: '10', search_params: search_params}, function(data){
            //alert(data.length);
            if (data.length < 5) {
                $('#more_news_link').hide();
               
            } else  {
               $('#more_news').append(data); 
                     
            }
               //alert(data); 
            
            $(document).data('news_start_id',$(document).data('news_start_id')+10);   
            //console.log("Setting: " + $(document).data('news_start_id'));           
        });      
    });
    
    $('#more_rss_news_link').click(function(e){
        e.preventDefault();
        if(!$(document).data('rss_news_start_id')){
            $(document).data('rss_news_start_id',5);
        }        
        //alert($(document).data('rss_news_start_id')); 
        $.post('/ajax/get_more_news_json.php', {start_id: $(document).data('rss_news_start_id'), mode: 'rss', limit: '10'}, function(data){
            if (data.length < 5) {
               $('#more_rss_news_link').hide;
            } else {
               $('#more_rss_news').append(data); 
            }
               //alert(data); 
            
            $(document).data('rss_news_start_id',$(document).data('rss_news_start_id')+10);   
            //console.log("Setting: " + $(document).data('news_start_id'));           
        });      
    });


});

function get_group_members() {
    var purchaser_id = $('#group_bookings_purchaser_id').val();
    var order_id = $('#group_bookings_order_id').val();
    var number_of_licenses = $('#number_of_licenses').val();
    $.getJSON('/ajax/get_group_members.php', {id: $(this).attr('id'), number_of_licenses: number_of_licenses, order_id: order_id }, function(data){
        if (data.result == 'failed') {
            $('#dialog').html(data.errors); 
        }
        if (data.result == 'success') {
            $('#group_booking_members_list').html(data.html);
            $('#group_booking_num_completed_text').html(data.number_complete);
            $('#group_booking_form_holder').show();  
        }

        if (data.done == 'done') {
            $('#group_booking_form_holder').hide();
            finished_html = '<p class="group_booking_heading">All members added.<p><p>You have now added all of your group booking members to our system. You may now send the registration instructions to your group members by clicking the send viewing instructions button.</p><p><strong>PLEASE NOTE:</strong> Once you have sent the instructions you will <strong>not</strong> be able to change the group members list.</p>';
            finished_html += data.html;
            $('#group_booking_members_list').html(finished_html);
            $('#group_booking_members_list').append('<input type="button" class="submit" id="send_group_emails" value="Send viewing instructions" />');
        }               
    });    
}

function list_group_members() {
    var order_id = $('#group_bookings_order_id').val();
    $.post("/ajax/get_group_members.php", {order_id: order_id}, function(data){
        $('#group_booking_members_list').html(data.html);        
    },'json');

}

function group_members_summary() {
    var order_id = $('#group_bookings_order_id').val();
    $.post("/ajax/group_booking_summary.php", {order_id: order_id}, function(data){
        $('#group_booking_members_list').html(data.html);        
    },'json');

}

function inline_error(content,element_id){
    //display error message next to specific div
    var block_id = 'error_block_' + element_id;
    $('body').append('<div class="val_message" id="' + block_id + '">' + content + '</div>');
    // now position and display

    var offset = $('#' + element_id).offset();
    var left = offset.left + $('#' + element_id).width() + 15;
    var top = offset.top;
    $('#' + block_id).css('left',left + "px").css('top',top + "px").fadeIn('fast');
}

function clear_inline_error(element_id){

    var block_id = 'error_block_' + element_id;
    if($('#' + block_id).exists()){
        $('#' + block_id).fadeOut('fast').remove();
    }

}

function payment_show_new(){
    $('#buy_register_new_container').show();
    $('#buy_register_existing_container').hide();
    $('#payment_options_container #new_button').addClass('selected');
    $('#payment_options_container #existing_button').removeClass('selected');	
}

function payment_show_existing(){
    $('#buy_register_new_container').hide();
    $('#buy_register_existing_container').show();
    $('#payment_options_container #existing_button').addClass('selected');
    $('#payment_options_container #new_button').removeClass('selected');	
}

function show_bio(speaker_id){

    if(embed_mode){
        window.open('/html/speaker_html.php?id=' + speaker_id,"speaker_" + speaker_id,"status=0,toolbar=0,height=400,width=450");
    }else{

        $("#lightbox").width('450px');
        //$("#lightbox").height('350px');
        var load_url = '/ajax/speaker_html.php?id=' + speaker_id;
        $('#lightboxArea').load(load_url,{},function(){




            loadPopup();            
        }); 
    } 
    return false;	
}


function bookmark_item(type,id,parent_id){
    if(logged_in){

        var current = $('img',"#"+parent_id);



        var source_name_arr = current.attr('src').split(".");
        var source_name = source_name_arr[0]; 
        var src_components = source_name.split("_"); 



        if(src_components[1]!='over'){
            // not set yet
            var state = 'on';
        }else{
            var state = 'off';
        }


        $.getJSON('/ajax/bookmark_item_json.php?item_id=' + id + "&item_type=" + type + "&state=" + state, function(response) {
            if(response.result=='success'){
                if(state=='on'){
                    $(current).attr('src',source_name + '_over.png');
                }else{
                    $(current).attr('src',src_components[0] + '.png');
                }
            }else{
                alert("Error: " + response.errors);
            }
        });

    }
}


function replaceURLWithHTMLLinks(text) {
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
    return text.replace(exp,"<a href='$1' target='_blank'>$1</a>"); 
}



