function $(id) {
	return document.getElementById(id);
}

function initForm() {
	$('pocztaLoginForm').onsubmit = function() {
		saveFormData();
		return checkForm( this );
	};

	$('formEmail').onkeyup = function() {
		showElement( 'formEmailTooltip' , ! validateEmail( $('formEmail').value ) );
		disEnableVipInterfaces();
	}
	$('formEmail').onfocus = function() {
		showElement( 'formEmailTooltip' , ! validateEmail( $('formEmail').value ) && $('formEmail').value != '' );
		disEnableVipInterfaces();
	}
	$('formEmail').onblur = function() {
		showElement( 'formEmailTooltip' , false );
		disEnableVipInterfaces();
		if ( $('formEmail').value.indexOf("@") == -1 && $('formEmail').value != '' ) {
			$('formEmail').value += '@interia.pl';
		}
	}

	$('options_button').onclick = function() {
		var res = showElement('options_list');
		var id = 'options_opener';
		if ( res ) {
			$(id).className = $(id).className.replace(/\boptions_close\b/g, "");
			$(id).className += " options_open";
		} else {
			$(id).className = $(id).className.replace(/\boptions_open\b/g, "");
			$(id).className += " options_close";
		}

		return false;
	}

	showElement ( 'options_opener' , true );
	var showOptions = readFormData();
	if( showOptions ) {
		$('options_button').onclick();
	}

	$('formEmail').focus();
}

function readFormData () {
	var ret = false;
	var formData = getCookie('formdata');
	formData = formData ? formData.split(';') : new Array;
	if ( formData[0] ) {
		$('formEmail').value = escape(formData[0]);
	}
	if ( formData[1] && formData[1] == 1 ) {
		$('permanent').checked = true;
		ret = true;
	}
	if ( formData[2] && formData[2] == 1 ) {
		$('formHTTP').checked = true;
		ret = true;
	}
	if ( formData[3] ) {
		$(formData[3]).checked = true;
		ret = true;
	}
	return ret;
}

function saveFormData () {
	var formData = new Array(
		$('formEmail').value,
		$('permanent').checked ? 1 : -1,
		$('formHTTP').checked ? 1 : -1,
		getRadioValue('webmailSelect')
	);
	formData = formData.join(';');

	if ( navigator.userAgent.indexOf("KHTML")!=-1 ) {
		//chrome, safari
		document.cookie = 'formdata=' + escape(formData) + '; max-age=15; domain=interia.pl; path=/';
	} else {
		//pozostale
		var date = new Date();
		date.setTime( date.getTime() +  15000 );
		document.cookie = 'formdata=' + escape(formData) + '; expires=' + date.toUTCString() + '; domain=interia.pl; path=/';
	}
}

function disEnableVipInterfaces() {
	if ( getEmailType( $('formEmail').value ) == 'vip' ) {
		useableElement( 'permanent' , 0 );
		useableElement( 'htmlMail' , 0 );
		useableElement( 'classicMail' , 0 );
	} else{
		useableElement( 'permanent' , 1 );
		useableElement( 'htmlMail' , 1 );
		useableElement( 'classicMail' , 1 );
	}
}

function checkForm( f ) {
	var ret = true;
	var classicMail = false;
	var protocol = ( f.formHTTP && f.formHTTP.checked ) || dev ? 'http://' : 'https://';

	if($('classicMail') && $('classicMail').checked) {
		document.cookie = 'poczta=classic; DOMAIN=interia.pl; PATH=/';
		classicMail = true;
	} else if($('htmlMail') && $('htmlMail').checked) {
		document.cookie = 'poczta=nhtml; DOMAIN=interia.pl; PATH=/';
	} else {
		document.cookie = 'poczta=; EXPIRES=Mon Mar 13 2000 12:00:01 GMT+0200; DOMAIN=interia.pl; PATH=/';
	}

	if ( getEmailType( f.formEmail.value ) == 'vip' ) {
		f.action = protocol + 'poczta.vip.interia.pl/profil/login/';
		if (!f.referer.value) {
			f.referer.value = 'https://poczta.vip.interia.pl/poczta/'+(classicMail?'folders/':'');
		}
	} else if (getEmailType( f.formEmail.value ) == 'standard' ) {
		f.action = protocol + 'ssl.' + dev + 'interia.pl/login.html';
	} else if ( getEmailType( f.formEmail.value ) == 'panoramaFirm' ) {
		f.action = protocol + 'poczta.vip.interia.pl/profil/login/?pfUser=on';
		if (!f.referer.value) {
			f.referer.value = 'https://poczta.vip.interia.pl/nowe_konto/';
		}
	} else {
		ret = false;
		$('errorMsg').innerHTML = 'Podana nazwa konta jest nieprawid\u0142owa';
	}

	if( ret && ! validateEmail(f.formEmail.value) ) {
		ret = false;
		$('errorMsg').innerHTML = 'Podana nazwa konta jest nieprawid\u0142owa';
	}
	if( ret && ! f.formPassword.value ) {
		ret = false;
		$('errorMsg').innerHTML = 'Uzupe\u0142nij has\u0142o';
	}

	if ( ! ret ) {
		$('formSubmit').focus();
	}

	return ret;
}

function getDomain( str ) {
	var domain = str.split('@');
	return domain[1] ? domain[1].toLowerCase() : '';
}

function getEmailType( str ) {
	var domain = getDomain( str );
	switch ( domain ) {
		case '1gb.pl':
		case '2gb.pl':
		case 'vip.interia.pl':
		case 'serwus.pl':
		case 'akcja.pl':
		case 'czateria.pl':
			return 'vip';

		case 'interia.pl':
		case 'interia.eu':
		case 'poczta.fm':
		case 'znajomi.pl':
			return 'standard';

		case 'pf.pl':
		case 'poczta.pf.pl':
		case 'biz.pf.pl':
		case 'randki.pf.pl':
		case 'super.pf.pl':
			return 'panoramaFirm';

		default:
			return 'other';
	}
}

function getRadioValue ( name ) {
	var theRadios = document.getElementsByName( name );
	for( var i = 0; i < theRadios.length; i++) {
		if ( theRadios[i].checked ) {
			return theRadios[i].value;
		}
	}
	return '';
}

function showElement ( id , newState ) {
	if ( ! $(id) ) return false;

	var pattern = /\bhide\b/i;
	var curState = ! pattern.test( $(id).className );

	if ( newState === undefined ) {
		newState = showElement( id , ! curState );
	} else if ( newState && ! curState ) {
		$(id).className = $(id).className.replace( pattern , "" );
	} else if ( ! newState && curState ) {
		$(id).className += " hide";
	}
	return newState;
}

function useableElement ( id , newState ) {
	if ( ! $(id) || ! $(id + 'Label') ) return false;

	var pattern = /\bdisabled\b/i;

	if ( newState ) {
		$(id).disabled = '';
		$(id + 'Label').className = $(id).className.replace( pattern , "" );
	} else {
		$(id).checked = false;
		$(id).disabled = 'disabled';
		$(id + 'Label').className += " disabled";
	}
	return newState;

}

function validateEmail( email ) {
	var r = /^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i;
	if( email == "" || !r.test( email  ) ) {
		return false;
	} else {
		return true;
	}
}

function getCookie(n){
	var r=null,a=n+"=",b=a.length,c=document.cookie,l=c.length,i=0,j,e;
	while(i<l){
		j=i+b;
		if(c.substring(i,j)==a){e=c.indexOf(";",j);if(e==-1)e=c.length;r=unescape(c.substring(j,e));break;}
		i=c.indexOf(" ",i)+1;
		if(i==0)break;
	}
	return r;
}