// JavaScript Document
function getXmlHttpRequestObject(){
	if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}
	else if(window.ActiveXObject){
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	else{
		window.alert("Cannot initialize XmlHttpRequestObject");
	}
}

var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;

function showcontactform(){
	document.getElementById('responsecf_div').style.display = 'none';
	document.getElementById('namecf').value = 'Name';
	document.getElementById('lnamecf').value = 'Last Name';
	document.getElementById('emailcf').value = 'E-Mail';
	document.getElementById('commentcf').value = 'Comments';	
					
	document.getElementById('contactform_div').style.display = '';
}//end function

function advancecontactformsubmit(){
	var name = document.getElementById('nameacf').value;	
	var lname = document.getElementById('lnameacf').value;
	var email = document.getElementById('emailacf').value;	
	var comment = document.getElementById('commentacf').value;	

	if(name == ''){
		alert('Name cannot be empty.');
		return false;
	}//end if	
	else if(email.search(emailRegEx) == -1){
		 alert("Please enter a valid email address.");
		return false;
	}//end else if	
	
	document.getElementById('advcontacttable').style.display = 'none';
	document.getElementById('advcontactprocess').style.display = '';
	 document.advancecontactform.submit(); 
}

function contactformsubmit(){	
	var name = document.getElementById('namecf').value;	
	var lname = document.getElementById('lnamecf').value;
	var email = document.getElementById('emailcf').value;	
	var comment = document.getElementById('commentcf').value;	

	if(name == ''){
		alert('Name cannot be empty.');
		return false;
	}//end if	
	else if(email.search(emailRegEx) == -1){
		 alert("Please enter a valid email address.");
		return false;
	}//end else if	
	
	var data = 'name='+encodeURI(name)+'&lname='+encodeURI(lname)+'&email='+encodeURI(email)+'&comment='+encodeURI(comment);
	var xmlRequest = getXmlHttpRequestObject();
	xmlRequest.open("POST", "ajax/ajax-form.php?act=ctf&sid="+Math.random());
	xmlRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlRequest.onreadystatechange = function() {	
		if(xmlRequest.readyState == 1 || xmlRequest.readyState == 2 || xmlRequest.readyState == 3){
			document.getElementById('contactform_div').style.display = 'none';
			document.getElementById('responsecf_div').innerHTML = 'Processing...';
			document.getElementById('responsecf_div').style.display = '';	
		}
		else if (xmlRequest.readyState == 4 && xmlRequest.status == 200) { // Complete
			var response = xmlRequest.responseXML;
			var responseData = response.documentElement.getElementsByTagName("formresult");		
			switch(responseData[0].getAttribute("resultcode")){
				case '0'://Cannot do invalid process.
					alert(responseData[0].getAttribute("resultstring"));
				break;
				case '1'://success						
					document.getElementById('contactform_div').style.display = 'none';
					document.getElementById('responsecf_div').innerHTML = responseData[0].getAttribute("resultstring")+'<br /><a class="link" href="#" onclick="showcontactform()">Send more Contact</a>';	
					document.getElementById('responsecf_div').style.display = '';						
				break;
				case '2'://insert to database problem
					document.getElementById('responsecf_div').innerHTML = responseData[0].getAttribute("resultstring");
					document.getElementById('responsecf_div').style.display = '';	
				break;
				case '3'://duplicate e-mail address					
				case '4'://invalid e-mail address
				case '5'://Empty Name
				default:
					alert(responseData[0].getAttribute("resultstring"));
					document.getElementById('responsecf_div').style.display = 'none';
					document.getElementById('contactform_div').style.display = '';
				break;
			}//end switch			
		}//end if
	}//end inner function
	xmlRequest.send(data);	
}//end function

function showsubscribeform(){
	document.getElementById('responsescf_div').style.display = 'none';
	document.getElementById('subscribeform_div').style.display = '';
	document.getElementById('emailscf').value = '';
}//end function

function subscribeformsubmit(){
	var email = document.getElementById('emailscf').value;
	if(email.search(emailRegEx) == -1){
		 alert("Please enter a valid email address to subscribe.");
		return false;
	}//end else if	
	
	var data = 'email='+encodeURI(email);
	var xmlRequest = getXmlHttpRequestObject();
	xmlRequest.open("POST", "ajax/ajax-form.php?act=nl&sid="+Math.random());
	xmlRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlRequest.onreadystatechange = function() {		
		if(xmlRequest.readyState == 1 || xmlRequest.readyState == 2 || xmlRequest.readyState == 3){
			document.getElementById('subscribeform_div').style.display = 'none';
			document.getElementById('responsescf_div').innerHTML = 'Processing...';
			document.getElementById('responsescf_div').style.display = '';	
		}
		else if (xmlRequest.readyState == 4 && xmlRequest.status == 200) { // Complete
			var response = xmlRequest.responseXML;
			var responseData = response.documentElement.getElementsByTagName("formresult");		
			switch(responseData[0].getAttribute("resultcode")){
				case '0'://Cannot do invalid process.
					alert(responseData[0].getAttribute("resultstring"));
				break;
				case '1'://success
					document.getElementById('subscribeform_div').style.display = 'none';
					document.getElementById('responsescf_div').innerHTML = responseData[0].getAttribute("resultstring")+'<br /><a class="link" href="#" onclick="showsubscribeform()">More Subscribe</a>';
					document.getElementById('responsescf_div').style.display = '';
				break;
				case '2'://insert to database problem
					document.getElementById('responsescf_div').innerHTML = responseData[0].getAttribute("resultstring");
					document.getElementById('responsescf_div').style.display = '';	
				break;
				case '3'://duplicate e-mail address					
				case '4'://invalid e-mail address
				default:
					alert(responseData[0].getAttribute("resultstring"));
					document.getElementById('responsescf_div').style.display = 'none';
					document.getElementById('subscribeform_div').style.display = '';
				break;
			}//end switch			
		}//end if
	}//end inner function
	xmlRequest.send(data);
}//end function

function checkDefaultVal(elementId,defaultText){
	if(document.getElementById(elementId).value == defaultText){
		document.getElementById(elementId).value = '';	
	}
}

function setDefaultText(elementId,defaultText){
	if(document.getElementById(elementId).value == ''){
		document.getElementById(elementId).value = defaultText;		
	}
}

function getDownloadSubcategory(dlCatId,toEle){
	var xmlRequest = getXmlHttpRequestObject();	
	xmlRequest.open("GET", "ajax/ajax-downloadCat4Subcat.php?dlcatid="+dlCatId+"&sid="+Math.random());
	xmlRequest.onreadystatechange = function() {		
     	if (xmlRequest.readyState == 4 && xmlRequest.status == 200) { // Complete			
			var response = xmlRequest.responseXML;		
			var dlSubData = response.documentElement.getElementsByTagName("dlSub");			
			
			var dlSubSelect = document.getElementById(toEle);
			
			//remove whitespace element
			for (var i = 0; i <dlSubSelect.childNodes.length; i++) {
				if(dlSubSelect.childNodes[0].nodeType != 1){
					dlSubSelect.removeChild(dlSubSelect.childNodes[0]);
				}//end if
			}//end for
			
			//remove other element except the first one
			while(dlSubSelect.childNodes.length > 1){				
					dlSubSelect.removeChild(dlSubSelect.childNodes[1]);								
			}//end while
			
			for (var i = 0; i < dlSubData.length; i++) {
				var dlSubOption = document.createElement('option');				
				dlSubOption.value = dlSubData[i].getAttribute("dbsubid");
				dlSubOption.appendChild(document.createTextNode(dlSubData[i].getAttribute("name")));				
				dlSubSelect.appendChild(dlSubOption);				
			}//end for	
			delete xmlRequest;
			xmlRequest = null;
     	}//end if
	}//end onreadystatechage
	xmlRequest.send(null);
}//end function