/*************/
function isset(v) {
	return (typeof(v) == 'undefined' ? false : true);
}

//onKeyPress="return isNumberKey(event)"
//http://www.webonweboff.com/tips/js/event_key_codes.aspx
function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : evt.keyCode;
	if (charCode > 31 && (charCode < 48 || charCode > 57) && (charCode != 35 && charCode != 36 && charCode != 37 && charCode != 39 && charCode != 46))
		return false;
    return true;
}

function checkEmail(o) {
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return (!filter.test(o.value) ? false : true);
}

function isdefined(variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function show(el){
	if(el) el.setStyle({display: ''});
}

function hide(el){
	if(el) el.setStyle({display: 'none'});
}

function checkDate(o) {
	var filter = /^([0-9]{2})\-([0-9]{2})\-([0-9]{4})$/;
	return (!filter.test(o) ? false : true);
}

function isChecked(id){
	if($(id)) return $(id).checked == true ? 1 : 0;
}

function toogle_check(id){
	if($(id)) $(id).checked = isChecked(id) ? false : true;
}

function toogle_radio(id){
	if($(id) && !$(id).checked) $(id).checked = true;
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g,"");
}

function hide_opacity(el){
	if(el) YAHOO.util.Dom.setStyle(el, "opacity", "0");
}

function in_array(string, array){
   for (i = 0; i < array.length; i++)
      if(array[i] == string) return true;
	return false;
}

/***************************************/
//prototype ajax request doesnt support evalResponse methode
function evalResponse(_source) {
	var source = _source;
	var scripts = new Array();
	while(source.indexOf("<script") > -1 || source.indexOf("</script") > -1) {
		var s = source.indexOf("<script");
		var s_e = source.indexOf(">", s);
		var e = source.indexOf("</script", s);
		var e_e = source.indexOf(">", e);
		scripts.push(source.substring(s_e+1, e));
		source = source.substring(0, s) + source.substring(e_e+1);
	}
	for(var i=0; i<scripts.length; i++) {
		try { eval(scripts[i]); }
		catch(ex) { }
	}
	return source;
}
/*************************************/
function initSignupButtons(lang){
	if($('signup'))
		Event.observe($('signup'), 'click', function(e) {
			e.preventDefault();
			showRegWindow(0, 0, 0, lang);
		});
}
/*************************************/
function showRegWindow(isPlanSelect, isEmailCount, isAffiliate, lang){
	Lightview.show({
		href: 'http://' + document.domain.toString() + '/'+lang+'/register/'+(isPlanSelect ? 'plan' : (isEmailCount ? 'count' : (isAffiliate ? 'affiliate' : ''))),
		rel: 'ajax',
		options: {
			autosize: true,
			topclose: true,
			ajax: {
				onComplete: function(resp){

				}
			}
		}
	});
}
/*************************************/
function checkRegister(lang){
	if($('name') && !$F('name')){
		alert('Please, write down your name');
		return false;
	}

	if($('company') && !$F('company')){
		alert('Please, write down your company');
		return false;
	}

	if($('email') && !$F('email')){
		alert('Please, provide an email address');
		return false;
	}

	if($('pass1') && !$F('pass1')){
		alert('Please, enter your password');
		return false;
	}

	if($('pass2') && !$F('pass2')){
		alert('Please, enter your password once again');
		return false;
	}

	if($('pass1') && $('pass2') && $F('pass1') != $F('pass2')) {
		alert('Second password value differs from the firtst one');
		return false;
	}

	if($('pass1').value.length < 6 || $('pass2').value.length < 6){
		alert('Password is too short');
		return false;
	}

	if(!checkEmail($('email'))) {
		alert('E-mail is not correct');
		return false;
	}

	if($('web') && !$F('web')){
		alert('Please, provide a Web page address of your company');
		return false;
	}

	if($('refer')){
		if(!$F('refer')){
			alert('Please, provide referer code. For example, it could your company name, or web page address, or some another word. After submitting a referal code You will get a affiliate link like http://www.primenewsletter.com/ref/my_company ');
			return false;
		}
		if($F('refer').length > 20){
			alert('Reference code length is limited to 20 symbols');
			return false;
		}
		if(!(/^[a-zA-Z0-9_\.\-]+$/.test($F('refer')))){
			alert('Referer code should contain only alfabetic symbols, underlines, dots, dashes or numbers');
			return false;
		}
	}

	var params = 'name='+$F('name')+'&company='+$F('company');
	params += '&email='+$F('email')+'&pass='+$F('pass1')+'&currency='+($('currency_select') ? (!$('currency_select').selectedIndex ? 'eur' : 'usd') : 'eur');

	if($('mode')){
		switch($F('mode')){
			case 'count': 		params += $('payonce_emailcount') ? '&emailcount='+$F('payonce_emailcount') : 0;
								break;
			case 'affiliate': 	params += $('web') ? '&web='+$F('web') : '';
								params += $('refer') ? '&refer='+$F('refer') : '';
								break;
			case 'plan': 		var i;
								for(i=1; i< 6; i++){
									if($('plan_'+i) && isChecked('plan_'+i)){
										params += '&plan='+i;
										break;
									}
								}
								break;
		}
	}

	$('continue').disabled = true;

	new Ajax.Request('/'+lang+'/register/', {
		asynchronous: true,
		method: 'post',
		parameters: params,
		requestHeaders: {Accept: 'application/json'},
		onSuccess: function(resp){
			var json = resp.responseText.evalJSON(true);
			if(json.error){
				alert(json.error_descr);
				$('continue').disabled = false;
			}
			else Lightview.show({href: '/'+lang+'/register/confirm',rel: 'ajax',options: {autosize: true,topclose: true,ajax: {onComplete: function(resp){}}}});
		}
	});
}
/*************************************/
function initContactUs(lang){
	if($('contactus'))
			Event.observe($('contactus'), 'click', function(e) {
				e.preventDefault();
				showContactUsForm(lang);
			});
}
/*************************************/
function showContactUsForm(lang){
	Lightview.show({
		href: 'http://' + document.domain.toString() + '/'+lang+'/gethelp/',
		rel: 'ajax',
		options: {autosize: true,topclose: true,ajax: {onComplete: function(resp){}}}
	});
}
/*************************************/
function getEmailPage(lang){
	Lightview.show({href: '/'+lang+'/gethelp/email',rel: 'ajax',options: {autosize: true,topclose: true,ajax: {onComplete: function(resp){}}}});
}
/**************/
function getAbuseReportPage(lang){
	Lightview.show({href: '/'+lang+'/gethelp/abuse',rel: 'ajax',options: {autosize: true,topclose: true,ajax: {onComplete: function(resp){}}}});
}

function checkHelpEmail(lang, str){
	show($('loading'));
	if(!$F('name')){
		alert(str.no_name);
		hide($('loading'));
		return false;
	}

	if(!$F('email')){
		alert(str.no_email);
		hide($('loading'));
		return false;
	}

	if(!checkEmail($('email'))){
		alert(str.bad_email);
		hide($('loading'));
		return false;
	}

	if(!$F('msg')){
		alert(str.no_msg);
		hide($('loading'));
		return false;
	}

	new Ajax.Request('/'+lang+'/gethelp/save/', {
		method: 'post',
		parameters: {
			name: $F('name'),
			email: $F('email'),
			msg: $F('msg'),
			type: $F('type')
		},
		onSuccess: function(transport) {
			Lightview.show({href: '/'+lang+'/gethelp/email/success',rel: 'ajax',options: {autosize: true,topclose: true,ajax: {onComplete: function(resp){}}}});
		}
	});
}
/*************************************/
function initFooter(lang){
	if($('reportabuse'))
			Event.observe($('reportabuse'), 'click', function(e) {
				e.preventDefault();
				showContactUsForm(lang);
			});

	if($('antispam'))
		Event.observe($('antispam'), 'click', function(e) {
			e.preventDefault();
			Lightview.show({href: '/'+lang+'/antispam_policy',rel: 'ajax',options: {autosize: true,topclose: true}});
		});

	$('privacy')
		Event.observe($('privacy'), 'click', function(e) {
			e.preventDefault();
			Lightview.show({href: '/'+lang+'/privacy_policy',rel: 'ajax',options: {autosize: true,topclose: true}});
		});

	$('terms')
		Event.observe($('terms'), 'click', function(e) {
			e.preventDefault();
			Lightview.show({href: '/'+lang+'/terms_of_usage',rel: 'ajax',options: {autosize: true,topclose: true}});
		});
}
/*************************************/
function initMainPage(lang){
	var i;
	for(i = 1; i<5; i++){
		if($('fpage_feature_'+i)){
			Event.observe($('fpage_feature_'+i), 'mouseover', function(event) {
				Event.findElement(event, 'div').className = 'blue_fpage_feature';
			});

			Event.observe($('fpage_feature_'+i), 'mouseout', function(event) {
				Event.findElement(event, 'div').className = 'grey_fpage_feature';
			});

			Event.observe($('fpage_feature_'+i), 'click', function(event) {
				document.location.href = '/'+lang+'/features_list';
			});

		}
	}

}
/*************************************/
var last_count = 0, spaced_str = count = '', tmp, hidden_counter_id = 'live_counter_2', visible_counter = 'live_counter_1';
function getCurrentSentCount(el){
	new Ajax.Request('/getsentcount/', {
		onSuccess: function(o) {
			spaced_str = count = o.responseText;

			if(last_count == count) return false;
			last_count = count;

			var rgx = /(\d+)(\d{3})/;
			while (rgx.test(spaced_str)) {
				spaced_str = spaced_str.replace(rgx, '$1' + ',' + '$2');
			}

			$(hidden_counter_id).innerHTML = spaced_str;

			$(visible_counter).fade({ duration: 0.4 });
			$(hidden_counter_id).appear({ duration: 0.4 });

			setTimeout(
				function(){
					tmp = hidden_counter_id;
					hidden_counter_id = visible_counter;
					visible_counter = tmp;
				},
				400
			);
			$(hidden_counter_id).hide();
	}});
}

function initCounter(){
	getCurrentSentCount();

	setInterval(
		function(){
			getCurrentSentCount();
		},
		3400
	);
}
/*************************************/
