﻿var _faxBlockMethod = null;
var advanced =
{
	button: null
	,state: null
	,hidden: null
	,shown: null
}

function handle_focus(src) {if (src.value == prompt_text)  src.value = '';  }
function handle_blur(src) {if (src.value == '') src.value = prompt_text; }

function _numeric()
{
    if(typeof(_box) != 'undefined')
        $('#' + _box).numeric();
}

function _tabChanged(sender, args)
{
    var body = sender._body;
    $(body).ready(function()
    {
        $transform();
    });
}

//$(document).ready(function()
//{
//    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(function (sender, args) 
//    {
//        // Get postback button id
//        var _button = args.get_postBackElement().id;
//        alert(_button);
//    });
//});

function $transform(){$('.textdropdown-container').each(function(index){$(this).find('div[dropdown=true]').textdropdown();});}
function validate_number_selection(sender, args){args.IsValid = $('#_numbers').find('input:radio').is('[checked=true]');}
function setEnableStyle(){$('.mn_select_inactive').attr('class','mn_select');}

function step_click(caller)
{
    var radio = $(caller).parent().find('input[type=radio]:first');
    radio.click();
}

function _keydown(caller, event)
{
    if(event.keyCode == 13)
    {
        var bt = $(caller).parent().find('input[type=submit]');
        bt.click();
        return(false);
    }
    else
        return(true);
}

function open_advanced()
{
    $('div[id$=AdvancedSettings]').slideToggle(200, function()
    {
        $('div[id$=AdvancedSettings]').ready(function()
        {
            $('.textdropdown-container').each(function(index){$(this).find('div[dropdown=true]').textdropdown();});
        });
        
        $('input:hidden[id$=AdvancedHidden]').attr('value', ($(this).css('display') == 'none' ? 0 : 1))
    });
}

function moreless_behavior(sender)
{
	$('div[mynumbers=true]').slideToggle(300, function()
	{
		changeCaption(sender);
		pn.layout();
		$(this).parent().click();
	});
}

function changeCaption(sender, holder)
{
	if ($('div[mynumbers=true]').css('display') == 'none')
		sender.innerText = 'Περισσότερα';
	else 
		sender.innerText = 'Λιγότερα';
	
	$('#state').find('input:hidden').attr('value', ($('div[mynumbers=true]').css('display') == 'none' ? 0 : 1));
}

function _handleBlur(src, initialValue) { if (src.value == '') src.value = initialValue; }
function _handleFocus(src, initialValue) { if (src.value == initialValue) src.value = ''; }

function _flash(movie, w, h, l)
{
    var div = $('<div style="background-color:white;">&nbsp;</div>').appendTo($(document));
    $.blockUI(
        {
            message: div
            ,css:
            {
                width: (w + 'px')
                ,height:(h + 'px')
                ,border: '0px'
                ,left: l
            }
            ,overlayCSS:
            {
                backgroundColor: '#000000'
            }
        }
    );
    
    $('.blockOverlay')
    .attr('title', 'Click για να κλέισετε το παράθυρο')
    .one('click', function()
    {
        $.unblockUI();
        $(div).remove();
    });
    
    $(document).one('keydown', function(event)
    {
        if(event.keyCode == 27)
            $('.blockOverlay').click();
    });
    
    var html = new FlashObject(movie, w, h).Html();
    div.html(html);
}

function InfoDisplay(value)
{
    var first = $('#Packet2YearInfo');
    var second = $('#PacketEveryMonthInfo');
    var defaulth = $('#NoPacketSelected');

    first.hide();
    second.hide();
    defaulth.hide();

    if (value == 1)
        first.show();
    else if (value == 2)
        second.show();
    else
        defaulth.show();
}

function minNumberLength(sender, args)
{
    args.IsValid = $validators.is_validPhoneNumber(args.Value);
}

function show_tip(event)
{
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    //tip.append('<br class="clear">');
    tip.append('Για να χρησιμοποιήσετε την υπηρεσία Viva VoIP θα χρειαστείτε ένα εικονικό τηλέφωνο (Softphone) που μπορείτε να αποκτήσετε εντελώς ΔΩΡΕΑΝ, ή μια κατάλληλη IP τηλεφωνική συσκευή.');
    tip.append('<br><br>');
    tip.append('Από τα ακόλουθα Links μπορείτε να κατεβάσετε <b>εντελώς δωρεάν</b> εικονικά  τηλέφωνα (Softphones) που είναι συμβατά με το Viva VoIP.');
    tip.append('<br><br>');
    tip.append('<a href="http://counterpath.com/x-lite.html&active=4" target="_blank" class="mn_a">Eyebeam X-Lite</a>');
    //tip.append('<br>');
    //tip.append('<a href="http://www.sjlabs.com/sjp.html" target="_blank" class="mn_a">SJPhone</a>');
    tip.append('<br><br>');
    tip.append('Αναλυτικές οδηγίες  για τη ρύθμισή τους <a href="https://www.viva.gr/support/numbers/" target="_blank" class="mn_a">θα βρείτε εδώ</a>');
    tooltip.show(tip, 'blue', 300, 'STATIC').position(event);
}

function showVoIP_tip(event)
{
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    //tip.append('<br class="clear">');
    tip.append('Τηλεφωνείτε σε όλο τον κόσμο με <b>απίστευτα  χαμηλές  χρεώσεις</b>.Δέχεστε εισερχόμενες κλήσεις. Μιλάτε εντελώς <b>ΔΩΡΕΑΝ</b> με φίλους και συνεργάτες σας που είναι Viva VoIP χρήστες.');
    tip.append('<br><br>');
    tip.append('<a href="/Numbers/VoIP/" target="_blank">Δείτε Περισσότερα</a>');
    tip.append('<br>');

    tooltip.show(tip, 'orange', 200, 'sticky').position(event);
}

function showFollowMe_tip(event)
{
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    //tip.append('<br class="clear">');
    tip.append('Σε αυτό το νούμερο, οι φίλοι και  συνεργάτες σας  θα σας βρίσκουν οπουδήποτε κι αν είστε. Μπορείτε να εκτρέπετε  τις εισερχόμενες  κλήσεις σας  εκεί που εσείς θέλετε κάθε φορά: στο σταθερό, στο κινητό ή στον τηλεφωνητή σας.');
    tip.append('<br><br>');
    tip.append('<a href="/Numbers/FollowMe/" target="_blank">Δείτε Περισσότερα</a>');
    tip.append('<br>');

    tooltip.show(tip, 'pink', 200, 'sticky').position(event);
}

function showFax2Mail_tip(event)
{
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    //tip.append('<br class="clear">');
    tip.append('Αποκτάτε Fax…. <b>χωρίς να χρειάζεστε συσκευή Fax</b>. Λαμβάνετε  όλα τα εισερχόμενα Fax στο e-mail σας (ΔΩΡΕΑΝ) και στέλνετε Fax από τον υπολογιστή σας πολύ φθηνότερα.');
    tip.append('<br><br>');
    tip.append('<a href="/Numbers/Fax2Mail/" target="_blank">Δείτε Περισσότερα</a>');
    tip.append('<br>');

    tooltip.show(tip, 'blue', 200, 'sticky').position(event);
}

function showVoiceMail_tip(event)
{
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    //tip.append('<br class="clear">');
    tip.append('Μπορείτε να λαμβάνετε τα μηνύματα του τηλεφωνητή σας στο email σας.');
    tip.append('<br><br>');
    tip.append('<a href="/Numbers/VoiceMail/" target="_blank">Δείτε Περισσότερα</a>');
    tip.append('<br>');

    tooltip.show(tip, 'blue', 200, 'sticky').position(event);
}

function showPhoneQueue_tip(event) {
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    //tip.append('<br class="clear">');
    tip.append('Αποκτήστε τηλεφωνικό κέντρο σε ένα λεπτό, χωρίς extra εξολισμό! ΔΩΡΕΑΝ με κάθε Viva Number!');
    tip.append('<br><br>');
    tip.append('<a href="/business/ivr/" target="_blank">Δείτε Περισσότερα</a>');
    tip.append('<br>');
    tooltip.show(tip, 'blue', 200, 'sticky').position(event);
}

function showVoiceRecorder_tip(event) {
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    tip.append('Όποτε καλείτε το Viva Number σας θα καταγράφεται ότι λέτε (ακόμα και με ανοιχτή ακρόαση) σε αρχείο ήχου που θα αποστέλλεται στο email σας.');
    tip.append('<br><br>');
    tip.append('<a href="/numbers/voice-recorder/" target="_blank">Δείτε Περισσότερα</a>');
    tip.append('<br>');
    tooltip.show(tip, 'blue', 200, 'sticky').position(event);
}

function showConference_tip(event) {
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    //tip.append('<br class="clear">');
    tip.append('Θα μπορείτε να οργανώνετε τηλεδιασκέψεις με τα άτομα που εσείς θέλετε να συμμετέχουν κάθε φορά, με χρήση κωδικών εισόδου.');
    tip.append('<br><br>');
    tip.append('<b>Η υπηρεσία θα είναι διαθέσιμη σύντομα.</b>');
    tip.append('<br>');

    tooltip.show(tip, 'grey', 200, 'sticky').position(event);
}

function showPhoneMenu_tip(event) {
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    //tip.append('<br class="clear">');
    tip.append('Mπορείτε να φτιάχνετε τα δικά σας ηχητικά μηνύματα χαιρετισμού και μενού  επιλογών (IVR), όπως θέλετε να ακούγονται κάθε φορά που σας καλούν στο νούμερό σας.');
    tip.append('<br><br>');
    tip.append('<a href="/business/ivr/" target="_blank">Δείτε Περισσότερα</a>');
    tip.append('<br>');

    tooltip.show(tip, 'blue', 200, 'sticky').position(event);
}

function showCallRecorder_tip(event) {
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    tip.append('Θα μπορείτε να καταγράψετε όλες σας τις συνομιλίες, ή μόνο αυτές που εσείς θέλετε.');
    tip.append('<br><br>');
    tip.append('<b>Η υπηρεσία θα είναι διαθέσιμη σύντομα.</b>');
    tip.append('<br>');

    tooltip.show(tip, 'grey', 200, 'sticky').position(event);
}

function showDigitalReceptionist_tip(event) {
    var tip = new Sys.StringBuilder();
    tip.append('<img src="/images/MyNumbers/mn_tipclose.gif" style="cursor:pointer; position:absolute; top:10px; right:10px;" onclick="tooltip.hide();" />');
    tip.append('Θα αποκτήσετε virtual γραμματέα που θα απαντάει τις κλήσεις του τηλεφωνικού σας κέντρου, θα ρωτάει τον πελάτη σας με ποιόν θέλει να μιλήσει, και θα δρομολογεί τις κλήσεις!.');
    tip.append('<br><br>');
    tip.append('<b>Η υπηρεσία θα είναι διαθέσιμη σύντομα.</b>');
    tip.append('<br>');

    tooltip.show(tip, 'grey', 200, 'sticky').position(event);
}

function _checkClickBounds(selector, ev)
{
    var p = null;
    if(ev != null)
        p = new Sys.UI.Point(ev.clientX, ev.clientY);
    else
        p = new Sys.UI.Point(0, 0);
    
    $(selector).each(function(index)
    {
        // Get bounds of each box to check if click was in area
        var bounds = Sys.UI.DomElement.getBounds(this);
	    
	    var d = $('<div>&nbsp;</div>').appendTo($(this))
	        .css(
	        {
	            position: 'absolute'
	            ,width: bounds.width + (index == 1 ? 12 : -2)
	            ,height: bounds.height + (index == 0 ? 11 : 20)
	            ,opacity: 0.00001
	            ,left: bounds.x + (index == 1 ? -8 : 0)
	            ,top: bounds.y + (index == 1 ? -18 : 0)
	            ,border: (index == 0 ? '1px solid red' : '1px solid green')
	            ,zIndex: 10000000000
	            ,backgroundColor: 'red'
	        });
        
	    bounds.x += (index == 1 ? -8 : 0);
	    bounds.y += (index == 1 ? -18 :0);
	    bounds.width += (index == 1 ? 12 : -2);
	    bounds.height += (index == 0 ? 11 : 20);
	        	
	    if(p.x < (bounds.x + bounds.width)
		    && p.x > bounds.x
		    && p.y > bounds.y
		    && p.y < (bounds.y + bounds.height))
        {
			    $(this).find('input[type=radio]:first:enabled').click();
			    ev.stopPropagation();
        }
	});
}

function _checkServiceClickBounds(selector, ev)
{
    var p = null;
    if(ev != null)
        p = new Sys.UI.Point(ev.clientX, ev.clientY);
    else
        p = new Sys.UI.Point(0, 0);

    $(selector).each(function(index)
    {
        // Get bounds of each box to check if click was in area
        var bounds = Sys.UI.DomElement.getBounds(this);
        
        var b =
        {
            x: this.offsetLeft
            ,y: this.offsetTop
            ,width: this.offsetWidth
            ,height: this.offsetHeight
        }
        
        if(bounds.x > 0 && bounds.y > 0)
        {
    	    
	        switch(index)
	        {
	            case 0:
    	        
	                bounds.x += 0;
	                bounds.y += 0;
	                bounds.width += -2;
	                bounds.height += 11;
    	        
	                break;
	            case 1:
    	        
	                bounds.x += -15;
	                bounds.y += -18;
	                bounds.width += 0;
	                bounds.height += 27;
    	        
	                break;
	            case 2:
    	        
	                bounds.x += -15;
	                bounds.y += -18;
	                bounds.width += 0;
	                bounds.height += 32;
    	        
	                break;
	            case 3:
    	        
	                bounds.x += -15;
	                bounds.y += -18;
	                bounds.width += 0;
	                bounds.height += 35;
    	        
	                break;
	        }
    	    
    	    if(bounds.width == -2)
    			bounds.width = 0;
    	    
    	    var colors = ['red', 'green', 'blue', 'orange'];
    	    var target = this.id;
    	    var div = this.id + '_div';
    	    var is_checked = $('#' + target).find('input[type=radio]:radio').is('[checked=true]');
    	    var d = null;
    	    
    	    if($get(div) == null)
                d = $('<div>&nbsp;</div>').appendTo($(this));
            else
                d = $('#' + div);

            d.css(
            {
                position: 'absolute'
                ,width: bounds.width
                ,height: bounds.height
                ,opacity: 0.00001
                ,left: bounds.x
                ,top: bounds.y
                ,borderWidth: '0px'
                ,zIndex: 17
                ,backgroundColor: '#ffffff'
            })
            .attr('id', this.id + '_div')
            .one('click', function(event)
            {
                if(fireClick())
                    $('#' + target).find('input[type=radio]:first:enabled').click();
                
                event.stopPropagation();
            });
            
            if(is_checked)
                d.remove();
        }
	});
}

function _checkStepsClick(selector, ev)
{
    var p = null;
    if(ev != null)
        p = new Sys.UI.Point(ev.clientX, ev.clientY);
    else
        p = new Sys.UI.Point(0, 0);

    $(selector).each(function(index)
    {
        // Get bounds of each box to check if click was in area
        var bounds = Sys.UI.DomElement.getBounds(this);
        
        var b =
        {
            x: this.offsetLeft
            ,y: this.offsetTop
            ,width: this.offsetWidth
            ,height: this.offsetHeight
        }
        
        if(bounds.x > 0 && bounds.y > 0)
        {
    	    
	        switch(index)
	        {
	            case 0:
	                var step2 = this.id.contains('step2');
	                bounds.x += 0;
	                bounds.y += 0;
	                bounds.width += (step2 ? 50 : -2);
	                bounds.height += 11;
                    break;
                    
                case 1:
    	        
	                bounds.x += -5;
	                bounds.y += -18;
	                bounds.width += 10;
	                bounds.height += 22;
    	        
	                break;
            }
            
    	    var target = this.id;
    	    var div = this.id + '_div';
    	    var is_checked = $('#' + target).find('input[type=radio]:first').is('[checked=true]');
    	    var d = null;
    	    
    	    if($get(div) == null)
                d = $('<div>&nbsp;</div>').appendTo($(this));
            else
                d = $('#' + div);

            d.css(
            {
                position: 'absolute'
                ,width: bounds.width - 20
                ,height: bounds.height
                ,opacity: 0.00001
                ,left: bounds.x
                ,top: bounds.y
                ,borderWidth: '0px'
                ,zIndex: 0
                ,backgroundColor: '#ffffff'//'#ffffff'
            })
            .attr('id', this.id + '_div')
            .one('click', function(event)
            {
                if(fireClick())
					$('#' + target).find('input[type=radio]:first:enabled').click();
                
                event.stopPropagation();
            });
            
            if(is_checked)
                d.remove();
        }
	});
}

function fireClick()
{
    var fire = true;
    var modal_windows = ['pn', 'pwd'];
    
    for(var i in modal_windows)
    {
        var win = $find(modal_windows[i] + 'Behavior');
        if(win != null)
        {
            if($('#' + win.get_PopupControlID()).css('display') != 'none')
            {
                fire = false;
                break;
            }
        }
    }
    
    return fire;
}

$(document).click(function(event)
{
    //_checkClickBounds('#___step1_option1,#___step1_option2,#___step2_option1,#___step2_option2', event);
    _checkStepsClick('#___step1_option1,#___step1_option2,#___step2_option1,#___step2_option2', event);
	_registerEventHandlers();
});

$(document).ready(function(event)
{
    _checkSteps();
});

function _checkSteps(event)
{
    _checkStepsClick('#___step1_option1,#___step1_option2,#___step2_option1,#___step2_option2', event);
}

function _registerEventHandlers(event)
{
    var tabs = $find($('div[id$=NymberTabs]').attr('id'));
    if(tabs != null && tabs.get_isInitialized())
    {
        _checkServiceClickBounds('#___svc_voip,#___svc_voicemail,#___svc_fax,#___svc_followme', event);
    }
    else
    {
        if(typeof(window['__count']) == 'undefined')
            window['__count'] = 0;
        
        window['__count'] = parseInt(window['__count']) + 1;
        
        if(window['__count'] < 5)
            setTimeout("_registerEventHandlers(null);", 100);
    }
}

function validate_terms(sender, args)
{
    args.IsValid = $('input[id$=AcceptTerms]:first').is('[checked=true]');
}

function _hover(src, flag)
{
	var cl = $(src).find('div:first');
	cl.attr('class', (flag ? 'bc_container_nc' : 'bc_container_gray_nc'));
	cl.find('.bc_ta').find('div').each(function(index)
	{
		if(index == 0)
			this.className = (flag ? 'bc_ta_lt' : 'bc_ta_lt_gray');
		if(index == 1)
			this.className = (flag ? 'bc_ta_rt' : 'bc_ta_rt_gray');
	});
	
	cl.find('.bc_ta').find('div').each(function(index)
	{
		if(index == 0)
			this.className = (flag ? 'bc_ta_lt' : 'bc_ta_lt_gray');
		if(index == 1)
			this.className = (flag ? 'bc_ta_rt' : 'bc_ta_rt_gray');
	});
	
	var bottom = cl.find('.bc_ba_gray');
	if(!flag)
		bottom = cl.find('.bc_ba');
	
	bottom.attr('class', (flag ? 'bc_ba' : 'bc_ba_gray'));	
	bottom.find('div').each(function(index)
	{
		if(index == 0)
			this.className = (flag ? 'bc_ba_lb' : 'bc_ba_lb_gray');
		if(index == 1)
			this.className = (flag ? 'bc_ba_lr' : 'bc_ba_lr_gray');
	});
}

function _hideWizardOverview()
{
    var checked = $('#dontshow').is('[checked=true]');
    if(checked)
        setPersistentCookie('.NumbersReminder', '1', 1000);
}

function _smartCardPopup(src, tip, e)
{
    if($(src).attr('open') == 'false')
    {
        tooltip.show($('#' + tip).html(), 'blue', 255, 'STATIC').position(e);
        $(src).attr('open', 'true');
    }
}

function _smartCardPopupClose(handler)
{
    $('#' + handler).attr('open', 'false');
    tooltip.hide();
}

function toggleInfo()
{  
   var chk1ckecked = $('input[id$=TerminateMonthlySubscription]').is(':checked');
   $('span[id$=MonthlyLabel]').css('display', (chk1ckecked ? 'none' : 'block'));
   $('span[id$=TerminateMonthlyLabel]').css('display', (chk1ckecked ? 'block' : 'none'));
   $('#SubscriptionNotTerminated').css('display', (chk1ckecked ? 'none' : 'block'));
   $('#SubscriptionTerminated').css('display', (chk1ckecked ? 'block' : 'none'));
   
   var chk2ckecked = $('input[id$=UpgradeToYearlySubscription]').is(':checked');
   $('input[id$=UpgradeToYearlySubscription]').attr('checked',(chk1ckecked ? false : chk2ckecked));
   $('span[id$=UpgradeLabel]').css('display', (chk2ckecked ? 'block' : 'none'));
}

function getSubscriptionAction()
{
    var chk1ckecked = $('input[id$=TerminateMonthlySubscription]').is(':checked');
    var chk2ckecked = $('input[id$=UpgradeToYearlySubscription]').is(':checked');
    var msg = '';
    if (chk2ckecked) msg = 'Έχετε επιλέξει να αναβαθμίσετε το πακέτο σας. Πατήστε OK για να ολοκληρωθεί η αναβάθμιση.';
    if (!chk1ckecked) msg = 'Έχετε επιλέξει να τερματίσετε το πακέτο σας. Πατήστε OK για να αποθηκευτεί το αίτημά σας.'
    
    var action = false;
    
    if (!chk1ckecked || chk2ckecked)
        confirm(msg);
    
    return action
}

function setNumberYearlySubscriptionInfo(flag)
{
    var monthlyHolder = $('div[id$=MonthlySubscription]').css('display', (flag ? 'none' : ''));
    var yearlyHolder = $('div[id$=YearlySubscription]').css('display', (flag ? '' : 'none'));
}

function KeyDownHandler(btn)
{
    var button = $('input[id$=' + btn +']');
    if (typeof button == 'object')
    {
        var key = (ns6 ? e.keyCode : event.keyCode);
	    if(key==13)
        {
            button.click();
            return false;
        }
    }
}

function validate_MobileProviders(sender, args)
{
    var selected = $('table[id$=\'Providers\']').find('input[type=checkbox][checked=true]').size();
    args.IsValid = (selected > 0);
}

function setProductDetails(title,price,vivaprice)
{
    //$('#HiddenSelectedProduct').val(title + ':' + price + ':' + vivaprice);
    $('#HiddenSelectedProduct').val(title + '-' + price + '-' + vivaprice);
}

function ParseProductData()
{
    var hiddendata = $('input:hidden[id$=HiddenSelectedProduct]').val();
    if(hiddendata.indexOf(':') > -1)
    {
        $('#ProductCode').text(hiddendata.split(':')[0]);
        $('#ProductPrice').text(hiddendata.split(':')[1]);
        $('#VivaProductPrice').text(hiddendata.split(':')[2]);
        $('span[id$=lnkOrder]').html('<a class="orderme" target="_blank" href="' + hiddendata.split('-')[0] + '" Title="' + hiddendata.split('-')[1] + '"></a>');
    }
}

function show_company(caller)
{
    var val = $(caller).find('input[type=\'radio\'][checked=\'true\']').val();
    $('div[id$=Company]').css('display', (val == 0 ? 'none' : ''));
    $('div[id$=IndividualGroup]').css('display', (val == 0 ? '' : 'none'));
    
    $('span[id$=FirstNameLabel]').html((val == 0 ? 'Όνομα' : 'Επωνυμία'));
    $('span[id$=LastNameLabel]').html((val == 0 ? 'Επώνυμο' : 'Δραστηριότητα'));
    $('span[_cmnt=true]').css('display', (val == 0 ? 'none' :  $('[id$=MustApplyToConditionsOfUse]').val() == 'True' ? '' : 'none'));
}

function verification_validate_EETTCode(sender, args)
{
    var doConditionsCheck = $('[id$=MustApplyToConditionsOfUse]').val().toLowerCase() == 'true';
    var iscompany = $('table[id$=IsCompany]').find('input:last').is('[checked=true]');    
    args.IsValid = (!doConditionsCheck || (doConditionsCheck && iscompany && args.Value.length > 0));
}

function verification_validate_field(sender, args)
{
    var company = $('table[id$=IsCompany]').find('input:last').is('[checked=true]');
    args.IsValid = (company || (!company && args.Value.length > 0));
}

function verification_validate_adt(sender, args)
{
    var r = new RegExp(/^[Α-Ω]{1,2}[0-9]{6}$/);
    var company = $('table[id$=IsCompany]').find('input:last').is('[checked=true]');
    args.IsValid = (company || (!company && r.test(args.Value.toUpperCase())));
}

function verification_conditional_validate_adt(sender, args)
{
    var company = $('table[id$=IsCompany]').find('input:last').is('[checked=true]');
    var r = new RegExp(/^[Α-Ω]{1,2}\d{6}$/);
    args.IsValid = (!company || (company && r.test(args.Value.toUpperCase())));
}

function verification_validate_vat(sender, args)
{
    var valid = false;
    var value = args.Value;

    if(value.match(/[^0-9]/g) > 0 || value.length != 9)
        valid = false;
    else
    {
        var total = 0;
        
        for(var i = 0; i < 8; i++)
            total += value.substr(i, 1) * (1 << (9 - i - 1));

        valid = true;
        
        if (!(((total % 11) % 10) == value.substr(9 - 1)) || (value == "000000000"))
            valid = false;
    }
    
    args.IsValid = valid;
}

function verification_conditional_validation(sender, args)
{
    var company = $('table[id$=IsCompany]').find('input:last').is('[checked=true]');
    args.IsValid = (!company || (company && args.Value.length > 0));
}

function applyFormEffects()
{
    $('div[id$=FormContainer]').find('input[type=text]').focus(function()
    {
        this.style.borderBottom = '1px dotted green';
    }).blur(function()
    {
        this.style.borderBottom = '1px dotted #2f81d1';
    });
}

function validate_application_selection()
{
    var value = $('select[id$=ActiveApplications]').val();
    if(value == 0)
        alert('Επιλέξτε έναν αριθμό');

    return (value > 0);
}

function set_application_value()
{
    var value = $('table[id$=IsCompany]').find('input[type=radio][checked=true]').val();
    $('span[id$=FormCost]').html((value == 0 ? verification.individuals : verification.companies));
}

function verification_validate_email(sender, args)
{
    args.IsValid = $validators.is_email(args.Value);
}

function set_prefix(caller)
{
    var suffix = $(caller).find('span:first').html();
    $('input[id$=NumberSuffix]:first').val(suffix);
    $('div[class=picturePopup_close]').find('a[id$=CloseLink]:first').click();
}

function hide_center_image(hide)
{
    $('div[id$=mn_radioseparator_vertical]:first').css('visibility', (hide ? 'hidden' : 'visible'));
}

function disable_slider()
{
    $('input[class=prev]').attr('class', 'prev-disabled');
    $('input[class=next]').attr('class', 'next-disabled');
}

function slider()
{
    $('span[class=_link]').one('click', function(event)
    {
        $(this).find('a:first').click();
        event.stopPropagation();
    });
    
	$('#screen').serialScroll(
	{
		target: '#sections'
		,items: 'li' // Selector to the items ( relative to the matched elements, '#sections' in this case )
		,prev: 'input.prev' // Selector to the 'prev' button (absolute!, meaning it's relative to the document)
		,next: 'input.next' // Selector to the 'next' button (absolute too)
		,axis: 'xy' // The default is 'y' scroll on both ways
		,duration: 700 // Length of the animation (if you scroll 2 axes and use queue, then each axis take half this time)
		,start: 0
		,force: true // Force a scroll to the element specified by 'start' (some browsers don't reset on refreshes)
		
		//,queue:false// We scroll on both axes, scroll both at the same time.
		//event:'click',// On which event to react (click is the default, you probably won't need to specify it)
		//stop:false,// Each click will stop any previous animations of the target. (false by default)
		//lock:true, // Ignore events if already animating (true by default)		
		//start: 0, // On which element (index) to begin ( 0 is the default, redundant in this case )		
		//cycle:true,// Cycle endlessly ( constant velocity, true is the default )
		//step:1, // How many items to scroll each time ( 1 is the default, no need to specify )
		//jump:false, // If true, items become clickable (or w/e 'event' is, and when activated, the pane scrolls to them)
		//lazy:false,// (default) if true, the plugin looks for the items on each event(allows AJAX or JS content, or reordering)
		//interval:1000, // It's the number of milliseconds to automatically go to the next
		//constant:true, // constant speed
		,lazy: true
		
		,onBefore: function(e, elem, $pane, $items, pos)
		{
			/**
			 * 'this' is the triggered element 
			 * e is the event object
			 * elem is the element we'll be scrolling to
			 * $pane is the element being scrolled
			 * $items is the items collection at this moment
			 * pos is the position of elem in the collection
			 * if it returns false, the event will be ignored
			 */
			 //those arguments with a $ are jqueryfied, elem isn't.
			e.preventDefault();
			
			if(this.blur)
				this.blur();
		}
		
		,onAfter: function(elem)
		{
			//'this' is the element being scrolled ($pane) not jqueryfied
		}
	});
}

function highlight(caller, flag)
{
    $(caller).find('.bc_container_gray').css('background-color', (flag ? '#fffca7' : '#ffffff'));
}

function validate_fileExtension(sender, args)
{
	var r = eval('/' + _faxSettings.extensions + '/i');
	args.IsValid = r.test(args.Value.toLowerCase());
}

function chooseFile(caller)
{
	self.frames['upload'].document.getElementById('fileName').click();
}

function _setFaxFileSelection(fileName)
{
    var mac = (navigator.userAgent.toLowerCase().indexOf('macintosh') > -1);
    var parts = fileName.split('\\');
    if (mac && $.browser.safari)
        parts = fileName.split('/');

	$('input[id$=FaxFile]').val(parts[parts.length - 1]);
}

function _FaxFileUploaded()
{
	$('input[type=submit][id$=UploadFile]').click();
}

function _submitFaxFile()
{
	// Always refer with this index to the upload iframe to resolve firefox error
	var index = 0;
	var frames = window.frames;
	for(var i = 0; i < frames.length; i++)
	{
		if(frames[i].name == 'upload')
		{
			index = i;
			break;
		}
	}
	
	window.frames[index].document.forms[0].submit();
}

function _validateAndSend()
{
	Page_ClientValidate('SendFax');
	if(Page_IsValid)
	{
		if(_faxBlockMethod != null)
			_faxBlockMethod();
		_submitFaxFile();
	}
}

function _validateRecipientsCount(sender, args)
{
	var isValid = true;
	
	var lines = args.Value.trim().split('\n');
	if(lines.length > 0)
	{
		var phones = [];
		
		// Remove empty lines
		for(var i = 0; i < lines.length; i++)
		{
			var line = lines[i].trim().replace(String.fromCharCode(13), '');
			if(line.length > 0)
				phones.push(line);
		}
		
		isValid = (phones.length <= _faxSettings.maxRecipients);
	}
	
	args.IsValid = isValid;
}

function _validatePhoneList(sender, args)
{
	var isValid = true;
	
	var lines = args.Value.trim().split('\n');
	if(lines.length > 0)
	{
		var phones = [];
		
		// Remove empty lines
		for(var i = 0; i < lines.length; i++)
		{
			var line = lines[i].trim().replace(String.fromCharCode(13), '');
			if(line.length > 0)
				phones.push(line);
		}
		
		var errors = [];
		for(var i = 0; i < phones.length; i++)
		{
			var phone = phones[i];
			if(!$validators.is_validPhoneNumber(phone))
				errors.push(phone);
		}
		
		// Ok no errors
		if(errors.length > 0)
		{
			isValid = false;
			sender.errormessage = 'Οι παραλήπτες {0} είναι λάθος'.Format(errors.join(', '));
		}
	}
	else
		isValid = false;
	
	args.IsValid = isValid;
}

function callrecdetails()
{
   callrec($('table[id$=CallRecordingIncoming]:first'), 'incoming');
   callrec($('table[id$=CallRecordingOutgoing]:first'), 'outgoing');
}

function callrec(caller, prefix)
{
    var value = $(caller).find('input:checked').val();
    $('div[id^=' + prefix + ']').hide()
    $('div[id=' + prefix + '_' + value + ']').show();
}

function setPersonalMailStatus(element)
{
    $.ajax(
    {
        type: "POST"
	    ,url: '/Numbers/MyNumbers.aspx/SetPersonalMailStatus'
	    ,contentType: "application/json; charset=utf-8"
	    ,data: "{'active':'" + element.checked + "'}"
	    ,dataType: 'json'
	    ,success: function()
	    {   
	        var status = (element.checked ? 'ενεργοποιήθηκε' : 'απενεργοποιήθηκε');
	        var successdetails = 'To πρόσωπικό σας mailbox {0} με επιτυχία.'.Format(status);
	        element.disabled = false;
	        $('span#pleasewait').hide();
	        _alert(successdetails);
	    }
	    ,error: function()
	    {
	        var errordetails = 'Σφάλμα - Παρακαλώ δοκιμάστε ξανά';
	        element.disabled = false;
	        $('span#pleasewait').hide();
	        _alert(errordetails);
	    }
    });
}

function CheckInputNumberFormat(sender, args)
{
	var r = new RegExp(/^(2\d{9})|(700\d{7})$/);
	args.IsValid = true;
	if (args.Value.length > 0 && args.Value != prompt_text)
	{
		args.IsValid = r.test(args.Value);
	}
}

function CheckUrbanInputNumberFormat(sender, args)
{
    var r = new RegExp(/^(800|801|806|812|825)\d{7}/);
	args.IsValid = true;
	if (args.Value.length > 0 && args.Value != prompt_text)
	{
		args.IsValid = r.test(args.Value);
	}
}

function display_info(caller)
{
	var value = $(caller).find('input[type=radio][checked=true]').val();
	$('#labels').find('span,div').hide();
	$('#labels').find('span[id$=Product_' + value + ']').show();
}

function _show(value)
{
	$('#numberType').val(value);
	nl.show();
}

function updateDescription(sender, args)
{
	var numberId = $('input:hidden[id$=MyNumbers]').attr('value');
	
	PageMethods.UpdateDescription(numberId, args.newValue
	,function(value)
	{
		if(value)
			$('input:hidden[id$=MyNumbers]').parent().find('div[class^=textdropdown-box]').find('span:first').html('(' + args.newValue + ')');
	},function(message){});
}

function updateArea(sender, args)
{
	var numberId = args.data;
	var area = args.newValue;
	
	PageMethods.UpdateArea(numberId, area, function(value)
	{
		if(value)
		{
			$(sender.get_element())
				.closest('tr')
				.animate(
				{
					height: '1%'
					,width: '1%'
					,fontSize: '1%'
				}
				,'slow'
				,function()
				{
					var table = $(this).closest('table');
					$(this).hide();
					
					if(table.find('tr:visible').size() == 1)
					{
						loadActiveTab(true);
					}
				});
		}
		else
			updateAreaFailed();
			
	}, updateAreaFailed);
}

function updateAreaFailed()
{
	alert('Ο ορισμός της περιοχής χρήσης απέτυχε. Παρακαλώ δοκιμάστε ξανά');
}

function GetConfirmationText(isconfirm)
{
    var sb = new Sys.StringBuilder();
    var numbers = new Array();
    var ok = false;
    
    $('div[id$=Incomplete]').find('input[type=\'checkbox\'][id$=\'' + (isconfirm ? 'ConfirmMe' : 'DeleteMe') + '\']').each(function()
    {
        if(this.checked)
            numbers.push($(this).closest('tr').find('td:first').html());
    });
    
    if(numbers.length > 0)
    {
        sb.append('Έχετε επιλέξει να ');
        sb.append((isconfirm ? 'επιβεβαιώσετε την αγορά' : 'ακυρώσετε την αγορά'));
        sb.append((numbers.length == 1 ? ' του αριθμού' : ' των αριθμών'));
        sb.append('\n\n\t');
        sb.append(numbers.join('\n\t'));
        sb.append('\n\nΠαρακαλώ πατήστε ΟΚ για να προχωρήσετε στην παραπάνω ενέργεια.');
        ok = true;
    }
    else
        sb.append('Παρακαλώ επιλέξτε κάποιο νούμερο');

    if(ok)
        return confirm(sb.toString());
    else
    {
        _alert(sb.toString());
        return(false);
    }
}

function GetTransferConfirmationText(isconfirm,isfromme)
{
    var sb = new Sys.StringBuilder();
    var numbers = new Array();
    var ok = false;
    
    var container = (isfromme ? $('div[id$=NumberTranfersFromMe]') : $('div[id$=NumberTranfersToMe]'));
    
    container.find('input[type=\'checkbox\'][id$=\'' + (isconfirm ? 'ConfirmMe' : 'DeleteMe') + '\']').each(function()
    {
        if(this.checked)
            numbers.push($(this).closest('tr').find('td:first').html());
    });
    
    if(numbers.length > 0)
    {
        sb.append('Έχετε επιλέξει να ');
        sb.append((isconfirm ? 'επιβεβαιώσετε την μεταφορά' : 'ακυρώσετε την μεταφορά'));
        sb.append((numbers.length == 1 ? ' του αριθμού' : ' των αριθμών'));
        sb.append('\n\n\t');
        sb.append(numbers.join('\n\t'));
        sb.append('\n\nΠαρακαλώ πατήστε ΟΚ για να προχωρήσετε στην παραπάνω ενέργεια.');
        ok = true;
    }
    else
        sb.append('Παρακαλώ επιλέξτε κάποιο νούμερο');

    if(ok)
        return confirm(sb.toString());
    else
    {
        _alert(sb.toString());
        return(false);
    }
}

function _createFrameList(count)
{
    for(var i = 0; i < count; i++)
        $('<iframe width="1" height="1" src="/Numbers/NumberCompleted.aspx"></iframe>').appendTo($('#_frameList'));
}

function tryload_tab()
{
	var tab = $find(_tabContainer);
	
	if(tab == null)
		setTimeout(tryload_tab, 100)
	else
	{
		if(tab.get_isInitialized())
			loadActiveTab();
		else
			setTimeout("load_tab", 50);
	}
}

function load_tab(sender, args){loadActiveTab();}

function loadActiveTab(force)
{
    var tabcontainer = $find(_tabContainer);
	var tabIndex = tabcontainer.get_activeTabIndex();

    var control = 'Tab' + (tabIndex + 1) + 'Show';
    var button = $('input[id$=Show]:first', $('#' + _tabContainer).children(':last').children(':eq(' + tabIndex + ')'));
    
    var reload = (force == true);
    
    if(reload || button.attr('loaded').toString() != 'true')
    {
        button.attr('loaded', true).click();
	}
}

function _getPendingItems()
{
	// find if user has any pending items
	$my._getDataValue($my.requestType.pendingItemDetails, $my.dataValueType.json, function(value)
	{
		// show item count
		var list = value.list;
		var count_all = parseInt(list[0].Second) + parseInt(list[1].Second) + parseInt(list[2].Second) + parseInt(list[3].Second) + parseInt(list[4].Second);
		var count_ported = parseInt(list[1].Second);
		
		if(count_all > 0)
		{
			$('span[id$=Suspenses]:first')
				.html(String.format('({0})', count_all))
				.prev('a:first').attr('title', function()
				{
					return String.format('{0} ({1})', $(this).text(), count_all);
				}).next('span').attr('title', function()
				{
					return $(this).prev('a:first').attr('title');
				});
			$('span[id$=Suspenses]:first').addClass('redmargin');
		}
		
		if(count_ported > 0)
		{
			$('span[id$=PortabilitySuspenses]:first')
				.html(String.format('({0})', count_ported))
				.prev('a:first').attr('title', function()
					{
						return String.format('{0} ({1})', $(this).text(), count_ported);
					}).next('span').attr('title', function()
					{
						return $(this).prev('a:first').attr('title');
					});
		}
	});
}

function updateService(iconClass, label)
{
    $('span[id$=CurrentNumberServiceLabel]')
        .text(label)
        .removeClass()
        .addClass(iconClass);
}

function attachClickToServicesDropdown()
{
    $('ul.availableServices li[_serviceindex={0}]'.Format($('select[id$=SRVices]').val())).addClass('active');
    $('ul.availableServices li a').bind('click',function(){
        $('ul.availableServices li').removeClass('active');
        $(this).parent('li').addClass('active');
        
        var current = $('select[id$=SRVices]').val();
        var newValue = parseInt($(this).parent('li').attr('_serviceindex'));
        
        //if(current != newValue)
			$('select[id$=SRVices]').val(newValue).change();
    });
}

function checkUserName()
{
    var ev = function(e)
    {
        var userName = $(this).val();        
    
        if(userName.length > 0 && $validators.is_email(userName)) 
        {
            //Show spinner
            $("#display").show().removeClass().addClass('loading-small');
            
            $('input[id$=ToVivaAccount]').attr("disabled", true);

			var success = function(response)
			{
				$('input[id$=IsVivaUser]').val(response.toString());
                var toUserDiffersFromCurrentUser = $('input[id$=ToVivaAccount]').val().toLowerCase() != _currentUserName.toLocaleLowerCase();
                
                if(response && toUserDiffersFromCurrentUser) 
                {
                    $('#display').removeClass().addClass('valid');
                }
                else
                {
                    $('#display').removeClass().addClass('invalid');
                }
                
                $('input[id$=ToVivaAccount]').removeAttr("disabled");
			}
			
			var failure = function(ex)
			{
				$('#display').hide();
				$('input[id$=ToVivaAccount]').removeAttr("disabled");
			}
			
			PageMethods.UserNameExists(userName, success, failure);

        }
        else
        {
            $('#display').hide();
        }
    };
    
    $('input[id$=ToVivaAccount]').keyup(ev).blur(ev);
}

function handle_transfer_keydown(caller, e)
{
	if(e.keyCode == 13)
	{
		$('a[id$=TransferMyNumber]').focus();
	}
	return(true)
}

function terms_accepted()
{
    if ($('input[id$=AcceptTerms]').is(':checked'))
    {
        $('a[id$=TransferMyNumber]').removeClass('inactive');
    }
    else
    {
        $('a[id$=TransferMyNumber]').addClass('inactive');
    }
}

function validate_isVivaUser(sender, args){args.IsValid = (args.Value == 'true');}
function validate_toUserDiffersCurrentUser(sender, args){args.IsValid = (args.Value.toLowerCase() != _currentUserName.toLocaleLowerCase());}
function validate_ifisEmail(sender, args){args.IsValid = $validators.is_email(args.Value); }

var Holidays =
{
	_count: 0

	,getCount: function(){return ++this._count;}
	
	,init: function(range)
	{
		this.clear();
		this.addRange(range);
	}
	
	,add: add_holiday
	,addRange: function(range)
	{
		if(range != null && range.length > 0)
		{
			Array.forEach(range, function(value, index)
			{
				Holidays.add(value);
			});
		}
	}
	
	,remove: remove_holiday
	,clear: function()
	{
		$('#holidays').find('tr:gt(1):not([id=empty])').remove();
		this._layout();
	}
	,validate: function(source, args)
	{
		var items = [];
		var rows = $('#holidays').find('tr:gt(1):not([id=empty])');
		var valid = true;
		
		for(var i = 0; i < rows.length; i++)
		{
			var row = $(rows[i]);
			
			items.push(
			{
				_row: row
				,date: row.find('input[id^=holiday]').val()
				,description: row.find('input[id^=description]').val()
				,valid: false
			});
		}
		
		for(var i = 0; i < items.length; i++)
		{
			var item = items[i];
			if(item.date != null)
			{
				var dt = Date.parseLocale(item.date);
				
				item.valid = (dt != null);
				if(!item.valid)
					valid = false;
			}
			
			//item._row.find('input[id^=holiday]').css('border', (item.valid ? '1px solid #99b9e6' : ''));
		}
		
		args.IsValid = valid;
	}
	
	,getFromSystem: function()
	{
		PageMethods.GetHolidays(function(value)
		{
			var items = $.parseJSON(value);
			if(items.length > 0)
			{
				for(var i = 0; i < items.length; i++)
					Holidays.add(items[i]);
			}
		}, function(ex)
		{
			alert('Load Failed');
		});
	}
	
	,_layout: function()
	{
		var rows = $('#holidays').find('tr').size() - 3;
		$('tr[id=empty]', '#holidays').css('display', (rows > 0 ? 'none' : ''));
		if(rows > 0)
		{
			$('#holidays').find('tr:gt(1):not([id=empty])').each(function(index)
			{
				this.style.backgroundColor = (index == 0 || index % 2 == 0 ? '#ffffff' : '#f6f6f6');
			});
		}
	}
}

function add_holiday(value)
{
	//create_calendar(++holidays);
	var hd = $('#holidays');
	var row = hd.find('#template').clone(false).appendTo(hd).removeAttr('id').show();

	var count = Holidays.getCount();
	
	if(value == null)
		value = {date: null, description: null};
	
	row.find('td').each(function(index)
	{
		switch(index)
		{
			case 0:
				$(this).find('input:first')
					.attr('name', 'holiday_' + count)
					.attr('id', 'holiday_' + count);

				$(this).find('a:first').attr('id', 'hb_' + count);
				create_calendar(count);
				
				var date = (value.date != null ? value.date : null);
				if(date != null)
				{
					var dt = Date.parseLocale(date)
					if(dt != null)
						$find('calendar_' + count).set_selectedDate(dt);
				}
				break;
			
			case 1:
				$(this).find('input:first')
					.attr('name', 'description_' + count)
					.attr('id', 'description_' + count)
					.val((value.description != null ? value.description : ''));
				break;
		}
	});
	
	this._layout();
}

function remove_holiday(caller)
{
	if(confirm('διαγραφή αργίας ;'))
	{
		$(caller).closest('tr').remove();
		this._layout();
	}
}

/* Holidays */
function create_calendar(index)
{
	var button_id = 'hb_' + index;
	var target_id = 'holiday_' + index;
	var unique_id = 'calendar_' + index;
	
	$create(AjaxControlToolkit.CalendarBehavior,
	{
		'button' : $get(button_id)
		,'id': unique_id
		,'selectedDate' : null
	}
	,null
	,null
	,$get(target_id));
}

function _autocomplete(phones)
{
	$('[_autocomplete=yes]').autocomplete(
		phones
		,{
			matchContains: 1
			,minChars: 0
			,width: 250
			,delay: ($.browser.msie ? 100 : 40)
			,cacheLength: phones.length
			,formatItem: function(item){return item.p + ' - ' + item.d;}
			,formatResult: function(item){return item.p;}
		}
	);
}

function loadtips()
{
    $("ul.availableServices li a[title]").tooltip({tip: '#servicetip'});
}

function toggleVoicemailAudio(value)
{
    //0:Active, 1:Inactive
    var active = value;//$(caller + ':checked').val();

    //reset
    $('tr#voicemailaudio').removeClass();

    //if inactive hide
    if (active == 1)
    {
        $('tr#voicemailaudio').addClass('hide');
    }
}

function toggle_advanced_settings()
{
	var is_visible = $(advanced.shown).is(':visible');
	
	$(advanced.hidden + ',' + advanced.shown).toggle('slow');
	$(advanced.state).val((is_visible ? 0 : 1));
	$(advanced.button).text((!is_visible ? 'απόκρυψη' : 'εμφάνιση') + '...');
}

function confirm_purchase(caller)
{
	$.blockUI(
	{
		message: $('#_confirm')
		
		,css:
		{
			border: 0
			,width: 300
			,background: '#ffffff'
		}
	});
}

function c2c_purchase()
{
	$.unblockUI();
	$('input[id$=PurchaseClick2Call]').click();
}

/* File Upload Related Methods */

function _setclick2callFileSelection(fileName)
{
    var mac = (navigator.userAgent.toLowerCase().indexOf('macintosh') > -1);
    var parts = fileName.split('\\');
    if (mac && $.browser.safari)
        parts = fileName.split('/');

	$('input[id$=Click2CallFile]').val(parts[parts.length - 1]);
}

function save_click2call()
{
	var valid = Page_ClientValidate('Click2Call');
	if(Page_IsValid)
	{
		if(_faxBlockMethod != null)
			_faxBlockMethod();
		_submit_click2callFile();
	}
}

function validate_click2call_fileExtension(sender, args)
{
	var fileName = args.Value;
	args.IsValid = (fileName.toLowerCase().endsWithRange(['.jpg', '.gif', '.png', '.jpeg']));
}

function validate_zone_selection(sender, args)
{
	var checked=  $('input:checkbox:checked', 'table[id$=Zones]').size();
	args.IsValid = (checked > 0);
}

function _submit_click2callFile()
{
	// Always refer with this index to the upload iframe to resolve firefox error
	var index = 0;
	var frames = window.frames;
	for(var i = 0; i < frames.length; i++)
	{
		if(frames[i].name == 'c2c_upload')
		{
			index = i;
			break;
		}
	}
	
	window.frames[index].document.forms[0].submit();
}

function _click2callFileUploaded()
{
	var button = $('input[type=submit][id$=SaveClick2CallSettings]');
	button.click();
}

function c2c_chooseFile(caller)
{
	self.frames['c2c_upload'].document.getElementById('fileName').click();
}

function click2call_forbidden(source, args)
{
	var r = new RegExp(/^[12]([0-9]{2})$/);
	args.IsValid = !r.test(args.Value);
}

function initQuickLinksMenu()
{
	$('.fg-button').hover(
		function(){ $(this).removeClass('ui-state-default').addClass('ui-state-focus'); },
		function(){ $(this).removeClass('ui-state-focus').addClass('ui-state-default'); }
	);
	
	$('li.headlink').hover(
		function() { $('ul', this).css('display', 'block'); }
		,function() { $('ul', this).css('display', 'none');
	});
}

function initTableSorter()
{
	$('.allnumbersHolder2').dataTable(
	{
		'bPaginate': false
		,'bLengthChange': false
		,'bFilter': true
		,'bSort': true
		,'bInfo': false
		,'bAutoWidth': true
		,'bJQueryUI': true
		,'sPaginationType': 'full_numbers'
		,'oLanguage': {'sUrl': '/aidive/localization/jquery.datatables.el_GR.txt'}
		,'aoColumns':
		[
			{'sType': 'html'}
			,null
			,{'sType': 'html'}
			,null
			,{'sType': 'html'}
		]
	});

	setTimeout(function()
	{
		$('.allnumbersHolder2').show();
	}, 0);
}

function vReminderClose()
{
    setPersistentCookieNumbersReminder('.VerificationReminder', '1', 99999);
    $('div#VerificationReminder').hide();
}

function set_language(caller, ev)
{
	var li = (ev.target.tagName == 'LI' ? $(ev.target) : $(ev.target).closest('li'));
	var ul = li.parent();
	var lang = li.attr('lang');

	ul.children().removeClass('selected');
	li.addClass('selected');
	
	var divs = $('div[lang]').hide();
	divs.filter('[lang=' + lang + ']').show();
}

function handle_sms_click(caller)
{
	var checked = caller.checked;
	$(caller).next().attr('disabled', !checked)
}
