/* $Id: forms.js,v 1.3 2008/04/18 00:46:56 rbernaczek Exp $ */

function checkContactForm(form) {
	return checkInput("form_name","Please enter your name.") &&
		checkEmail("form_email","Please enter e-mail.")&&
		checkTextarea("form_message","Please enter message.");
}

function checkMediaForm(form) {
	return checkInput("for_tresc",checkMediaMessage.no_tresc) &&
		checkEmail("for_email",checkMediaMessage.no_email);
}


function checkDownloadForm(form)
{
	return checkRadio(form, "receive","Please choose an answer", "form_download_yes");
}

function checkCommentPost(form)
{
	return checkTextarea("body","Please enter a comment.");
}

/* ----------------------------------------------------------------------
	DEFAULT VALIDATION FORMS
---------------------------------------------------------------------- */
function checkInput(inputId, errorMessage)
{
	var input = document.getElementById(inputId);
	if(!input)
	{
		alert( "Input " + inputId + " not found!");
		return false;
	}

	if( input.value == "" )
    	return focusFailedInput(inputId,errorMessage);
     
    return true;
}

function compareFields(fieldId1, fieldId2, errorMessage)
{
	var field1 = document.getElementById(fieldId1);
	if(!field1)
	{
		alert( "Element " + fieldId1 + " not found!");		
		return false;
	}

	var field2 = document.getElementById(fieldId2);
	if(!field2)
	{
		alert( "Element " + fieldId2 + " not found!");		
		return false;
	}

	if( field1.value != field2.value )
    	return focusFailedInput(fieldId2,errorMessage);
     
    return true;
}

function checkTextarea(inputId, errorMessage)
{
	var input = document.getElementById(inputId);
	if(!input)
	{
		alert( "Textarea " + inputId + " not found!");		
		return false;
	}

	if( input.value.length <= 2 )
    	return focusFailedInput(inputId,errorMessage);
     
    return true;
}

function checkEmail(inputId,errorMessage)
{
	var input = document.getElementById(inputId);
	if(!input)
	{
		alert( "Input " + inputId + " not found!");
		return false;
	}

    if (!isValidEmail(input.value)) 
    {
        focusFailedInput(inputId,errorMessage);
        return false;
    }

    return true;
}

function isValidEmail(email)
{
 	var template = /^[0-9a-z]+[0-9a-z._-]*\@[0-9a-z]+[0-9a-z._-]*\.[0-9a-z]{2,}$/i;
  	if (template.test(email) == false) return false;
	return true;
}

function clearError()
{
	var labels = document.getElementsByTagName("label");
	
	for(var i = 0; i < labels.length; i++ )
	{
		var label = labels[i];
		label.className = label.className.replace("error", "");
	}
	if (this) this.className = this.className.replace("error", "");
	return true;
}

function focusFailedInput(inputId, errorMessage)
{
	var labels = document.getElementsByTagName("label");

	var tmplabel;
	// set error class to correct label and remove error class from others
	for(var i = 0; i < labels.length; i++ )
	{
		var label = labels[i];
		label.className = label.className.replace("error", "");
		// if anything will be wrong, remove break statement
		if( label.htmlFor == inputId ) { label.className += " error"; break; }
	}
	
	var element = document.getElementById(inputId);
	if(element)
	{
		element.className += " error"; 
		element.onchange = clearError;
		element.focus();
	}

	if(errorMessage) alert(errorMessage);
		
	return false;
}
function checkRadio(form, input, errorMessage, inputId)
{
	var i = 0;
	for( i ; i < form[input].length; i++ )
	{
		if(form[input][i].checked == true) break;
	}
	
	var tmp = inputId ? inputId : tmp;
	
	if( i == form[input].length )
    	return focusFailedInput(tmp,errorMessage);
     
    return true;
}

/* ----------------------------------------------------------------------
	POLL VIEW
---------------------------------------------------------------------- */
function setPollView(viewNo, thisLink)
{
	var view = document.getElementById("change_poll_view");
	if(!view) return;
	var j = 1;
	for( var i = 0; i < view.childNodes.length; i++)
	{
		if(view.childNodes.item(i).nodeType == 1)
		{
			if(j++ == viewNo)
				view.childNodes.item(i).style.display="block";
			else
				view.childNodes.item(i).style.display="none";
			
		}
	}
	
	var switchers = document.getElementById("change_poll_view_switcher").getElementsByTagName("a");
	for(var i = 0; i < switchers.length; i++ )
	{
		switchers[i].className = switchers[i].className.replace("selected", "");
	}
	thisLink.className += " selected";
	
	
	return false;
}