var httpObject = null;

var slideShowID = -1;
var slideShowMax = -1;
var timer = null;
var prevID = 1;

// Get the HTTP Object
function getHTTPObject(){
	if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest) return new XMLHttpRequest();
	else {
		alert("Your browser does not support AJAX.");
		return null;
	}
} 
// Change the value of the outputText field
function setOutput(){
	if(httpObject.readyState == 4){
		document.getElementById('ajaxContent').innerHTML = httpObject.responseText;
	}
}
// Implement business logic 
function doWork(param){ 
	httpObject = getHTTPObject();
	if (httpObject != null) {
		var url = "ajaxProvider.php?action=" + param + "&ms=" + new Date().getTime();
		httpObject.open("GET", url, true);
		httpObject.send(null); 
		httpObject.onreadystatechange = setOutput;
		document.getElementById('ajaxContent').innerHTML = "<div style=\"height: 400px;text-align: center; padding-top: 150px;\"><b>Loading...</b></div>";
	}
}

function appendNewComment() {
	if(httpObject.readyState == 4) {
		var resp = httpObject.responseText;
		if (resp.indexOf("ERROR")== 0) {
			alert (resp);
		} else {
			document.getElementById('allComments').innerHTML = resp + document.getElementById('allComments').innerHTML; 		  		 }
	}
	
}

function submitComment(userName, isAdmin) {
	if (document.getElementById('commentText').value != '') {
		httpObject = getHTTPObject();
		if (httpObject != null) {
			var url = "ajaxProvider.php?action=submitComment-0&ms=" + new Date().getTime();
			var parameters = "";
			parameters = parameters + "&itemType=" + encodeURI( document.getElementById("itemType").value );
			parameters = parameters + "&itemID=" + encodeURI( document.getElementById("itemID").value );
			parameters = parameters + "&commentText=" + encodeURI( document.getElementById("commentText").value );
			parameters = parameters + "&user=" + encodeURI(userName);
			parameters = parameters + "&isAdmin=" + encodeURI(isAdmin);
			httpObject.open("POST", url, true);
	    	httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	        httpObject.setRequestHeader("Content-length", parameters.length);
	        httpObject.setRequestHeader("Connection", "close");
			httpObject.send(parameters);
			httpObject.onreadystatechange = appendNewComment;
			document.getElementById("commentText").value = '';
		}
	} else {
		return false;
	}
}

function deleteComment(parentType, parentID, commentID, confirmText) {
	if (confirm(confirmText)) {
		httpObject = getHTTPObject();
		if (httpObject != null) {
			var url = "ajaxProvider.php?action=deleteComment-0&ms=" + new Date().getTime();
			var parameters = "";
			parameters = parameters + "&itemType=" + encodeURI( parentType );
			parameters = parameters + "&itemID=" + encodeURI( parentID );
			parameters = parameters + "&commentID=" + encodeURI( commentID );
			httpObject.open("POST", url, true);
	    	httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	        httpObject.setRequestHeader("Content-length", parameters.length);
	        httpObject.setRequestHeader("Connection", "close");
			httpObject.send(parameters);
			httpObject.onreadystatechange = hideComment;
		}
	
	} else {
		return false;
	}
}

function hideComment() {
	if(httpObject.readyState == 4) {
		var resp = httpObject.responseText;
		if (resp.indexOf("ERROR")== 0) {
			alert (resp);
		} else {
			document.getElementById(resp).style.display = 'none';
		}
	}	
}

function checkReqUserName() {
	var param = document.getElementById('reqName').value;
	if (param == '') {
		return;
	}
	httpObject = getHTTPObject();
	if (httpObject != null) {
		var url = "ajaxProvider.php?action=checkReqUserName&name=" + param + "&ms=" + new Date().getTime();
		httpObject.open("GET", url, true);
		httpObject.send(null); 
		httpObject.onreadystatechange = validateReqName;
		document.getElementById('error_reqName').innerHTML = "Checking...";
	}
}

function validateReqName() {
	if(httpObject.readyState == 4) {
		var resp = httpObject.responseText;
		if (resp.indexOf("ERROR")== 0) {
			alert (resp);
			document.getElementById('error_reqName').innerHTML = '&nbsp;';
		} else {
			document.getElementById('error_reqName').innerHTML = resp;
		}
	}	
}

function echeck(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){
		    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){
		    alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}

function validateMail() {
	var email1 = document.getElementById('reqMail').value;
	var email2 = document.getElementById('reqMail2').value;
	var validMail = true;
	if (! echeck(email1)) {
		document.getElementById('error_reqMail').innerHTML = "Hibás email cím!";
		validMail = false;
	} else {
		document.getElementById('error_reqMail').innerHTML = "&nbsp;";
	}
	if (! echeck(email2)) {
		document.getElementById('error_reqMail2').innerHTML = "Hibás email cím!";
		validMail = false;
	} else {
		document.getElementById('error_reqMail2').innerHTML = "&nbsp;";
	}
	if (email1 != email2) {
		document.getElementById('error_reqMail2').innerHTML = "Nem azonos email cím!";
	}	
	return validMail;
}

function submitRegistration() {
		var email1 = document.getElementById('reqMail').value;
		var email2 = document.getElementById('reqMail2').value;
		var userName = document.getElementById('reqName').value;
		var hasERROR = false;
		if (userName == '') {
			document.getElementById('error_reqName').innerHTML = "Nincs felhasználó-név!";
			alert("Nem adott meg felhasználó-nevet!");
			hasERROR = true;
		} else {
			if (document.getElementById('error_reqName').innerHTML != '&nbsp' && document.getElementById('error_reqName').innerHTML != 'Ok') {
				//document.getElementById('error_reqName').innerHTML = "Hiba a felhasználónévnél!";
				alert("Szüntesse meg a jelezett hibát");
				hasERROR = true;
			}
		}
		var fullName = document.getElementById('reqFullName').value;
		if (fullName == '') {
			document.getElementById('error_reqFullName').innerHTML = "Hiányzik a teljes név!";
			alert("Nem adott meg teljes nevet!");
			hasERROR = true;
		}
		if (! validateMail()) {
			alert("Hiba, az email címekkel!");
			hasERROR = true;
		}

		if (hasERROR) {
			return false;
		}
	return true;
}

function updateProfile(paramList){ 
	httpObject = getHTTPObject();
	var action = 'updateProfile';
	if (paramList != null) {
		var params = paramList.split("#%#");
		var paramName = "";
		var parameters = "submittedParams=" + encodeURI(paramList);
		for (i=0; i<params.length; i++) {
			paramName = params[i];
			var paramValue = document.getElementById(paramName).value;
			//alert("Checking param: " + paramName);
			if (paramName == 'password') {
				//Check if passwords match
				pwd1 = document.getElementById(paramName).value;
				if (pwd1 == '') {
					alert('Hiba: Üres jelszó!');
					return;
				}
				pwd2 = document.getElementById(paramName+"2").value;
				if (pwd1 != pwd2) {
					alert("Hiba: A két jelszó nem egyezik!");
					return false;
				}
				//paramValue = "MD5(\'" + paramValue + "\')";
			} 
			parameters = parameters + "&" + paramName + "=" + encodeURI( paramValue );
		}
	}
	if (httpObject != null) {
		var url = "ajaxProvider.php?action="+action + "&ms=" + new Date().getTime();
		if (paramList != null) {
			httpObject.open("POST", url, true);
	    	httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	        httpObject.setRequestHeader("Content-length", parameters.length);
	        httpObject.setRequestHeader("Connection", "close");
			httpObject.send(parameters);
		} else {
			httpObject.open("GET", url, true);
			httpObject.send(null);
		} 
		httpObject.onreadystatechange = displayUpdateResult;
			document.getElementById('ajaxResult').innerHTML = "Working...";
			if (document.getElementById) { // DOM3 = IE5, NS6 
				document.getElementById('ajaxResult').style.display = 'inline'; 
			} 
			else { 
				if (document.layers) { // Netscape 4 
					document.ajaxResult.visibility = 'visible'; 
				} 
				else { // IE 4 
					document.all.ajaxResult.style.visibility = 'visible'; 
				} 
			}		
	}
}

function displayUpdateResult() {
	if(httpObject.readyState == 4) {
		var resp = httpObject.responseText;
		if (resp.indexOf("ERROR")== 0) {
			hidediv('ajaxResult');
			alert (resp);
		} else {
			document.getElementById('ajaxResult').innerHTML = resp;
		}
	}	
}

function showForum(user, pwd) {
	httpObject = getHTTPObject();
	var url = 'http://sgforum.hu/regisztracio.php?status=login&azonosito=enjoytherace';
		
		parameters = "nick=" + encodeURI( user );
		parameters = parameters + "&pass=" + encodeURI( pwd );
		parameters = parameters + "&azonosito=" + encodeURI( 'enjoytherace' );
		parameters = parameters + "&status=" + encodeURI( 'login' );
		parameters = parameters + "&phase=" + encodeURI( '2' );
	if (httpObject != null) {
		httpObject.open("POST", url, true);
    	httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        httpObject.setRequestHeader("Content-length", parameters.length);
        httpObject.setRequestHeader("Connection", "close");
		httpObject.send(parameters);

		httpObject.onreadystatechange = showForumWindow;
	}	
}

function showForumWindow() {
	win=window.open("http://sgforum.hu/forum.php3?azonosito=enjoytherace");
}

function showVideoImage(imgLink, id) {
	if (timer != null) {
		clearTimeout(timer);
	}	
	element = document.getElementById('videoTD_' + prevID);
	if (element != null) { 
		element.style.backgroundColor = "#333";
	}
	element = document.getElementById('videoTD_' + id);
	if (element != null) {
		element.style.backgroundColor = "#522";
	}	
	showVideoImageEx(imgLink);
}

function showVideoImageEx(imgLink) {
	element = document.getElementById('videoShow');
	if (element != null) {
		if (imgLink != '') {
			element.innerHTML = imgLink;
		} else {
			element.innerHTML = "No preview image available.";
		}
	} else {
		alert ('Unable to find videoGaleryShow.');
	}
}

function startSlideShow() {
	if (slideShowMax == -1) {
		cntr = 1;
		element = document.getElementById('videoShow_' + cntr);
		while (element != null) {
			slideShowMax = cntr;
			cntr++;
			element = document.getElementById('videoShow_' + cntr);
		}
		slideShowID = 1;
	}
	element = document.getElementById('videoShow_' + slideShowID);
	showSlideShowImage(element.innerHTML);
}

function showSlideShowImage(imgLink) {
	showVideoImageEx(imgLink);
	element = document.getElementById('videoTD_' + prevID);
	if (element != null) { 
		element.style.backgroundColor = "#333";
	}
	element = document.getElementById('videoTD_' + slideShowID);
	if (element != null) {
		element.style.backgroundColor = "#522";
	}
	prevID = slideShowID;
	slideShowID++;
	if (slideShowID > slideShowMax) {
		//Reset counter to 1
		slideShowID = 1;
	}
	element = document.getElementById('videoShow_' + slideShowID);
	//loop, step 5 sec
	//alert("Showing: " + 'videoShow_' + slideShowID + " element: " + element.innerHTML);
	if (element != null) {
		timer = setTimeout("showSlideShowImage(element.innerHTML)",5000);
	}
}

function restoreVideoSlideShow(id) {
	element = document.getElementById('videoTD_' + id);
	if (element != null) { 
		element.style.backgroundColor = "#333";
	}
	element = document.getElementById('videoTD_' + prevID);
	if (element != null) {
		element.style.backgroundColor = "#522";
	}
	element = document.getElementById('videoShow_' + prevID);
	if (element != null) {
		showVideoImageEx(element.innerHTML);
	}
	element = document.getElementById('videoShow_' + slideShowID);
	//loop, step 5 sec
	//alert("Showing: " + 'videoShow_' + slideShowID + " element: " + element.innerHTML);
	if (element != null) {
		timer = setTimeout("showSlideShowImage(element.innerHTML)",5000);
	}
	
}
