var contentLoader = '<img src="'+base_url+'themes/new_daphone/assets/img/content-loader.gif" />';
var ajaxLoader = '<img src="'+base_url+'themes/new_daphone/assets/img/ajax-loader-small.gif" />';

jQuery(document).ready(function($){
	
	
   //set cookie on users client after register action
   //recognition
   $('a[register_action]').click(function(){
   	    var register_action = $(this).attr('register_action');
    	if(typeof register_action != 'undefined')
    	{
    		setCookie('register_action',register_action,1);
    	}
    });
    
   //disable form validations defaults
   jQuery.validator.messages.required = "*";
   jQuery.validator.messages.maxlength = "*";
   jQuery.validator.messages.minlength = "*";
   jQuery.validator.messages.equalTo = "*";
   jQuery.validator.messages.email = "*";
   jQuery.validator.messages.digits = "*";
   
   //form validations
    $("#forgot_form").validate(); // forgot pass form validation
    $('#contact_form').validate(); //contact form validation
    $('#save_settings').validate(); //account settings form validation
    $('#personal_form').validate(); //account settings form validation
    $("#login_form").validate();
   
	 var  aL = new Image();
	 aL.src = base_url+'themes/new_daphone/assets/img/ajax-loader-small.gif';
     //send link page scripts --- start
      $('#sip,#dialer').live('submit',function() {
			var dataform = $(this).serialize();
			$.ajax({
				type: "POST",
				url: "registration/send_link",
				data: dataform,
				//dataType: "json",
				success: function(data) {
					var d = JSON.parse(data);
					if (d.success){
						alert(d.message);
					}
					else{
						alert(d.message);
					}
				}
			}); 
			return false;
    });
    
    //open/close dasim voicemail tutorial
    $('#open_vm_tutorial').live('click',function(){
    	$('#vm_tutorial').dialog({
    		width:400,
    		height:250
    	});
    	return false;
    });
    
    /*
    //daphone video hover box start
    $('#daPhoneVideo').mouseenter(function(){
    	$(this).animate({
    		width:"560",
    		height:"315"
    	},'fast');
    });
    */  
    
   $('#daPhoneVideo').mouseleave(function(){
    	$(this).animate({
    		width:"260",
    		height:"148"
    	},'fast');
    });
    //daphone video hover box end
    
    //load countries rates if container found 
    if($('#az-countries-rates').length>0)
    {
    	var data = {first_letter:'A'};
    	display_country_rate_by_term(data);
    	$('.az-rates a').click(function(){
    		var letter = $(this).text();
    		data = {first_letter:letter};
    		display_country_rate_by_term(data);
    		return false;
    	});
    	

	  $("#filter").keyup(function() {
	  	var search_term = this.value;
	  	var data = {search_term:search_term};
	  	display_country_rate_by_term(data);
	    //$.uiTableFilter($('#daPhonePrices'), this.value );
	  })  
    	
    }
    
    //open terms and conditions pop up
	$('[open_window=true]').live('click',function(){
	   var href = $(this).attr('href');
	   window.open (href, "terms","location=0,status=0,scrollbars=0, width=680,height=340");
		return false;
	});
    
	$('#phone-for-sip').live('change',function(){
	  if($(this).val() != ""){
	  	$('#sip_platform').show();
	  }
	});
	
	$('#phone-for-dialer').live('change',function(){
	  if($(this).val() != ""){
	  	$('#dialer_platform').show();
	  }
	});
    //send link page scripts --- end
     
	//load download dialer from daphone sidebar account page 
	$('#loadDialersFromSidebar').live('click',function(){
		deactive_account_tabs();
		var accountSwitcher = $('.account-switcher');
		var classtoadd = accountSwitcher.find('ul li:eq(1)').attr('classtoadd');
		accountSwitcher.find('ul').removeAttr('class').addClass(classtoadd);
		//hide all account submenus
		$('.account-menu').hide();
		$('#daphoneAccountMenu').show();
		//show active state of the download dialers tab
		$('#ajax-tabs').find('ul li:eq(1)').addClass('active');
		$('#ajax-tabs').find('ul li a:eq(1)').addClass('active');
		//load the content
		load_account_content('dialers');
	});
	
	
	//sets the default values for the dasim calc
	set_def_dasim_calc_val();
	//calc the rate value for dasim main page calculator
	$('.call-countries').change(function(){
		var rate = 0.00;
		var leg_a = $('.call-countries:first').val().split('|');
		var leg_b = $('.call-countries:eq(1)').val().split('|');
		
		
		var leg_a_call = leg_a[0];
		var leg_b_call = leg_b[0];
	
		if(leg_a_call && leg_b_call)
		{
			rate = (parseFloat(leg_a_call) + parseFloat(leg_b_call))/100;
			if(isNaN(rate))
			{
				$('#calc-result').html('0.00');
				msg = $('#calcErrorMessage').text();
				alert(msg);
			}
			else
			{
				$('#calc-result').html(roundNumber(rate,2)).hide().fadeIn();
				
			}	
		}
		else {
			$('#calc-result').html('0.00').hide().fadeIn();
		}
	});
	
	//calc the rate value for dasim choose page calculator
	$('#dasim_from_locations,#dasim_to_locations').change(function(){
		var defrate = 0.00;
		var leg_a = $('#dasim_from_locations').find('.call-countries').val().split('|');
		var leg_b = $('#dasim_to_locations').find('.call-countries').val().split('|');
		var leg_a_call = leg_a[0];
		var leg_a_sms = leg_a[1];
		var leg_b_call = leg_b[0];
		var leg_b_sms = leg_b[1];
		
		var msg = "";
		//alert("Leg a:" + from + "Leg b:" + to);
		if(leg_a_call && leg_b_call)
		{
			call_rate = (parseFloat(leg_a_call) + parseFloat(leg_b_call))/100;
			sms_rate =  (parseFloat(leg_a_sms) + parseFloat(leg_b_sms))/100;
			
			if(isNaN(call_rate) ||isNaN(sms_rate) )
			{
				$('#calc-result,#dasim_sms_price').html(defrate);
				msg = $('#calcErrorMessage').text();
				alert(msg);
			}
			else
			{
				$('#dasim_call_price').html(roundNumber(call_rate,2)).hide().fadeIn();
				$('#dasim_sms_price').html(roundNumber(sms_rate,2)).hide().fadeIn();
				
			}	
		}
		else {
			$('#dasim_call_price,#dasim_sms_price').html('0.00').hide().fadeIn();
		}
	});
	
	//calc the rate value for dasim incoming calls
	    $('#dasim_location_price').html($('#check_dasim_locations').find('.call-countries').val());
		$('#check_dasim_locations').change(function(){
		var access_per_minute = $('#check_dasim_locations').find('.call-countries').val();
		$('#dasim_location_price').html(roundNumber(access_per_minute,2));
	});
	
	//disable the account tooltip
	
	$('#daphone-account-menu-holder li a,.general-account-tab li').bind('click',function(){
		$('.tooltip_big_arrow').remove();
	});
	
	
	//load account data pages via ajax - #header-main-menu
	var accountTabsObj = $('#ajax-tabs,#ajax-tabs-2');
	accountTabsObj.find('ul li').removeClass('active');
	accountTabsObj.find('ul li a').removeClass('active');
	var listItem = accountTabsObj.find('ul li a:first');
	
	//load the first account menu tab on load
	var url = listItem.attr('href');
	listItem.addClass('active');
	listItem.parent().addClass('active');
	
	//load  tab on click event
	accountTabsObj.find('ul li a').click('click',function(){
		var url = $(this).attr('href');
		accountTabsObj.find('ul li').removeClass('active');
		accountTabsObj.find('ul li a').removeClass('active');
		$(this).addClass('active');
		$(this).parent().addClass('active');
		load_account_content(url);
		return false;
	});
	
	//switch between accounts menu
	$('.account-switcher').find('ul li a').bind('click',function(){
		
		//reset ui elements like tooltips etc...
		 reset_ui_to_init_state();
		
		var menuType = $(this).attr('id');
		if(menuType == "account")
		{
			document.location = $(this).attr('href');
		}
		else
		{
			//change the ul container background for the relevant tab
			var currentClassForTabContainer = $(this).parent().attr('classToAdd');
			$('.account-switcher ul').removeAttr('class').addClass(currentClassForTabContainer);
	
			//$(this).parent().addClass('active');
			var menuToOpen = "#"+menuType + "Menu";
			$('.account-menu').hide();
			$(menuToOpen).show();
			
			var url = $(menuToOpen).find('.nav').find('li a:eq(0)').attr('href');
			if(typeof url != 'undefined')
			{
				$(menuToOpen).find('.nav li,.nav li a').removeClass('active');
				$(menuToOpen).find('.nav').find('li a:eq(0)').addClass('active').parent().addClass('active');
				load_account_content(url);
			}
		}
		return false;
	});
	
	//styles
	//$('.lower-top-menu').find('table').find('.nav li:last').css({"float":"right"});
	$('#daphone-rates').bind('click',function(){
		var url = $(this).attr('href');
		window.open (base_url + url, "rates","location=0,status=0,scrollbars=1, width=680,height=450");
		return false;
	});
	
	$('#request_dasim').bind('click',function(){
		if($('#newsletter').valid())
		{
			var email = (typeof $('#dasim_email_input').val() != 'undefined') ? $('#dasim_email_input').val() : '';
			var phone = (typeof $('#dasim_phone_input').val() != 'undefined') ? $('#dasim_phone_input').val() : '';
			var data = {email:email,phone:phone};
			//ajax here
			$.ajax({
				type:"POST",
				url: base_url + "email/request_dasim_offer",
				data:data,
				beforeSend: function(){
					$('#request_msg').addClass('success_message').text('Sending...');
				},
				success:function(data){
					if(data=="error")
					{
						$('#request_msg').removeClass('success_message').addClass('error_message').text('Sending...');
					}
					else
					{
						$('#request_msg').addClass('success_message').text(data);
						setTimeout(function(){
							$('#request_msg').removeClass().empty();
							$('#dasim_email_input').val('');
						},2000);
					}
				}
			});
		}
	});
	$('#top-menu ul li:last').hide();
	
	//Register form Dasim Acivation fields
	$('#dasimActivationLink').bind('click',function(){
		if($('#iccidFieldHolder,#pinFieldHolder').find('input').attr('active') == "true")
		{
			$('#iccidFieldHolder,#pinFieldHolder').find('input').removeClass('required').removeAttr('active');
			$('#iccidFieldHolder,#pinFieldHolder').hide();
			
		}
		else
		{
			$('#iccidFieldHolder,#pinFieldHolder').show();
			$('#iccidFieldHolder,#pinFieldHolder').find('input').addClass('required').attr({active:true});
		}
		
		return false;
	});
	
	$('#add_phone_form').submit(function() {
	  activate_number();
	  return false;
	});
  
  //add fhone validation 
  $("#add_phone_form").validate({
  rules: {
	    phone: {
        required: true, 
        number: true, 
        minlength: 8,
        maxlength: 11,
  	},
  }
  });
 
 //registration form tooltips 
 // select all desired input fields and attach tooltips to them
$("#register_form :input").tooltip({

		// place tooltip on the right edge
		position: "center right",
		// a little tweaking of the position
		offset: [-2, 10],
		// use the built-in fadeIn/fadeOut effect
		effect: "fade",
		// custom opacity setting
		opacity: 0.7
});
 

});

function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
   return newnumber;
}

function load_account_content(url)
{
	if(is_logged_in() == 'loggedout')
	{
		document.location = 'login';
	}
	$.ajax({
			type : "POST",
			url : url,
			data : {noheader:true},
			beforeSend : function(){
				$('.account-wrap').html("<div class='content-loader-holder'>"+contentLoader+"</center>");
			},
			success : function(data){
				$('.account-wrap').html(data);
			},
			error:function(){
				//alert('error');
			}
	});
}

function deactive_account_tabs (){
		var accountTabsObj = $('#ajax-tabs,#ajax-tabs-2');
		accountTabsObj.find('ul li').removeClass('active');
		accountTabsObj.find('ul li a').removeClass('active');
}


function is_logged_in(){
	
	var is_logged_in = $.ajax({
		type:"POST",
		url : base_url + 'registration/is_user_logged_in',
		async:false
	}).responseText;

	return is_logged_in;
}

function activate_number()
{
	var country_id = $("#country_id").val();
	var phone  = $("#phone").val();

	if($('#add_phone_form').valid())
	{

		// validate number 
        $.ajax({
        type: "POST",
        url: base_url + 'registration/add_phone',  
        data:{phone:phone,country_id:country_id},
        success: function(data)
        {
            var obj_data = eval("(" + data + ")"); //ok!          
           if(obj_data.success == 1)
           {
                $("#add_phone_status").text(obj_data.message);
                hideAllAccountMenus();
                $('#daphoneAccountMenu').show();
                $('.account-switcher ul li').removeClass('active');
                $('.account-switcher ul li:eq(1)').addClass('active');
                $('#daphone-account-menu-holder li,#daphone-account-menu-holder li a').removeClass('active');
                $('#daphone-account-menu-holder li:first,#daphone-account-menu-holder li a:first').addClass('active');
                var myPhonesUrl = $('#daphone-account-menu-holder li a').attr('href');
                load_account_content(myPhonesUrl);
           }
           else
          {
              $("#add_phone_status").text(obj_data.message);     
          }    
         }
         
        });
	}
	}
	
	function hideAllAccountMenus(){
		$('#generalAccountMenu,#daphoneAccountMenu,#dasimAccountMenu').hide();
		//$('#dasimAccountMenu').hide();
	}
	
	
	/**
	 * enable disable click event on submit form
	 */
	function disableSubmitOnTransaction(elementID)
	{
		$(elementID).attr({disabled :'true'});
	}
	
	
	function enableSubmitOnTransaction(elementID)
	{
		$(elementID).removeAttr('disabled');
	}
	
	function reset_ui_to_init_state()
	{
		$('.tooltip_big_arrow').hide();
	}
	
	function popup(url) 
	{
		 var width  = 700;
		 var height = 300;
		 var left   = (screen.width  - width)/2;
		 var top    = (screen.height - height)/2;
		 var params = 'width='+width+', height='+height;
		 params += ', top='+top+', left='+left;
		 params += ', directories=no';
		 params += ', location=no';
		 params += ', menubar=no';
		 params += ', resizable=no';
		 params += ', scrollbars=yes';
		 params += ', status=no';
		 params += ', toolbar=no';
		 newwin=window.open(url,'windowname5', paramsnum);
		 if (window.focus) {newwin.focus()}
		 return false;
	}
	
	function display_country_rate_by_term(data)
	{
		$.ajax({
    		type:"POST",
    		url:'access-countries/get_country_rate',
    		data:data,
    		beforeSend:function(){
    			$('#az-countries-rates').html('Loading ...');
    		},
    		success:function(data){
    			$('#az-countries-rates').html(data);
    			$('#daPhonePrices').find('tr').each(function(i){
    				
    					$(this).find('td:eq(1)').prepend('&euro; ');
    				
    			});
    		}
    	});
	}
	
	
	//calculates the first rates for the dasim calc
	function set_def_dasim_calc_val()
	{
		
		var defrate = 0.00;
	    if($('#dasim_from_locations').length!=0 && $('#dasim_to_locations').length!=0)
	    {
	    	var leg_a = $('#dasim_from_locations').find('.call-countries option:selected').val().split('|');
			var leg_b = $('#dasim_to_locations').find('.call-countries option:selected').val().split('|');
			var leg_a_call = leg_a[0];
			var leg_a_sms = leg_a[1];
			var leg_b_call = leg_b[0];
			var leg_b_sms = leg_b[1];
			
			var msg = "";
			//alert("Leg a:" + from + "Leg b:" + to);
			if(leg_a_call && leg_b_call)
			{
				call_rate = (parseFloat(leg_a_call) + parseFloat(leg_b_call))/100;
				sms_rate =  (parseFloat(leg_a_sms) + parseFloat(leg_b_sms))/100;
				
				if(isNaN(call_rate) ||isNaN(sms_rate) )
				{
					$('#calc-result,#dasim_sms_price').html(defrate);
					msg = $('#calcErrorMessage').text();
					alert(msg);
				}
				else
				{
					$('#dasim_call_price').html(roundNumber(call_rate,2));
					$('#dasim_sms_price').html(roundNumber(sms_rate,2));
					
				}	
			}
			else {
				$('#dasim_call_price,#dasim_sms_price').html('0.00');
			}
	    }
	    if($('#call_country_from').length!=0 && $('#call_country_to').length!=0) {
	 
		    var leg_a = $('#call_country_from option:selected').val().split('|');
			var leg_b = $('#call_country_to option:selected').val().split('|');
			var leg_a_call = leg_a[0];
			var leg_b_call = leg_b[0];
		
			if(leg_a_call && leg_b_call)
			{
				rate = (parseFloat(leg_a_call) + parseFloat(leg_b_call))/100;
				if(isNaN(rate))
				{
					$('#calc-result').html(defrate);
					msg = $('#calcErrorMessage').text();
					alert(msg);
				}
				else
				{
					$('#calc-result').html(roundNumber(rate,2));
					
				}	
			}
			else {
				$('#calc-result').html(defrate);
			}
	    }
	
	}
	
    function setCookie(c_name,value,exdays)
	{
		var exdate=new Date();
		exdate.setDate(exdate.getDate() + exdays);
		var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
		document.cookie=c_name + "=" + c_value;
	}


