/* 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;
		});

		$('a#call_tip_trgr').mouseout(function(){
			msk.hideFreeCall();
			return false;
		});

		$('#call_tip_active').mouseover(function(){
			$('a#call_tip_trgr').mouseover();
		});

		$('#call_tip_active').mouseout(function(){
			$('a#call_tip_trgr').mouseout();
		});

		$('#call_tip_active').click(function(){
			var link = $('a#call_tip_trgr').attr('href');
			if(link.length) {
				document.location = link;
			}
		});

		$('#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 },
	'package_name'	: {'required' : 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;
	};


})();
