function ctrlInput(e, inputType) {
 var key;
 var keychar;
 var characters;

 switch (inputType) {
	case 'email':
		characters = 'abcdefghijklmnopqrstuxyvwzABCDEFGHIJKLMNOPQRSTUXYVWZ0123456789.@-_'
	 	break;
	case 'phone':
		characters = '0123456789()-+ /'
	 	break;
	case 'general':
		characters = 'abcdefghijklmnopqrstuxyvwzABCDEFGHIJKLMNOPQRSTUXYVWZöüóőúéáűíÖÜÓŐÚÉÁŰÍ0123456789 \'"+!%/=()<>#&@,.-?:_;*$€äÄß'
	 	break
	case 'code':
		characters = '23456789bcdfghjkmnpqrstvwxyz'
	 	break;
	case 'keyword':
		characters = 'abcdefghijklmnopqrstuxyvwzABCDEFGHIJKLMNOPQRSTUXYVWZöüóőúéáűíÖÜÓŐÚÉÁŰÍ0123456789 ,-äÄß'
	 	break;
	case 'title':
		characters = 'abcdefghijklmnopqrstuxyvwzABCDEFGHIJKLMNOPQRSTUXYVWZöüóőúéáűíÖÜÓŐÚÉÁŰÍ0123456789 .,-äÄß'
	 	break;
	case 'num':
		characters = '0123456789';
	 	break;
	case 'url':
		characters = 'abcdefghijklmnopqrstuxyvwz0123456789.-:/'
	 	break
 }
	 
 if (window.event) key = window.event.keyCode;
 else if (e) key = e.which;
 else return true;
 
 keychar = String.fromCharCode(key);
 
// Values:
//  8: [Backspace]
//  9: [Tab]
// 13: [Enter]
// 27: [Esc]
// 36: [Home]
// 37: [LeftArrow]
// 39: [RightArrow]

if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) return true;
 else if (characters.indexOf(keychar) > -1) return true;
 else return false;
}


function textCounter(field, countfield, maxlimit) {
 if (field.value.length > maxlimit)
  field.value = field.value.substring(0, maxlimit);
 else
  countfield.value = maxlimit - field.value.length;
}


function emailCheck(str) {
 var at="@";
 var dot=".";
 var lat=str.indexOf(at);
 var lstr=str.length;
 var ldot=str.indexOf(dot);

 if (str.indexOf(at)==-1) return false;
 if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) return false;
 if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr || str.indexOf(dot)==lstr-1 || str.indexOf(dot)==lstr-2) return false;
 if (str.indexOf(at,(lat+1))!=-1) return false;
 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false;
 if (str.indexOf(dot,(lat+2))==-1) return false;
 if (str.indexOf(" ")!=-1) return false;

 return true;
}


function checkKeywords() {
 myLabels = document.getElementById('labels').value;
 if (myLabels.length == 0) return true;
 labelsOK = true;
 idx = 0;
 do {
  diff = myLabels.substring(idx).indexOf(',');
  if ((diff == -1 && myLabels.substring(idx).length > 40) || (diff - idx > 40)) labelsOK = false;
  idx = idx + diff + 1;
 } while (idx < myLabels.length && diff != -1)
 
 return labelsOK;
}


function checkForm(vcode) {
 var allowSubmit = true;
 var msgHtml = '';

 if (document.getElementById('urlOK').value != 'Y') {
   allowSubmit = false;
   msgHtml = msgHtml + '<li>A megadott link nem beküldhető</li>'
 }

 if (document.getElementById('url').value.length < 10) {
   allowSubmit = false;
   msgHtml = msgHtml + '<li>Hiányzó webcím</li>'
 }

 if (document.getElementById('linkName').value.length < 5) {
   allowSubmit = false;
   msgHtml = msgHtml + '<li>Túl rövid link név (min. 5 kar.)</li>'
 }

 if (document.getElementById('labels').value.length < 10) {
   allowSubmit = false;
   msgHtml = msgHtml + '<li>Kulcsszavak megadása szükséges</li>'
 }

 if (!checkKeywords()) {
   allowSubmit = false;
   msgHtml = msgHtml + '<li>Egy kulcsszó hossza max. 50 karakter lehet</li>'
 } 

 if (document.getElementById('desc').value.length < 250) {
   allowSubmit = false;
   msgHtml = msgHtml + '<li>Túl rövid leírás (min. 250 kar.)</li>'
 }

 if (document.getElementById('contactEmail').value == '' || !emailCheck(document.getElementById('contactEmail').value)) {
   allowSubmit = false;
   msgHtml = msgHtml + '<li>Hiányzó vagy hibás e-mail cím</li>'
 }

 if (document.getElementById('codeValidate').value != vcode) {
  allowSubmit = false;
  msgHtml = msgHtml + '<li>Hibás ellenőrző kód</li>';
 }   

 if (!allowSubmit) {
   document.getElementById('dError').innerHTML = '<ul>' + msgHtml + '</ul>';
   document.getElementById('dError').style.display = 'block';
   return false
 } else {
   document.getElementById('dError').style.display = 'none';
   document.getElementById('dProgress').style.display = 'block';
   return true
 }

}




var xml = xmlObject();

function xmlObject () {
	if (typeof XMLHttpRequest == 'undefined') {
		objects = Array(
			'Microsoft.XmlHttp',
			'MSXML2.XmlHttp',
			'MSXML2.XmlHttp.3.0',
			'MSXML2.XmlHttp.4.0',
			'MSXML2.XmlHttp.5.0'
		);
		for (i = 0; i < objects.length; i++) {
			try {
				return new ActiveXObject(objects[i]);
			} catch (e) {}
		}
	} else {
		return new XMLHttpRequest();
	}
}

function getCallbackFunction(req, processData) {
 return function () {
   if (req.readyState == 4) {
     if (req.status == 200) {
       processData(req.responseXML);
     } else {
       // alert("HTTP error: "+req.status);
     }
   }
 }
}


function checkURL() {

 function processCheckLink(xmlDoc) {
  var response = xmlDoc.documentElement.getElementsByTagName("i")[0].getElementsByTagName("r")[0].firstChild.nodeValue;
  var rCode = xmlDoc.documentElement.getElementsByTagName("i")[0].getElementsByTagName("rc")[0].firstChild.nodeValue;
  var rURL = xmlDoc.documentElement.getElementsByTagName("i")[0].getElementsByTagName("l")[0].firstChild.nodeValue;
  if (response == 'OK') {
   document.getElementById('urlMsg').innerHTML = '';
   document.getElementById('url').value = rURL;
   document.getElementById('urlOK').value = 'Y';
  } else if (rCode == '1') {
   document.getElementById('urlMsg').innerHTML = '<img src="/images/error.gif" align="absmiddle"> A megadott link nem válaszol.';
   document.getElementById('urlOK').value = 'N';
  } else if (rCode == '2') {
   document.getElementById('urlMsg').innerHTML = '<img src="/images/error.gif" align="absmiddle"> A megadott link már szerepel gyűjteményünkben.';
   document.getElementById('url').value = rURL;
   document.getElementById('urlOK').value = 'N';
  } else if (rCode == '3') {
   document.getElementById('urlMsg').innerHTML = '<img src="/images/error.gif" align="absmiddle"> A megadott link már jóváhagyásra vár.';
   document.getElementById('url').value = rURL;
   document.getElementById('urlOK').value = 'N';
  } else if (rCode == '4') {
   document.getElementById('urlMsg').innerHTML = '<img src="/images/error.gif" align="absmiddle"> A megadott link korábban már el lett utasítva.';
   document.getElementById('url').value = rURL;
   document.getElementById('urlOK').value = 'N';
  }
 }

 xml.open('post', '/check-link.php');
 xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
 xml.onreadystatechange = getCallbackFunction(xml, processCheckLink);
 xml.send('url='+document.getElementById('url').value);
}


function init_link_submission(linkId) {
 function processInitLinkSub(xmlDoc) {
 }

 xml.open('post', '/link-ajanlas-init.php');
 xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
 xml.onreadystatechange = getCallbackFunction(xml, processInitLinkSub);
 xml.send('id='+linkId);
}