/* Dependency
 * @msk.base.js
 */

(function($){
	
	    $.fn.equalHeight = function() {
	        tallest = 0;
	        this.each(function(){
	            thisHeight = $(this).height();
	            if( thisHeight > tallest)
	                tallest = thisHeight;
	        });
	        this.each(function(){
	            $(this).height(tallest);
	        });
	    }
		
		$.fn.equalHeight_adj = function(){
			var boxb_h = this.height();
			var boxb_h1 = (tallest + 60);
			
			if( boxb_h1 > boxb_h)
			$(this).height(boxb_h1);		
		}
		
})(jQuery);


(function(){

$(document).ready(function(){
	init();	
});

var labels = '',

msk = _msk,

init = function(){

	labels = _epo_labels;
	
	formIdQuery = '#modalBoxF',
	
	$('a#call_tip_trgr').mouseover(function() {
		msk.showFreeCall();
		return false;
	});
	  
	$('img#close_tip').click(function() {
		msk.hideFreeCall();
		return false;
	});
	
	$('#chLang').change(function() {
		changeLang();
		return false;
	});
	
	msk.handleTooltip();
	msk.handleFieldsLookAndFeel();
	
	handleModalForm();
	
	$(".jQeq_height").equalHeight();
	$(".jQeq_height_adj").equalHeight_adj();
	
	$("#footer .col").equalHeight();
},

onModalHide = function(oModal){
	if(_redirectTimeout){
		clearTimeout(_redirectTimeout);
	}
	cleanupModal();	
	oModal.w.hide(); 
	oModal.o.remove();
  return true;
},

cleanupModal = function(){
	$('#sell_not_av').hide();
	$('#msgRedirectModal span').addClass('dn');
	$(formIdQuery + ' :input').val('').removeAttr('disabled');
	$(formIdQuery + ' [name=contactEmail]').val(labels.defaults['contactEmail']);
	msk.cleanupErrors();
},

handleModalForm = function(e){

	$(formIdQuery).submit(validateModal);
	
	$(formIdQuery +' [name=country]').change(function(){		
		var v = $(this).val(), phonePrefix = '';
		if(v){
			phonePrefix = '+' + CCODE2PREFIX[v];
		}
		
		$(formIdQuery +' [name=phonePrefix]').val(phonePrefix);
				
		var data = {'actionType': 'eligible'}, elems = $(formIdQuery + '  :input');
			
		elems.each(function(i, el){
			var name = el.name;
			var val = el.value;
			if(name == '[name=contactEmail]'){
				if( $.trim(val) == labels.defaults['contactEmail'] ){
					val = '';
				}
			}
			data[name] = $.trim(val);
		});
		
		var _onSuccess = function(d){
			if(!d.eligible){
				$('#sell_not_av').show();
				$(formIdQuery + ' :input').attr('disabled', 'disabled');
				
				var reditectLink = _epo_links.not_eligible+ "?package=" + data.package_name + '&ccode=' + $('#country').val();
		        $('#redirectQuick').attr('href', reditectLink);

				
				_redirectTimeout = setTimeout("document.location.href='"+ reditectLink +"'",10000);
		      return false;
			}
		}
		msk.ajaxRequest({data: data, success: _onSuccess});
	});
	
	$(formIdQuery + ' [name=contactEmail]').focus(function(){
		if( $.trim( $(this).val() ) == labels.defaults[this.name] )
		{
			$(this).val('');
		}
	})
	.blur(function(){
		if($(this).val() == '')
		{
			$(this).val(labels.defaults[this.name]);
		}
	});
	
	/** Modal **/ 
	$('#modalBoxC').jqm({onHide: onModalHide,toTop: true});
	$('.cmodal').click(function(){
		var package_name = this.id.replace(/^buyBtn/, '').toLowerCase();		
		if(package_name == 'free'){			
			$('#msgRedirectModal span:last').removeClass('dn');
		}else{
			$('#msgRedirectModal span:first').removeClass('dn');
		}
		$(formIdQuery + ' [name=package_name]').val( package_name );
		$('#modalBoxC').jqmShow();
		return false;
	});

	//modal button hover
    $(".jqmWindow button").mouseenter(function(){
      $(".jqmWindow button span").addClass('active');
    }).mouseleave(function(){
      $(".jqmWindow button span").removeClass('active');
    });
    
},

formRequirements = {
	'country'		: {'required' : 1 },
	'lastName'		: {'required' : 1, 'minlen': 2, 'maxlen': 30},
	'contactEmail'	: {'required' : 1, 'minlen': 5, 'maxlen': 110, 'email_format': 1},
	'phoneNumber'	: {'required' : 1, 'phone_number': 1 }
},

validateModal = function(event){
	
	if(_request) return false;
	
	msk.cleanupErrors();
				
	var formBind = msk.formValidate($(formIdQuery + ' :input'), formRequirements);
	
	var isValid			 = formBind.isValid;
	var formErrors 		 = formBind.formErrors;
	var formFieldStorage = formBind.formFieldStorage;
	var formData 		 = {};	
		
	for(field in formRequirements){
		if(formErrors[field]){
			var err = [], rowErrors = formErrors[field], i = 0;
			while(rowErrors[i]){
				switch(rowErrors[i]){
					case 'email_format':
						err.push(labels['email_format']);
						break;
					case 'phone_number':
						err.push(labels['invalid']);
						break;						
					case 'minlen':
					case 'maxlen':
					case 'not_null':
					case 'required':
						err.push(labels['required']);
						break;
					}
				i++;
			}			
				
			msk.assignErrors(formFieldStorage[field], err);
		}else{
			msk.setIconStatus(formFieldStorage[field].parent().children().filter('.form-icon'), msk.INPUT_STATUS_OK);
		}
		formData[field] = formFieldStorage[field].val();
	}
	
	if(isValid){
		_request = true;
		formData['actionType'] = 'valid';
		msk.ajaxRequest({data: formData});
	}
	
  return false;
};


})();