// valtozok

var mailboxElemek;
var mailboxEfrom    = 10;
var mailboxEsub     = 20;
var setting  = true;
var bRequest = true; // egyszerre csak egy ajax hivas lehet
var iProvNr  = 5;    // email szolgaltatok szama
var firstGet = true;
var mailboxTime = 20;	
var aResp    = new Array('Gmail','Citromail','Freemail','Mailbox','Vipmail');	
var errorMessage = false;

var aProv = new Array('Gmail','Citromail','Freemail','Mailbox','Vipmail');
var tooltipP = true;
var eID;
var tabP;

var firstQuery = true;

//eleresi ut beallitasa
var sPath = 'var/js/email.php';

// fuggvenyek

function fnMouseIn(event, click)
{		
	if (bRequest)
	{
		if (click!=undefined)
		{
			eID = Event.element(event);
			setTimeout('fnmailboxTimedHeader()',1);	
			tabP = true;
		}	
		else
		{
			eID = Event.element(event);
			setTimeout('fnmailboxTimedHeader()',1500);	
			tabP = true;
		}	
	}		
}


function fnMouseOut()
{		
	if (bRequest)
	{
		tabP = false;		
	}		
}


function fnmailboxTimedHeader(event)
{
	if ( tabP )	
	{
		setHeaderIcon( eID );
		fnPrintEmails(( eID ).title);
		tabP = false;
	}
}

function fnHeaderIconSettings()
{
	for ( var i in settings)
	{
		var sProvName = i;
		var sOpName = sProvName.substr(sProvName.length-7, sProvName.length);
		
		if ( (sOpName=='visible') )
		{
			/* search ikon */
			
			mailboxElemek = $$('.mh');
			for (k=0; k<iProvNr; k++)
			{
				if ( $(mailboxElemek[k]).title==sProvName.substr(0,sProvName.length-7) )
				{
					var id = mailboxElemek[k];						
				}
			}
			
			if ( settings[i]==0 )
			{
				$(id).hide();
			}
			else
			{
				$(id).show();					
			}
		}			
	}
}


function createItem(itemName, node, itemID, content)
{
	nodeid = (node == '') ? this.getTag('body').item(0) : $(node);
	newItem = document.createElement(itemName);
	if (content)
	{
		newItem.innerHTML = content;
	}
	newItem.setAttribute('id', itemID);
	nodeid.appendChild(newItem);
}


function getTag(id) 
{
    return document.getElementsByTagName(id);		
}


function setHeaderIcon(eID)
{
	//szolgaltato tabok beallitasa egermozgas soran
	
	$('email_box_loginform_user').value='';
	$('email_box_loginform_passwd').value='';
	$('usAl').setStyle({display:"none"});
	$('pwAl').setStyle({display:"none"});
	
	// ikonok a keret es a hatter beallitasa 
	
	for ( i=0; i<mailboxElemek.length; i++ )
	{
		var t = mailboxElemek[i];
		if ( $(eID).id!=$(t).id )
		{				
			$(t).setStyle({ borderLeft: "1px solid #ffffff",
							  borderTop: "1px solid #ffffff",
							  borderRight: "1px solid #ffffff",
							  backgroundColor: "#ffffff"});				
		}
		else
		{
			$(eID).setStyle({ borderLeft: "1px solid #443b6b",
							  borderTop: "1px solid #443b6b",
							  borderRight: "1px solid #443b6b",
							  backgroundColor: "transparent"});
			
			
						
			// set cookie 
			
			setCookie('email_tab',$(eID).title);
			$('emlProv').update($(eID).title);
			sProvider = $(eID).title;
			
			// a szolgaltato alapjan a regisztracios link beallitasa 
			setReg($(eID).title);
			
			/**/
			
			sUser = getCookies('visible'+$('emlProv').innerHTML);
	
			if (sUser!='')
			{
				$('email_box_loginform_form').hide();		
				$('logon').update(sUser);	
				$('logonheader').setStyle({display:"inline"});	
				$('mailLogOutButton').show();
				$('logon').show();												
			}
			else
			{
				$('logonheader').hide();
				$('logon').hide();	
				$('mailLogOutButton').setStyle({display:"none"});
				$('email_box_loginform_form').show();	
				
				// levelek tomb uritese 
				
				var aTemp = new Array(); 
				aResp[ $('emlProv').innerHTML ] = aTemp;					
			}					
		}
	}
}



function findPos(obj) 
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


function fnLogOut()
{		
	sID = $('emlProv').innerHTML;
	setCookie('visible'+sID,'',-1);
	
	var aTemp = new Array(); 
	aResp[sID] = aTemp;	

	Effect.BlindDown('email_box_loginform_form');
	Effect.BlindUp('emailMailBox');
	Effect.BlindUp('logonheader');
	Effect.BlindUp('logon');
	
	Effect.BlindUp('mailLogOutButton');	
	
	// adatbazisbol adatok torlese
	
	array = new Array(sID, unID);					
	fnJsonConnect(array,'logOut');
}

function getNewMail()
{
	// get cookies 

	$('email_box_loginform_form').hide();					
	$('logon').update(sUser);
	
	var sProv    = $('emlProv').innerHTML;
	var iMailNr  = $(sProv+'refresh').value;
	var sNewmail = ($(sProv+'newmail')==undefined) ? '' : $(sProv+'newmail').value; 
	
	array = new Array(sProv, unID, iMailNr, sNewmail);	
	errorMessage = false;				
	fnJsonConnect(array,'getMailP');
}

function checkValue()
{
	var sAzonosito = document.email_box_loginform_form.Email.value;
   		var sJelszo    = document.email_box_loginform_form.Passwd.value;
	
    if (sAzonosito.length==0)
	{			
		$('usAl').setStyle({display:"block"});			
	}
	else
	{			
		$('usAl').setStyle({display:"none"});
	}
	
	if (sJelszo.length==0)
	{			
		$('pwAl').setStyle({display:"block"});
	}
	else
	{			
		$('pwAl').setStyle({display:"none"});
	}
	
	if ( (sAzonosito.length!=0) && (sJelszo.length!=0) )
	{
		// ha nem regisztralt felhasznalo, es az elso lekerdezese:
		
		if ( (firstQuery) && (!mailreguser) )
		{
			// beallitasok ellenorzese
			
			fnJsonConnect(unID,'init');
			bRequest=true;			
			getHeader(sAzonosito,sJelszo);			
			
			// ismetles beallitasa 
			new PeriodicalExecuter(getMails, refresh);
		}						
		else
		{			
			getHeader(sAzonosito,sJelszo);	
		}
							
	}
	else
	{
		return false;
	}
}

function getHeader(user,pass)
{		
	var aSend = new Array(); 
	var sProv    = $('emlProv').innerHTML;
	var iMailNr  = $(sProv+'refresh').value;
	var sNewmail = ($(sProv+'newmail')==undefined) ? '' : $(sProv+'newmail').value; 
			
	aSend[0] = sProvider;		
				
	switch(sProvider)
	{
		case 'Vipmail' :
			if ( (user!='')&&(user.match("@")==null) )
			{
				user += "@vipmail.hu"
			}
			break;
			
		case 'Mailbox' :
			if ( (user!='')&&(user.match("@")==null) )
			{
				//user += "@mailbox.hu"
			}
			break;
		
		case 'Gmail' :
			if ( (user!='')&&(user.match("@")!=null) )
			{						
				user = user.substr(0, user.search("@") );
			}
			break;
			
		case 'Freemail' :
			if ( (user!='')&&(user.match("@")!=null) )
			{						
				user = user.substr(0, user.search("@") );
			}
			break;
			
		case 'Citromail' :
			if ( (user!='')&&(user.match("@")!=null) )
			{						
				user = user.substr(0, user.search("@") );
			}
			break;
	}
	
	aSend[1] = (user==undefined)? '' : user;	
	aSend[2] = (pass==undefined)? '' : pass;
	aSend[3] = unID;
   	aSend[4] = iMailNr;
	aSend[5] = sNewmail;
		
		
    fnJsonConnect(aSend, 'getHeader', 'toltes');
}


// JSON fuggvenyek

function fnJsonConnect(aData,SendType)
{		
	if (bRequest)
	{			
		if ( !errorMessage )
		{				
			fnCreateMessageBox('getHeader',"");
		}		
		
		bRequest = false;
		
        oSendBody = new Object();
        oSendBody.sType = SendType;
        oSendBody.sBody = aData;
        sBodyJson = Object.toJSON(oSendBody);	        
		new Ajax.Request( sPath ,
        {				
            method:'post',
            postBody: 'param=' + sBodyJson,
            onComplete: reqFunction
        });
	}
}

function setReg(sTitle)
{
	switch(sTitle)
	{
		case 'Gmail' :
			$('email_reg').href='http://mail.google.com/mail/signup';
			break;
		
		case 'Yahoo' :
			$('email_reg').href='http://www.yahoo.com/r/m7';
			break;
			
		case 'Citromail' :
			$('email_reg').href='http://citromail.hu';
			break;
			
		case 'Freemail' :
			$('email_reg').href='http://freemail.hu/levelezes/nologgedin.fm?page=reg';
			break;
			
		case 'Mailbox' :
			$('email_reg').href='http://vizsla.mailbox.hu/index.pl';
			break;
			
		case 'Vipmail' :
			$('email_reg').href='http://web06.vipmail.hu/feltetel2.vip?vip=8ac2d83fbc7b2f0a86fc6247ec73fc631';
			break;
	}
}

function saveSettings()
{
			
	// csar regisztralt tagoknak 
	if (mailreguser)
	{
		var arr = new Array();		
		var p = 0;
		
		arr[p++] = unID;
								
		for ( var i in settings)
		{
			var sProvName = i;
			var sOpName = sProvName.substr(sProvName.length-7, sProvName.length);
			
							
			if ( (sOpName=='visible') )
			{
				ertek = ($(sProvName).checked) ? 1 : 0;	
			}
			else
			{
				// ha a levelek szama nagyobb, mint 15
				if( $(sProvName).value > 15 )
				{
					fnCreateMessageBox('error','Levelek maxim&#225;lis sz&#225;ma: 15');
					return 0;
				}
				ertek = $(sProvName).value
			}
			
			if ( settings[i]!=ertek )
			{
				settings[i] = ertek;				
			}
			arr[p++] = ertek;			
		}
		
		// refresh beallitasa 
		
		var rf = parseInt($('mailRefresh').value)*60;
		
		if( rf < 300 )
		{
			fnCreateMessageBox('error','Friss&#237;t&#233;s id&#337;tartama&#65533;t&#65533;s minimum &#65533;rt&#65533;ke: 5 perc');
			return 0;
		}
					
		arr[p] = rf;
					
		// beallitasok mentese
		
		fnJsonConnect(arr,'changeSettings');			
		
		// ikonok beallitasa 
		
		fnHeaderIconSettings();
					
		// doboz eltuntetese 
		fnSetting();
	}
	else
	{
		fnCreateMessageBox('error','Csak regisztr&#225;lt felhaszn&#225;l&#243;knak!');
		
	}
	
}

function fnCreateMessageBox(type,message)
{
	// email doboz poziciojanak megszerzese 
	
	var aPos = findPos( $('emailbox_loginform') );
	var pl = aPos[0] + 27;
	var pt = aPos[1] + 40;
	$('emailMessageBox').setStyle({left: pl+'px', top: pt+'px'});
	
	
	switch(type)
	{
		case 'error' : 
			errorMessage=true;
			$('emailMessageBox').update(message);
			$('emailMessageBox').show();
			setTimeout("$('emailMessageBox').hide()", 3000);
			setTimeout("errorMessage=false", 3000);
			break;
			
		case 'getMailP' : 
		case 'getHeader' :
			stringf = '<div id="ajLo"></div>';
			stringf += 'Levelek let&#246;lt&#233;se';
			$('emailMessageBox').update(stringf);
			$('emailMessageBox').show();
			break;				
	}
}


function helpHide()
{
	$('emailMessageBox').hide();		
}


// emailek megjelenitese 

function fnPrintEmails(prov)
{
	if (prov==$('emlProv').innerHTML)
	{
		string = '<br/><div style="display: none" id="emailMailBox">';           
		if (aResp[prov]!=undefined)
		{
			for (j=0;j<aResp[prov].length-1;j++)
			{						
				var fromString = cropString(aResp[prov][j][0],mailboxEfrom, 0);
				var subjString = cropString(aResp[prov][j][1],mailboxEsub,1);
				var boxId = 'emailBoxId' + j;		
				
				/*
				if ( aResp[prov][j][2] )
				{
					//a level olvasatlan
					boxclass = 'emailSubBox';												
				}
				else
				{
					boxclass = 'emailSubBoxRead';
				}					
				*/
				boxclass = 'emailSubBox';
				
				string += '<div><a id="' + boxId + '" class="' + boxclass + '" target="_blank" onclick="href = loginProv();" onmouseout="TooltipShutDown();" onmouseover="Tooltip(\'' 
				+ boxId + '\', \'' + aResp[prov][j][0] + '\',\'' + aResp[prov][j][1] + '\', event)" ><div id="linkek_mailboxEfrom" class="from">'+ 
						  fromString +'</div> - ';								
				/*string += '<div><a id="' + boxId + '" class="emailSubBox" target="_blank" onclick="href = loginProv();" onmouseout="TooltipShutDown();" onmouseover="Tooltip(\'' 
				+ boxId + '\', \'' + aResp[prov][j][0] + '\',\'' + aResp[prov][j][1] + '\', \'' + aResp[prov][j][2] + '\', event)" ><div id="linkek_mailboxEfrom" class="from">'+ 
						  fromString +'</div> - ';*/					 
				/* string += '<div class="emailSubBox" title="Felad�: ' + aResp[prov][j][0] + ' T�rgy: ' + aResp[prov][j][1] + '"><div id="linkek_mailboxEfrom" class="from">'+ 
						  fromString +'</div>'; */		 
				string += '<div id="linkek_mailboxEsub" class="subject" >' + subjString +'</div></a></div>';
							
			}
		}
		
		string += '</div>';
		$('emHead').update(string);
		Effect.BlindDown('emailMailBox');
	}
}

function loginProv()
{
	var prov = $('emlProv').innerHTML;		
	return 'd/a/var/login' + prov +'.php?i='+unID+'&p='+prov;
}

function Tooltip(elem, from, subj, event)
{

	var mouseX = Event.pointerX(event) + 10;
	var mouseY = Event.pointerY(event);
				
	string = '<span class="emailBoxFrom">Felad&#243;:</span><span class="emailBoxSubj">' + from + '</span><br/>';
	string += '<span class="emailBoxFrom">A lev&#233;l t&#225;rgya: </span><span class="emailBoxSubj">' + subj + '</span><br/>';
	//string += '<span class="emailBoxFrom">&#220;zenet: </span><span class="emailBoxSubj">' + sbody + '</span>';
	$('emailBoxTooltip').update(string);		
	$('emailBoxTooltip').show();
	$('emailBoxTooltip').setStyle({ left: mouseX+'px', top: mouseY+'px' });		

}


function TooltipShutDown()
{	
	$('emailBoxTooltip').hide();
}


function reqFunction(request)
{        
	// A visszatero JSON objektumot elemzi
	
	// ha nem hibauzenet es nem az elso lekerese az nem regisztralt usernek
	if ( (!errorMessage) && (!firstQuery) )
	{
		$('emailMessageBox').hide();
	}
	
	bRequest = true;
    var aData = request.responseText.evalJSON();
    	
    switch(aData.type)
    {
        case 'setHeader' :
									
			if ( aData.data.length>1 )
			{						
				if (aData.data[0]=='error')
				{
					// ha hibas:
					if ( aData.data[1].match("frequently")!=null )
					{
						fnCreateMessageBox('error','T&#250;l gyakori bejelentkez&#233;s, r&#233;szletek a s&#250;g&#243;ban!');
					}					
					else if ( aData.data[1].match('failed')!=null )
					{
						fnCreateMessageBox('error','Rossz felhaszn&#225;l&#243;i n&#233;v, vagy jelsz&#243;!');
					}
					
					// ertek-tomb uritese 
				
					aTemp = new Array();
					aResp[aData.data[aData.data.length-1]] = aTemp;	
				}
				else
				{					
					aResp[aData.data[aData.data.length-1]] = aData.data;
					fnPrintEmails(aData.data[aData.data.length-1]);  
				}
				
			}  
			else
			{
				// ertek-tomb uritese 
				
				aTemp = new Array();
				aResp[aData.data[aData.data.length-1]] = aTemp;					
			
			}			
			
			setCookie(sProvider, aData.data[aData.data.length-1]); 
			
			// get prov data 
			
			fnJsonConnect(unID,'init');
			
			break;
		
		// cookie-k beallitasa a jelszavak megjegyzesehez 	
		case 'setInit' :
			
			firstQuery = false;	
			
			for (a=0; a<aData.data.length; a++)
			{
				if ( (aData.data[a]!='') )
				{
					setCookie('visible'+aProv[a], aData.data[a], 1);						
				}
				else
				{
					setCookie('visible'+aProv[a], '',-1);
				}

			}
			
			// fejlec frissitese 
									
			sUser = getCookies('visible'+$('emlProv').innerHTML);	
							
			if (sUser!='')
			{					
				$('email_box_loginform_form').hide();		
				$('logon').update(sUser).show();	
				$('logonheader').setStyle({display:"inline"});		
				$('mailLogOutButton').show();						
			}
			else
			{
				$('logonheader').hide();
				$('logon').hide();
			}					
			break;		
		
		case 'saveSettings' :
			// uzenet letrehozasa 			
			fnCreateMessageBox('error','Be&#225;ll&#237;t&#225;sok elmentve!')
			
			// beallitas utan a levelek frissitese 				
			getMails();				
			break;		
    }
    
}


function cropString(string, iWidth, sw)
{
	// a felado string kukac utani reszet levagja
	
	if ( sw==0 )
	{
		var pos = string.search(/@/);
		if ( pos>0 )
		{
			string = string.slice(0,pos);
		}							
	}

	return string.slice(0,iWidth);
}

// Cookie kezeles

function getCookies(c_name)
{    
    if (document.cookie.length>0)
    {
        
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1)
        { 
            c_start=c_start + c_name.length+1 ;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1)
            {
                c_end=document.cookie.length;
            }
        return unescape(document.cookie.substring(c_start,c_end));
        } 
    }
    return false;
}


function setCookie(c_name,value,expiredays)
{
    var exdate=new Date()
    exdate.setDate(exdate.getDate()+expiredays)
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

function fnSetting()
{
	if (setting)
	{
		$('emailEmail').hide();
		$('emailSetting').setStyle({display:"block"});
		$('emailLogoBox').hide();		
		$('mailfooter').hide();
		$('logonheader').hide();
		$('emlProv').hide();
		$('logon').hide();
		setting = false;
		
		
	}
	else
	{
		$('emailEmail').show();
		$('emailSetting').hide();	
		$('emailLogoBox').show();
		$('mailfooter').show();		
		$('emlProv').show();		
		setting = true;
	}
}

function setLogoList()
{
	var sList = getCookie('emailLogoList');
}


function getMails()
{
	
	for ( i=0; i<aResp.length; i++)
	{
		cookieName = 'visible'+aResp[i];		
		sUser = getCookies(cookieName);
				
		if ( sUser!='' )
		{
			var sProv    = aResp[i];
			var iMailNr  = $(sProv+'refresh').value;
			var sNewmail = ($(sProv+'newmail')==undefined) ? '' : $(sProv+'newmail').value; 
				
			bRequest=true;	
								
			array = new Array(sProv, unID, iMailNr, sNewmail);					
			
			fnJsonConnect(array,'getMailP');
			
										
		}
	}		

}


function fnaParseSettings()
{	
	for ( var i in settings)
	{
		var sProvName = i;
		var sOpName = sProvName.substr(sProvName.length-7, sProvName.length);
		
		if ( (sOpName=='visible') || (sOpName=='newmail') )
		{
			$(sProvName).checked = settings[i];
			$(sProvName).value = settings[i];
		}
		else
		{
			$(sProvName).value = settings[i];
		}			
	}
	// frissites 
	
	var rf = parseInt(refresh/60);
	$('mailRefresh').value=rf;
	
	// header ikonok beallitasa 
	fnHeaderIconSettings();
}


// konstruktor

function fnConstruct()
{
	// folosleges gombok eltuntetese 
	
			
	// tooltip letrehozasa 
			
	createItem('div','','emailBoxTooltip','');
	$('emailBoxTooltip').hide();
	
	
	// message box letrehozasa 
	
	createItem('div','','emailMessageBox','');
	$('emailBoxTooltip').hide();
	
	
	// settings valtozo kiertekelese 
	
	fnaParseSettings();
	
	
	// E-mail box ikonok �sszegyujt�se 
	
	mailboxElemek = $$('.mh');
	/*
	// 'visible' sutik torlese 
	
	for (i=0; i<aProv.length; i++)
	{
		setCookie('visible'+aProv[i],'');			
	}
	*/
	
	// aktualis tab lekerdezese
	
	if ( getCookies("email_tab") )
	{
		sProvider = getCookies("email_tab");
		
		for (i=1; i<=5; i++)
		{
			var sID='eml'+i;
			
			if ( $(sID).title == sProvider )
			{
				setHeaderIcon(sID);
			}
		}
		
		$('emlProv').update(sProvider);
	}
	else
	{
		sProvider = 'Gmail';
		setCookie('email_tab','Gmail', 1);
	}
	
	// a szolgaltato alapjan a regisztracios link beallitasa
	
	setReg(sProvider);
	
	
	// levelek lekerdezese, ha regisztralt 
	
	if (mailreguser)
	{
		firstQuery = false;
		// beallitasok ellenorzese 
	
		fnJsonConnect(unID,'init');
	
		getMails();
		
		// ismetles beallitasa 
		new PeriodicalExecuter(getMails, refresh);
	}
}



// Ha az oldal bet�ltod�tt, akkor: 

function fnStartScript()
{
	
	try 
	{
		var temp = $("emailLogoBox").id;
		
		fnConstruct();
	}
	catch(err) {};
	
}


Event.observe(window, 'load', fnStartScript);

