/*
-----------------------------------------------------------------------------------
Utility functions
-----------------------------------------------------------------------------------
*/
function validateEmail(elementValue){ 
	var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	return emailPattern.test(elementValue);
} 

/*
-----------------------------------------------------------------------------------
Search functions
-----------------------------------------------------------------------------------
*/

function checkSearchForm() {
	var err = false;

	if (trim(document.frmSearch.c.value) == '0' && trim(document.frmSearch.a.value) == '0')
	{
		/*
		if (trim(document.frmSearch.s.value) == '')
		{
			document.getElementById('reqSearchTerm').style.display = 'inline';
			err = true;
		}
		else
			document.getElementById('reqSearchTerm').style.display = 'none';
		*/
	
		var str = trim(document.frmSearch.s.value).replace(/\s/g, '')
	
		var lenTest = /\w{3,}/.test(str);
		if (!lenTest)
		{
			document.getElementById('lenSearchTerm').style.display = 'inline';
			err = true;
		}
		else
			document.getElementById('lenSearchTerm').style.display = 'none';
	
		var match = /\W/.test(str);
		if (match)
		{
			document.getElementById('regSearchTerm').style.display = 'inline';
			err = true;
		}
		else
			document.getElementById('regSearchTerm').style.display = 'none';
	}
	if (err)
	{
		return false;
	}
	else
	{
		startIndex = 1;
		searchTerm = document.frmSearch.s.value;
		submitSearch();
		return false;
	}
}

function setSearchForm(strSearchTerm)
{
	document.frmSearch.s.value = strSearchTerm;
	searchTerm = strSearchTerm;
	checkSearchForm();
	return false;
}

function getSearchResults(intStartAt)
{
	startIndex = intStartAt;
	submitSearch();
	return false;
}

function submitSearch()
{
	var xmlHttp;
	var intIndex;
	
	try
  	{  
  		// Firefox, Opera 8.0+, Safari  
  		xmlHttp=new XMLHttpRequest();  
  	}
	catch (e)
  	{  
  		// Internet Explorer  
  		try
    		{    
    			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");   
    		}
  		catch (e)
    		{
    			try
      			{      	
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
			}
    			catch (e)
      			{      
      				alert("Your browser does not support AJAX!");      
      				return false;      
      			}    
      		} 
      	}
      	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			var strResponse = xmlHttp.responseText;
			
			if (strResponse.indexOf('ERROR:') > -1)
			{
				strResponse = '<span class="ErrorText">' + strResponse.substring(6) + '</span>';
				
				strResponse = strResponse + '';
				WriteLayer('SearchResult', strResponse);
								}
			else
			{
	  			WriteLayer('SearchResult', strResponse);
	  			document.frmSearch.s.value = '';
	  			document.frmSearch.c.value = '0';
	  			document.frmSearch.a.value = '0';
				//toggleVisibility('CommentForm');
	  		}
	  	}
	} 
	
	var strAction = '/services/ajax-search.asp?';
	strAction = strAction + 'intWebsiteID=' + document.frmSearch.intWebsiteID.value;
	strAction = strAction + '&txtSearchTerm=' + searchTerm;
	strAction = strAction + '&intStartIndex=' + startIndex;
	strAction = strAction + '&intPageSize=' + pageSize;
	strAction = strAction + '&intCategoryID=' + document.frmSearch.c.value;
	strAction = strAction + '&intAttributeID=' + document.frmSearch.a.value;
	xmlHttp.open('GET', strAction, true);
 	 
 	xmlHttp.send(null);		
}

/*
-----------------------------------------------------------------------------------
Comment functions
-----------------------------------------------------------------------------------
*/

function checkCommentForm(ArtOrAff) {
	var err = false;
	
	if (trim(document.frmComment.txtAuthor.value) == '')
	{
		document.getElementById('reqAuthor').style.display = 'block';
		err = true;
	}
	else
		document.getElementById('reqAuthor').style.display = 'none';

	if (trim(document.frmComment.txtEmail.value) == '')
	{
		document.getElementById('reqEmail').style.display = 'block';
		err = true;
	}
	else
		document.getElementById('reqEmail').style.display = 'none';

	if (trim(document.frmComment.txtComment.value) == '')
	{
		document.getElementById('reqComment').style.display = 'block';
		err = true;
	}
	else
		document.getElementById('reqComment').style.display = 'none';

	document.getElementById('lenCAPTCHA').style.display = 'none';
	document.getElementById('reqCAPTCHA').style.display = 'none';

	if (trim(document.frmComment.strCAPTCHA.value) == '')
	{
		document.getElementById('reqCAPTCHA').style.display = 'block';
		err = true;
	}
	else if (trim(document.frmComment.strCAPTCHA.value).length != 4)
	{
		document.getElementById('lenCAPTCHA').style.display = 'block';
		err = true;
	}

	if (err)
	{
		return false;
	}
	else
	{
		submitComment(ArtOrAff);
		return false;
	}
}

function submitComment(ArtOrAff)
{
	var xmlHttp;
	var intIndex;
	
	try
  	{  
  		// Firefox, Opera 8.0+, Safari  
  		xmlHttp=new XMLHttpRequest();  
  	}
	catch (e)
  	{  
  		// Internet Explorer  
  		try
    		{    
    			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");   
    		}
  		catch (e)
    		{
    			try
      			{      	
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
			}
    			catch (e)
      			{      
      				alert("Your browser does not support AJAX!");      
      				return false;      
      			}    
      		} 
      	}
      	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			var strResponse = xmlHttp.responseText;
			
			if (strResponse.indexOf('ERROR:') > -1)
			{
				strResponse = '<span class="ErrorText">' + strResponse.substring(6) + '</span>';
				
				strResponse = strResponse + '';
				WriteLayer('CommentResult', strResponse);
				
				if (strResponse.indexOf('CAPTCHA') > -1)
				{
		  			document.frmComment.strCAPTCHA.value = '';
		  			document.frmComment.strCAPTCHA.focus();
					//document.images['imgCAPTCHA'].src = '';
					document.images['imgCAPTCHA'].src = '/captcha.asp?x=' + Math.random() ;
				}
			}
			else
			{
	  			WriteLayer('CommentResult', strResponse);
	  			document.frmComment.txtAuthor.value = '';
	  			document.frmComment.txtEmail.value = '';
	  			document.frmComment.txtTitle.value = '';
	  			document.frmComment.txtComment.value = '';
	  			document.frmComment.strCAPTCHA.value = '';
				document.images['imgCAPTCHA'].src = '/captcha.asp?x=' + Math.random() ;
				toggleVisibility('CommentForm');		  			
	  		}
	  	}
	} 
	
	var strAction = '/services/ajax-comments.asp?' + ArtOrAff + 'ID=';
	if (ArtOrAff == 'Art')
		strAction = strAction + document.frmComment.ArtID.value;
	else
		strAction = strAction + document.frmComment.AffID.value;
	strAction = strAction + '&txtAuthor=' + document.frmComment.txtAuthor.value;
	strAction = strAction + '&txtEmail=' + document.frmComment.txtEmail.value;
	strAction = strAction + '&txtTitle=' + document.frmComment.txtTitle.value;
	strAction = strAction + '&txtComment=' + document.frmComment.txtComment.value;
	strAction = strAction + '&strCAPTCHA=' + document.frmComment.strCAPTCHA.value;
	xmlHttp.open('GET', strAction, true);

 	xmlHttp.send(null);		
}

/*
-----------------------------------------------------------------------------------
Feedback functions
-----------------------------------------------------------------------------------
*/

function checkFeedbackForm() {
	var err = false;
	
	if (trim(document.frmFeedback.txtName.value) == '')
	{
		document.getElementById('reqName').style.display = 'inline';
		err = true;
	}
	else
		document.getElementById('reqName').style.display = 'none';

	if (trim(document.frmFeedback.txtEmail.value) == '')
	{
		document.getElementById('reqEmail').style.display = 'inline';
		err = true;
	}
	else
		document.getElementById('reqEmail').style.display = 'none';

	if (document.frmFeedback.txtUserStatus.options[document.frmFeedback.txtUserStatus.selectedIndex].value == '')
	{
		document.getElementById('reqUserStatus').style.display = 'inline';
		err = true;
	}
	else
		document.getElementById('reqUserStatus').style.display = 'none';

	if (document.frmFeedback.txtCommentNature.options[document.frmFeedback.txtCommentNature.selectedIndex].value == '')
	{
		document.getElementById('reqCommentNature').style.display = 'inline';
		err = true;
	}
	else
		document.getElementById('reqCommentNature').style.display = 'none';

	if (trim(document.frmFeedback.txtComment.value) == '')
	{
		document.getElementById('reqComment').style.display = 'inline';
		err = true;
	}
	else
		document.getElementById('reqComment').style.display = 'none';

	document.getElementById('lenCAPTCHA').style.display = 'none';
	document.getElementById('reqCAPTCHA').style.display = 'none';

	if (trim(document.frmFeedback.strCAPTCHA.value) == '')
	{
		document.getElementById('reqCAPTCHA').style.display = 'inline';
		err = true;
	}
	else if (trim(document.frmFeedback.strCAPTCHA.value).length != 4)
	{
		document.getElementById('lenCAPTCHA').style.display = 'inline';
		err = true;
	}

	if (err)
	{
		return false;
	}
	else
	{
		submitFeedback();
		return false;
	}
}

function submitFeedback()
{
	var xmlHttp;
	var intIndex;
	
	try
  	{  
  		// Firefox, Opera 8.0+, Safari  
  		xmlHttp=new XMLHttpRequest();  
  	}
	catch (e)
  	{  
  		// Internet Explorer  
  		try
    		{    
    			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");   
    		}
  		catch (e)
    		{
    			try
      			{      	
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
			}
    			catch (e)
      			{      
      				alert("Your browser does not support AJAX!");      
      				return false;      
      			}    
      		} 
      	}
      	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			var strResponse = xmlHttp.responseText;
			
			if (strResponse.indexOf('ERROR:') > -1)
			{
				strResponse = '<span class="error_text">' + strResponse.substring(6) + '</span>';
				
				strResponse = strResponse + '';
				WriteLayer('FeedbackResult', strResponse);
				
				if (strResponse.indexOf('CAPTCHA') > -1)
				{
		  			document.frmFeedback.strCAPTCHA.value = '';
		  			document.frmFeedback.strCAPTCHA.focus();
					//document.images['imgCAPTCHA'].src = '';
					document.images['imgCAPTCHA'].src = '/captcha.asp?x=' + Math.random() ;
				}
			}
			else
			{
	  			WriteLayer('FeedbackResult', strResponse);
	  			/*
	  			document.frmFeedback.txtName.value = '';
	  			document.frmFeedback.txtEmail.value = '';
	  			document.frmFeedback.txtUserStatus.selectedIndex = -1;
	  			document.frmFeedback.txtCommentNature.selectedIndex = -1;
	  			document.frmFeedback.txtComment.value = '';
	  			document.frmFeedback.strCAPTCHA.value = '';
	  			*/
				document.images['imgCAPTCHA'].src = '/captcha.asp?x=' + Math.random() ;
				toggleVisibility('FeedbackForm');		  			
	  		}
	  	}
	}
	
	var strAction = '/services/ajax-feedback.asp?WebsiteID=' + document.frmFeedback.WebsiteID.value;
	strAction = strAction + '&txtName=' + document.frmFeedback.txtName.value;
	strAction = strAction + '&txtEmail=' + document.frmFeedback.txtEmail.value;
	strAction = strAction + '&txtUserStatus=' + document.frmFeedback.txtUserStatus.options[document.frmFeedback.txtUserStatus.selectedIndex].value;
	strAction = strAction + '&txtCommentNature=' + document.frmFeedback.txtCommentNature.options[document.frmFeedback.txtCommentNature.selectedIndex].value;
	strAction = strAction + '&txtComment=' + document.frmFeedback.txtComment.value;
	strAction = strAction + '&strCAPTCHA=' + document.frmFeedback.strCAPTCHA.value;
	xmlHttp.open('GET', strAction, true);

 	xmlHttp.send(null);		
}

/*
-----------------------------------------------------------------------------------
Send Email functions
-----------------------------------------------------------------------------------
*/

function SendEmailErrorCheck()
{
	var err = false;

	if (document.frmEmailToAFriend.txtFriendName.value == '') {
		document.getElementById('reqFriendName').style.display = 'block';
		err = true;
	}
	else
		document.getElementById('reqFriendName').style.display = 'none';

	if (document.frmEmailToAFriend.txtFriendEmail.value == '') {
		document.getElementById('reqFriendEmail').style.display = 'block';
		err = true;
	}
	else
		document.getElementById('reqFriendEmail').style.display = 'none';
	
	if (document.frmEmailToAFriend.txtYourName.value == "") {
		document.getElementById('reqYourName').style.display = 'block';
		err = true;
	}
	else
		document.getElementById('reqYourName').style.display = 'none';
	
	if (document.frmEmailToAFriend.txtYourEmail.value == "") {
		document.getElementById('reqYourEmail').style.display = 'block';
		err = true;
	}
	else
		document.getElementById('reqYourEmail').style.display = 'none';
	
	return !err;
}

/*
-----------------------------------------------------------------------------------
Newsletter functions
-----------------------------------------------------------------------------------
*/

function checkNewsletterForm()
{
	var err = false;

	if (document.frmNewsletter.txtFirstName.value == '') {
		document.getElementById('reqFirstName').style.display = 'block';
		err = true;
	}
	else
		document.getElementById('reqFirstName').style.display = 'none';

	if (document.frmNewsletter.txtLastName.value == '') {
		document.getElementById('reqLastName').style.display = 'block';
		err = true;
	}
	else
		document.getElementById('reqLastName').style.display = 'none';
	
	if (document.frmNewsletter.txtEmail.value == "") {
		document.getElementById('reqEmail').style.display = 'block';
		document.getElementById('valEmail').style.display = 'none';
		err = true;
	}
	else
	{
		document.getElementById('reqEmail').style.display = 'none';
		document.getElementById('valEmail').style.display = 'none';

		if (validateEmail(document.frmNewsletter.txtEmail.value))
		{
			document.getElementById('valEmail').style.display = 'none';
		}
		else
		{
			document.getElementById('valEmail').style.display = 'block';
			err = true;
		}
	
	}
	
	if (err)
	{
		return false;
	}
	else
	{
		submitNewsletter();
		return false;
	}
}

function submitNewsletter()
{
	var xmlHttp;
	var intIndex;
	
	try
  	{  
  		// Firefox, Opera 8.0+, Safari  
  		xmlHttp=new XMLHttpRequest();  
  	}
	catch (e)
  	{  
  		// Internet Explorer  
  		try
    		{    
    			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");   
    		}
  		catch (e)
    		{
    			try
      			{      	
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
			}
    			catch (e)
      			{      
      				alert("Your browser does not support AJAX!");      
      				return false;      
      			}    
      		} 
      	}
      	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			var strResponse = xmlHttp.responseText;
			
			if (strResponse.indexOf('ERROR:') > -1)
			{
				strResponse = '<span class="ErrorText">' + strResponse.substring(6) + '</span>';
				
				strResponse = strResponse + '';
				WriteLayer('NewsletterResult', strResponse);
			}
			else
			{
	  			WriteLayer('NewsletterResult', strResponse);
	  			document.frmNewsletter.txtFirstName.value = '';
	  			document.frmNewsletter.txtLastName.value = '';
	  			document.frmNewsletter.txtEmail.value = '';
				toggleVisibility('NewsletterForm');		  			
	  		}
	  	}
	} 
	
	var strAction = '/services/ajax-newsletter.asp?';
	strAction = strAction + 'txtFirstName=' + document.frmNewsletter.txtFirstName.value;
	strAction = strAction + '&txtLastName=' + document.frmNewsletter.txtLastName.value;
	strAction = strAction + '&txtEmail=' + document.frmNewsletter.txtEmail.value;
	xmlHttp.open('GET', strAction, true);

 	xmlHttp.send(null);		
}

/*
-----------------------------------------------------------------------------------
Poll functions
-----------------------------------------------------------------------------------
*/

function checkPollForm()
{
	var err = true;

	var arrChoices = document.getElementsByName("PollChoice");
	for (var i = 0; i < arrChoices.length; i++)
	{
		if (arrChoices[i].checked)
		{
			err = false;
			break;
		}
	}
	
	if (err)
	{
		document.getElementById('cuvPollChoice').style.display = 'block';
		return false;
	}
	else
	{
		document.getElementById('cuvPollChoice').style.display = 'none';
		submitPoll();
		return false;
	}
}

function submitPoll()
{
	var xmlHttp;
	var intIndex;
	
	try
  	{  
  		// Firefox, Opera 8.0+, Safari  
  		xmlHttp=new XMLHttpRequest();  
  	}
	catch (e)
  	{  
  		// Internet Explorer  
  		try
    		{    
    			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");   
    		}
  		catch (e)
    		{
    			try
      			{      	
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
			}
    			catch (e)
      			{      
      				alert("Your browser does not support AJAX!");      
      				return false;      
      			}    
      		} 
      	}
      	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			var strResponse = xmlHttp.responseText;
			
			if (strResponse.indexOf('ERROR:') > -1)
			{
				strResponse = '<span class="ErrorText">' + strResponse.substring(6) + '</span>';
				
				strResponse = strResponse + '';
				WriteLayer('PollData', strResponse);
			}
	  		else
	  		{
	  			//alert(strResponse);
	  			WriteLayer('PollData', strResponse);
	  		}
	  	}
	} 
	
	var strAction = '/services/ajax-poll.asp?';
	strAction = strAction + 'PollID=' + document.pollform.PollID.value;
	
	var arrChoices = document.getElementsByName("PollChoice");
	for(var i=0; i < arrChoices.length; i++)
	{
		if (arrChoices[i].checked)
		{
			//alert('Found it! Value = ' +  arrChoices[i].value);
			strAction = strAction + '&PollChoiceID=' + arrChoices[i].value;
			break;
		}
	}
	
	xmlHttp.open('GET', strAction, true);

 	xmlHttp.send(null);		
}
