/*
 * Skype stuff.
 */

function skype_normalizeNumber(pnum)
{
    if (typeof pnum != 'string')
    {
        return '';
    }
    
    var ptrim = pnum.trim();
    
    var re_areacode_1 = new RegExp('^\\s*\\(([0-9]{3})\\)\\s*(.*)');
    var re_areacode_2 = new RegExp('^\\s*([0-9]{3})\\s*[-\\.]\\s*(.*)');

    var re_localnum = new RegExp('^\\s*([0-9]{3})\\s*[-\\.]\\s*([0-9]{4})');

    var areacode = '';
    var exch = '';
    var num = '';
    
    var m;
    var rest = '';
    
    m = re_areacode_1.exec(ptrim);
    if (m)
    {
        areacode = m[1];
        rest = m[2].trim();
    }
    else
    {
        m = re_areacode_2.exec(ptrim);
        if (m)
        {
            areacode = m[1];
            rest = m[2];
        }
    }
    
    if (areacode.length > 0)
    {
        m = re_localnum.exec(rest);
        if (m)
        {
            exch = m[1];
            num = m[2];
        }
    }
    
    if ((areacode.length > 0) && (exch.length > 0) && (num.length > 0))
    {
        return '+1' + areacode + exch + num;
    }
    else
    {
        return ptrim;
    }
}

/*
 * Set up the buttons
 */

$(document).ready(function(e) {
        if (false /* currently, we do not show buttons to make skype calls to phone numbers */)
        {
            $(".call-number-container").each(function(idx) {
                    var jq_this = $(this);
                    var jq_parent = jq_this.parent();
                    var jq_tf = jq_parent.find('.phone-number-display-tf-list');
                    if (jq_tf.length > 0)
                    {
                        var num = skype_normalizeNumber(jq_tf.attr("value"));
                        if (num.length > 0)
                        {
                            var href = "skype:" + num + "?call";

                            jq_this.find(".skype-button").each(function(idx) {
                                    this.href = href;
                                });
                            jq_this.find("img").addClass("button");
                        }
                    }
                });
        }
        
        $(".video-handle-container").each(function(idx) {
                var jq_this = $(this);
                var jq_parent = jq_this.parent();
                var jq_tf = jq_parent.find('.video-handle-display-tf-list');
                if (jq_tf.length > 0)
                {
                    var handle = jq_tf.attr("value");
                    
                    if (handle.length > 0)
                    {
                        var href = "skype:" + handle;

                        jq_this.find(".skype-button").each(function(idx) {
                                this.href = href;
                                var jq_button = $(this);

                                jq_button.css('visibility', 'inherit');

                                var jq_img = jq_button.find('img');
                                var src_off = jq_img.attr('src');
                                var src_hover = src_off.replace("_off", "_hover");

                                // preload rollover image
                                $("<img>").attr("src", src_hover);

                                jq_img.addClass("button");

                                jq_img.attr('src_off', src_off);
                                jq_img.attr('src_hover', src_hover);
                                
                                jq_img.hover(
                                             function() {
                                                 var jq_this = $(this);
                                                 jq_this.attr('src', jq_this.attr('src_hover'));
                                             },
                                             function() {
                                                 var jq_this = $(this);
                                                 jq_this.attr('src', jq_this.attr('src_off'));
                                             });
                            });
                    }
                }
            });
    });
