var xmlhttp;

//////////////////////////////////////////////////////////
// ajax related common function
//////////////////////////////////////////////////////////
function GetXmlHttpObject(){
	if (window.XMLHttpRequest){
		// code for IE7+, Firefox, Chrome, Opera, Safari
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject){
		// code for IE6, IE5
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}



//////////////////////////////////////////////////////////
// learn keyword ajax functionality
//////////////////////////////////////////////////////////
function ajaxLearnKeyword(whichPressed){
	var message='';	

	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}
	setTimeout("hideDiv('messages')", 3000);
	
	var foreignkeyid = document.getElementById('id');
	var keyword = document.getElementById('keyword');
	if (foreignkeyid == null && keyword == null){
		alert ("Invalid query string(s)");
		return;
	}
	
	// when 'add' button is clicked
	var keywordaddbutton = document.getElementById('keywordaddbutton');
	if (keywordaddbutton != null){
		if (keywordaddbutton.name == whichPressed) {
			// validation
			if (keyword.value == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter a keyword<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
		}
	}
	
	// when 'delete selected' button is clicked
	var deletelist = '';
	var keyworddeletebutton = document.getElementById('keyworddeletebutton');
	if (keyworddeletebutton != null){
		if (keyworddeletebutton.name == whichPressed) {
			var learnkeywords = document.getElementById('learnkeywords');
			if (learnkeywords != null){
				selected = new Array();
				for (var index = 0; index < learnkeywords.options.length; index++){
					if (learnkeywords.options[index].selected){
						selected.push(learnkeywords.options[index].value);
						deletelist += learnkeywords.options[index].value + '|';
					}
				}
				if (deletelist == '') {
					message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing selected to delete<br>';
				}
				if (message.length > 0){
					displayError(message);
					return;
				}
			}
		}
	}
	var fk = foreignkeyid.value;
	var keyword = keyword == null ? '' : keyword.value;
	var url="learn.ajax.keyword.php";
	url=url+"?fk="+fk;
	url=url+"&keyword="+keyword;
	if (deletelist != '') url=url+"&del="+deletelist;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=stateChangedLearnKeyword;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

//////////////////////////////////////////////////////////
// display ajax results list event
//////////////////////////////////////////////////////////
function stateChangedLearnKeyword(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_panel_keyword").innerHTML=xmlhttp.responseText;
	}
}




//////////////////////////////////////////////////////////
// learn category ajax functionality
//////////////////////////////////////////////////////////
function ajaxLearnCategory(whichPressed){
	var message='';	

	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}
	setTimeout("hideDiv('messages')", 3000);
	
	var foreignkeyid = document.getElementById('id');
	var categoryid = document.getElementById('categoryid');
	var subcategoryid = document.getElementById('subcategoryid');
	if (foreignkeyid == null && categoryid == null && subcategoryid == null){
		alert ("Invalid query string(s)");
		return;
	}
	
	// when 'add' button is clicked
	var categoryaddbutton = document.getElementById('categoryaddbutton');
	if (categoryaddbutton != null){
		if (categoryaddbutton.name == whichPressed) {
			// validation
			if (categoryid.value == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select a category<br>';
			}
			if (subcategoryid.value == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select a subcategory<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
		}
	}
	
	// when 'delete selected' button is clicked
	var deletelist = '';
	var categorydeletebutton = document.getElementById('categorydeletebutton');
	if (categorydeletebutton != null){
		if (categorydeletebutton.name == whichPressed) {
			var categories = document.getElementById('categories');
			if (categories != null){
				selected = new Array();
				for (var index = 0; index < categories.options.length; index++){
					if (categories.options[index].selected){
						selected.push(categories.options[index].value);
						deletelist += categories.options[index].value + '|';
					}
				}
				if (deletelist == '') {
					message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing selected to delete<br>';
				}
				if (message.length > 0){
					displayError(message);
					return;
				}
			}
		}
	}
	var fk = foreignkeyid.value;
	var catid = categoryid == null ? 0 : categoryid.value;
	var subcatid = subcategoryid == null ? 0 : subcategoryid.value;
	var url="learn.ajax.category.php";
	url=url+"?fk="+fk;
	url=url+"&catid="+catid;
	url=url+"&subcatid="+subcatid;
	if (deletelist != '') url=url+"&del="+deletelist;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=stateChangedLearnCategory;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

//////////////////////////////////////////////////////////
// display ajax results list event
//////////////////////////////////////////////////////////
function stateChangedLearnCategory(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_panel_category").innerHTML=xmlhttp.responseText;
	}
}





//////////////////////////////////////////////////////////
// learn attribute ajax functionality
//////////////////////////////////////////////////////////
function ajaxLearnAttribute(whichPressed, currform){
	var message='';	

	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}

	var foreignkeyid = document.getElementById('id');
	if (foreignkeyid == null){
		alert ("Invalid query string");
		return;
	}
	setTimeout("hideDiv('messages')", 3000);

	var displayorder = null;
	var attributeid = null;
	
	//----------------------------------------------
	// when 'add' button is clicked
	//----------------------------------------------
	var attributeaddbutton = document.getElementById('attributeaddbutton');
	if (attributeaddbutton != null){
		if (attributeaddbutton.name == whichPressed) {
			attributeid = document.getElementById('attributeid');
			displayorder = document.getElementById('displayorder');
			if (attributeid == null && displayorder == null){
				alert ("Add: Invalid query strings");
				return;
			}
			// validation
			if (attributeid.value == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select an attribute<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
		}
	}
	
	//----------------------------------------------
	// when 'apply changes' button is clicked
	//----------------------------------------------
	var update = false;
	var pk = 0;
	var attributeapplybutton = document.getElementById('attributeapplybutton_' + whichPressed);
	if (attributeapplybutton != null){
		if (document.all || document.getElementById){
			displayorder = document.getElementById('displayorder_' + whichPressed);
			attributeid = document.getElementById('attribute_' + whichPressed);
			if (attributeid == null && displayorder == null){
				alert ("Apply Changes: Invalid query strings");
				return;
			}
			// validation
			if (attributeid.value == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select an attribute<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
			update = true;
			pk = whichPressed;
		}
	}
	//----------------------------------------------
	// when 'delete selected' button is clicked
	//----------------------------------------------
	var deletelist = '';
	var attributedeletebutton = document.getElementById('attributedeletebutton');
	if (attributedeletebutton != null){
		if (attributedeletebutton.name == whichPressed) {
			if (document.all || document.getElementById){
				for(z = 0; z < currform.length; z++){
					if (currform[z].type == 'checkbox'){
						if (currform[z].checked){
							var deleteid = currform[z].id.split("_");
							//alert(currform[z].id);
							if (deleteid[2] != null)
								deletelist += deleteid[2] + '|';
						}
					}
				}
			}
			//alert(deletelist);
			if (deletelist == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing selected to delete<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
		}
	}
	var fk = foreignkeyid.value;
	var order = displayorder == null ? 0 : displayorder.value;
	var attid = attributeid == null ? 0 : attributeid.value;
	var url="learn.ajax.attribute.php";
	url=url+"?fk="+fk;
	url=url+"&attid="+attid;
	url=url+"&displayorder="+order;
	if (update) url=url+"&update="+pk;
	if (deletelist != '') url=url+"&del="+deletelist;
	url=url+"&sid="+Math.random();
	xmlhttp.onreadystatechange=stateChangedLearnAttribute;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

//////////////////////////////////////////////////////////
// display ajax results list event
//////////////////////////////////////////////////////////
function stateChangedLearnAttribute(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_panel_attribute").innerHTML=xmlhttp.responseText;
	}
}




//////////////////////////////////////////////////////////
// learn other ajax functionality
//////////////////////////////////////////////////////////
function ajaxLearnOther(whichPressed, currform){
	var message='';	

	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}

	var foreignkeyid = document.getElementById('id');
	if (foreignkeyid == null){
		alert ("Invalid query string");
		return;
	}
	setTimeout("hideDiv('messages')", 3000);

	var displayorder = null;
	var otherid = null;
	var othervalue = null;
	
	//----------------------------------------------
	// when 'add' button is clicked
	//----------------------------------------------
	var otheraddbutton = document.getElementById('otheraddbutton');
	if (otheraddbutton != null){
		if (otheraddbutton.name == whichPressed) {
			displayorder = document.getElementById('displayorder');
			otherid = document.getElementById('otherid');
			othervalue = document.getElementById('othervalue');
			if (otherid == null && othervalue == null && displayorder == null){
				alert ("Add: Invalid query strings");
				return;
			}
			// validation
			if (otherid.value == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select an other<br>';
			}
			if (othervalue.value == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter value<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
		}
	}

	//----------------------------------------------
	// when 'apply changes' button is clicked
	//----------------------------------------------
	var update = false;
	var otherapplybutton = document.getElementById('otherapplybutton_'+whichPressed);
	if (otherapplybutton != null){
		if (document.all || document.getElementById){
			displayorder = document.getElementById('displayorder_' + whichPressed);
			otherid = document.getElementById('other_' + whichPressed);
			othervalue = document.getElementById('othervalue_' + whichPressed);
			if (otherid == null && othervalue == null && displayorder == null){
				alert ("Apply Changes: Invalid query strings");
				return;
			}
			// validation
			if (otherid.value == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select an other<br>';
			}
			if (othervalue.value == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter value<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
			update = true;
			pk = whichPressed;
		}
	}
	
	//----------------------------------------------
	// when 'delete selected' button is clicked
	//----------------------------------------------
	var deletelist = '';
	var otherdeletebutton = document.getElementById('otherdeletebutton');
	if (otherdeletebutton != null){
		if (otherdeletebutton.name == whichPressed) {
			if (document.all || document.getElementById){
				for(z = 0; z < currform.length; z++){
					if (currform[z].type == 'checkbox'){
						if (currform[z].checked){
							var deleteid = currform[z].id.split("_");
							//alert(currform[z].id);
							if (deleteid[2] != null)
								deletelist += deleteid[2] + '|';
						}
					}
				}
			}
			//alert(deletelist);
			if (deletelist == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing selected to delete<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
		}
	}
	var fk = foreignkeyid.value;
	var displayorder = displayorder == null ? 0 : displayorder.value;
	var otherid = otherid == null ? 0 : otherid.value;
	var othervalue = othervalue == null ? "" : othervalue.value;
	var url="learn.ajax.other.php";
	url=url+"?fk="+fk;
	url=url+"&displayorder="+displayorder;
	url=url+"&otherid="+otherid;
	url=url+"&othervalue="+othervalue;
	if (update) url=url+"&update="+pk;
	if (deletelist != '') url=url+"&del="+deletelist;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=stateChangedLearnOther;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

//////////////////////////////////////////////////////////
// display ajax results list event
//////////////////////////////////////////////////////////
function stateChangedLearnOther(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_panel_other").innerHTML=xmlhttp.responseText;
	}
}




//////////////////////////////////////////////////////////
// learn image ajax functionality
//////////////////////////////////////////////////////////
function ajaxLearnImage(whichPressed, currform){
	var message='';	

	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}

	var foreignkeyid = document.getElementById('id');
	if (foreignkeyid == null){
		alert ("Invalid query string");
		return;
	}
	setTimeout("hideDiv('messages')", 3000);

	var isprimary = null;
	var note = null;

	//----------------------------------------------
	// NOTE: We cannot implement add image feature at javascript level
	// it has to be down at server side only because we cannot get the 
	// file size etc etc for cross browser
	//----------------------------------------------

	//----------------------------------------------
	// when 'apply changes' button is clicked
	//----------------------------------------------
	var update = false;
	var imageapplybutton = document.getElementById('imageapplybutton_'+whichPressed);
	if (imageapplybutton != null){
		if (document.all || document.getElementById){
			isprimary = document.getElementById('isprimary_' + whichPressed);
			note = document.getElementById('note_' + whichPressed);
			if (note == null && isprimary == null){
				alert ("Apply Changes: Invalid query strings");
				return;
			}
			update = true;
			pk = whichPressed;
		}
	}
	
	//----------------------------------------------
	// when 'delete selected' button is clicked
	//----------------------------------------------
	var deletelist = '';
	var deleteimagebutton = document.getElementById('deleteimagebutton');
	if (deleteimagebutton != null){
		if (deleteimagebutton.name == whichPressed) {
			if (document.all || document.getElementById){
				for(z = 0; z < currform.length; z++){
					if (currform[z].type == 'checkbox'){
						if (currform[z].checked){
							var deleteid = currform[z].id.split("_");
							//alert(currform[z].id);
							if (deleteid[2] != null)
								deletelist += deleteid[2] + '|';
						}
					}
				}
			}
			//alert(deletelist);
			if (deletelist == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing selected to delete<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
		}
	}
	var fk = foreignkeyid.value;
	var isprimary = isprimary == null ? 0 : (isprimary.checked ? 1 : 0);
	var note = note == null ? "" : note.value;
	var url="learn.ajax.image.php";
	url=url+"?fk="+fk;
	url=url+"&isprimary="+isprimary;
	url=url+"&note="+note;
	if (update) url=url+"&update="+pk;
	if (deletelist != '') url=url+"&del="+deletelist;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=stateChangedLearnImage;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

//////////////////////////////////////////////////////////
// display ajax results list event
//////////////////////////////////////////////////////////
function stateChangedLearnImage(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_panel_image").innerHTML=xmlhttp.responseText;
	}
}





//////////////////////////////////////////////////////////
// learn video ajax functionality
//////////////////////////////////////////////////////////
function ajaxLearnVideo(whichPressed, currform){
	var message='';	

	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}

	var foreignkeyid = document.getElementById('id');
	if (foreignkeyid == null){
		alert ("Invalid query string");
		return;
	}
	setTimeout("hideDiv('messages')", 3000);

	var note = null;

	//----------------------------------------------
	// NOTE: We cannot implement add video feature at javascript level
	// it has to be down at server side only because we cannot get the 
	// file size etc etc for cross browser
	//----------------------------------------------

	//----------------------------------------------
	// when 'apply changes' button is clicked
	//----------------------------------------------
	var update = false;
	var videoapplybutton = document.getElementById('videoapplybutton_'+whichPressed);
	if (videoapplybutton != null){
		if (document.all || document.getElementById){
			note = document.getElementById('note_' + whichPressed);
			if (note == null){
				alert ("Apply Changes: Invalid query strings");
				return;
			}
			update = true;
			pk = whichPressed;
		}
	}
	
	//----------------------------------------------
	// when 'delete selected' button is clicked
	//----------------------------------------------
	var deletelist = '';
	var videodeletebutton = document.getElementById('videodeletebutton');
	if (videodeletebutton != null){
		if (videodeletebutton.name == whichPressed) {
			if (document.all || document.getElementById){
				for(z = 0; z < currform.length; z++){
					if (currform[z].type == 'checkbox'){
						if (currform[z].checked){
							var deleteid = currform[z].id.split("_");
							//alert(currform[z].id);
							if (deleteid[2] != null)
								deletelist += deleteid[2] + '|';
						}
					}
				}
			}
			//alert(deletelist);
			if (deletelist == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing selected to delete<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
		}
	}
	var fk = foreignkeyid.value;
	var note = note == null ? "" : note.value;
	var url="learn.ajax.video.php";
	url=url+"?fk="+fk;
	url=url+"&note="+note;
	if (update) url=url+"&update="+pk;
	if (deletelist != '') url=url+"&del="+deletelist;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=stateChangedLearnVideo;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

//////////////////////////////////////////////////////////
// display ajax results list event
//////////////////////////////////////////////////////////
function stateChangedLearnVideo(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_panel_video").innerHTML=xmlhttp.responseText;
	}
}





//////////////////////////////////////////////////////////
// learn supplement ajax functionality
//////////////////////////////////////////////////////////
function ajaxLearnSupplement(whichPressed, currform){
	var message='';	

	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}

	var foreignkeyid = document.getElementById('id');
	if (foreignkeyid == null){
		alert ("Invalid query string");
		return;
	}
	setTimeout("hideDiv('messages')", 3000);

	var note = null;

	//----------------------------------------------
	// NOTE: We cannot implement add supplement feature at javascript level
	// it has to be down at server side only because we cannot get the 
	// file size etc etc for cross browser
	//----------------------------------------------

	//----------------------------------------------
	// when 'apply changes' button is clicked
	//----------------------------------------------
	var update = false;
	var supplementapplybutton = document.getElementById('supplementapplybutton_'+whichPressed);
	if (supplementapplybutton != null){
		if (document.all || document.getElementById){
			note = document.getElementById('note_' + whichPressed);
			if (note == null){
				alert ("Apply Changes: Invalid query strings");
				return;
			}
			update = true;
			pk = whichPressed;
		}
	}
	
	//----------------------------------------------
	// when 'delete selected' button is clicked
	//----------------------------------------------
	var deletelist = '';
	var supplementdeletebutton = document.getElementById('supplementdeletebutton');
	if (supplementdeletebutton != null){
		if (supplementdeletebutton.name == whichPressed) {
			if (document.all || document.getElementById){
				for(z = 0; z < currform.length; z++){
					if (currform[z].type == 'checkbox'){
						if (currform[z].checked){
							var deleteid = currform[z].id.split("_");
							//alert(currform[z].id);
							if (deleteid[2] != null)
								deletelist += deleteid[2] + '|';
						}
					}
				}
			}
			//alert(deletelist);
			if (deletelist == '') {
				message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nothing selected to delete<br>';
			}
			if (message.length > 0){
				displayError(message);
				return;
			}
		}
	}
	var fk = foreignkeyid.value;
	var note = note == null ? "" : note.value;
	var url="learn.ajax.supplement.php";
	url=url+"?fk="+fk;
	url=url+"&note="+note;
	if (update) url=url+"&update="+pk;
	if (deletelist != '') url=url+"&del="+deletelist;
	url=url+"&sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=stateChangedLearnSupplement;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

//////////////////////////////////////////////////////////
// display ajax results list event
//////////////////////////////////////////////////////////
function stateChangedLearnSupplement(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_panel_supplement").innerHTML=xmlhttp.responseText;
	}
}





//////////////////////////////////////////////////////////
// display ajax results
//////////////////////////////////////////////////////////
function ajaxLearnStats(){
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}
	setTimeout("hideDiv('messages')", 3000);
	var url="learn.ajax.stats.php";
	url=url+"?sid="+Math.random();
	//alert(url);
	xmlhttp.onreadystatechange=stateChangedLearnStats;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}
//////////////////////////////////////////////////////////
// display ajax results event
//////////////////////////////////////////////////////////
function stateChangedLearnStats(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_panel_learn_stats").innerHTML=xmlhttp.responseText;
	}
}





//////////////////////////////////////////////////////////
// display ajax results
//////////////////////////////////////////////////////////
function getLearnLatest(){
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}
	// check to see if the div is expanded. if so, update ajax panel
	var lnklatestlearn = document.getElementById('lnklatestlearn');
	if (lnklatestlearn != null){
		if (lnklatestlearn.style.display != 'none'){
			var url="learn.ajax.latest.php";
			url=url+"?sid="+Math.random();
			//alert(url);
			xmlhttp.onreadystatechange=stateChangedLearnLatest;
			xmlhttp.open("GET",url,true);
			xmlhttp.send(null);
		}
	}
}
//////////////////////////////////////////////////////////
// display ajax results event
//////////////////////////////////////////////////////////
function stateChangedLearnLatest(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_panel_learn_latest").innerHTML=xmlhttp.responseText;
	}
}



//////////////////////////////////////////////////////////
// validate learn signup
//////////////////////////////////////////////////////////
function validateLearnSignup(frm) {
	var message='';

	if (frm.firstname.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter first name<br>';
	}
	if (frm.lastname.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter last name<br>';
	}
	if (frm.nickname.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter your username/nickname<br>';
	}
	if (frm.emailaddress.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter your email address<br>';
	}
	else {
		if (checkEmail(frm.emailaddress.value ) == false)
			message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invalid email address format<br>';
	}
	if (frm.emailaddress2.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter your verify email address<br>';
	}
	else {
		if (checkEmail(frm.emailaddress2.value ) == false)
			message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invalid verify email address format<br>';
	}
	if (frm.emailaddress.value != '' && frm.emailaddress2.value != '') {
		if (frm.emailaddress.value != frm.emailaddress2.value)
			message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Your email address and verify email address are different<br>';
	}
	if (frm.password1.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter your password<br>';
	}
	if (frm.password2.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter your verify password<br>';
	}
	if (frm.password1.value != '' && frm.password1.value != '') {
		if (frm.password1.value != frm.password2.value)
			message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Your password and verify password are different<br>';
	}
	if (frm.countryid.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter country of residence<br>';
	}
	if (frm.keywords.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter listing keyword(s)<br>';
	}
	if (frm.header.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter your listing header<br>';
	}
	if (frm.description.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter your listing description<br>';
	}
	if (frm.hasreadterms.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You have not read and agreed to the Terms and Conditions of use<br>';
	}
	if (frm.security_code.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter the validation code<br>';
	}
	if (message.length == 0){
		// submitOnce(frm);
	}
	return displayError(message);
}


//////////////////////////////////////////////////////////
// validate learn search
//////////////////////////////////////////////////////////
function validateLearnSearch(frm) {
	var message='';
	
	if (frm.keywords.value == '') {
		message+='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter what you want to learn<br>';
	}
	if (message.length == 0){
		// submitOnce(frm);
	}
	return displayError(message);
}
//////////////////////////////////////////////////////////
// learn search ajax functionality
//////////////////////////////////////////////////////////
function ajaxLearnSearch(){
	var message='';	

	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null){
		alert ("Browser does not support HTTP Request");
		return;
	}
	setTimeout("hideDiv('messages')", 3000);
	
	var url="learn.ajax.search.php";
	url=url+"?sid="+Math.random();
	xmlhttp.onreadystatechange=stateChangedLearnSearch;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

//////////////////////////////////////////////////////////
// display ajax results list event
//////////////////////////////////////////////////////////
function stateChangedLearnSearch(){
	if (xmlhttp.readyState==4) {
		document.getElementById("ajax_learn_search").innerHTML=xmlhttp.responseText;
	}
}





