//handles the ajax request depending on the page
//this script is called upon signup, accounts.html.php, etc.
//implented by : allan

// File needs to be split up into signup stuff and other stuff, like extensor specific stuff.

// Major comment: I think responses should be strings with status codes like 'emailExists' or 'databaseError' or 'emailNotFound'. Maybe include the language message also?

if (window.XMLHttpRequest) {
        http = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
        http = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
	alert('Your browser does not support AJAX. Please update your browser!');
}

var checkuser_ok 	= 0;
var checkemail_ok	= 0;
var checkPass		= 0;
var recheckPassOk	= 0;
var checkcodeOk		= 0;
var title_ok		= 0;
var desc_ok			= 0;

var img='images/loading.gif';

//Sign Up page
//validate email
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){
		   return false
		}
		return true					
	}
//check TAB key press
function KeyCheck(e){
	var KeyID = (window.event) ? event.keyCode : e.keyCode;
	if(KeyID == 9)
	{
		return true;
	}
	else
		return false;
	
}

function delay(id){
	document.getElementById(id).innerHTML = "<img src='"+img+"' alt='loading...' width='16' height='16' style='color:#33cc33'/>";
}

function delay2(id){
	document.getElementById("group"+id).innerHTML = "<img src='"+img+"' alt='loading...' width='16' height='16' style='color:#33cc33'/>";
}

function checkemail(){
	
	var email	= document.getElementById('email').value;
	var check 	= 'email';
	var emailID	= 'email_msg';
	var emailchecker = 0;
	var at="@";
	var dot=".";
	var lat=email.indexOf(at);
	var lstr=email.length;
	var ldot=email.indexOf(dot);

	checkemail_ok	= 0; // we need to reset this first

	if (email.indexOf(at)==-1){
	   emailchecker = 1;
	} 
	if(email.value == '' || email.length == 0){
		delay(emailID);
		document.getElementById("email_msg").innerHTML = '';
		document.getElementById("email_msg").innerHTML = '<span style="color:#ff0000">Email is empty.</span>';
		document.getElementById('email').className = "input2";
		checkemail_ok = 0;
		checksubmit();
	}
	else if(emailchecker == 1){
		delay(emailID);
		document.getElementById("email_msg").innerHTML = '';
		document.getElementById("email_msg").innerHTML = '<span style="color:#ff0000">Invalid Email.</span>';
		document.getElementById('email').className = "input2";
		checkemail_ok = 0;
		checksubmit();
	}
	else{
		delay(emailID);
		var url = "index2.php?task=extensorcheck&check="+check+"&value="+email+"";
		http.open("GET", url, true); 
		http.send(null);
		
		http.onreadystatechange = mailresponse; 
	}
}

function checkuser(){
	var username	= encodeURIComponent(document.getElementById('username').value);
	var check 		= 'user';
	var user_val	= username.value;
	var user_len	= username.length;
	var msgID		= 'user_msg';
	
	checkuser_ok 	= 0;
	
	if(user_val == '' || user_len == 0){
		document.getElementById("user_msg").innerHTML = '';
		document.getElementById("user_msg").innerHTML = '<span style="color:#ff0000">Username is empty.</span>';
		document.getElementById('username').className = "input2";
		checkuser_ok = 0;
		checksubmit();
	}
	else{
		delay(msgID);
		var url = "index2.php?task=extensorcheck&check="+check+"&value="+username+"";
		http.open("GET", url, true); 
		http.send(null);
		http.onreadystatechange = response; 
	}

}

function checkPasslength() {
	var check 		= 'pass1';
	var password 	= encodeURIComponent(document.getElementById('password').value);
	var msgID = 'pass_msg';

	delay(msgID);
	var url = "index2.php?task=extensorcheck&check="+check+"&value="+password+"";
	http.open("GET", url, true); 
	http.send(null);
	
	http.onreadystatechange = passResponse; 
}
function recheckPass(){
	var check		= 'pass2';
	var repass 		= encodeURIComponent(document.getElementById('repassword').value);
	var password 	= encodeURIComponent(document.getElementById('password').value);
	var msgID		= 'pass_msg2';
	var msg;
	
	recheckPassOk	= 0;

	msg=document.getElementById('pass_msg2');
	if (repass!=password) {
		msg.innerHTML="<span style=\"color:ff0000\">Passwords don't match<span>";
	}
	else {
		msg.innerHTML="<img src='images/check.gif' style='width:16px;height:16px' alt='Ok'/>";
		recheckPassOk=1;	
		checksubmit();
	}

	/* Don't need to do complicated, we'll just check if they're the same.
	delay(msgID);
	var url = "index2.php?task=extensorcheck&check="+check+"&repass="+repass+"&password="+password+"";
	http.open("GET", url, true); 
	http.send(null);
	http.onreadystatechange = repassResponse;  
	*/
}

function checkcode(){
	var code  	= document.getElementById('captcha').value;
	var check 	= 'code';
	var url 	= "index2.php?task=extensorcheck&check="+check+"&value="+code+"";
	var msgID	= 'code_msg';
	
	delay(msgID);
	http.open("GET", url, true); 
	http.send(null);
	http.onreadystatechange = coderesponse; 
}

function reload(){
	var check = 'reloadCaptcha';
	var url = "index2.php?task=extensorcheck&check="+check+"";
	http.open("GET", url, true); 
	http.send(null);
	http.onreadystatechange = reloadresponse; 
}
function submitform(){
	var email		= document.getElementById('email').value;
	var username	= encodeURIComponent(document.getElementById('username').value);
	var password	= encodeURIComponent(document.getElementById('password').value);
	var check 		= 'submit';
	var url = "index2.php?task=extensorcheck&check="+check+"&email="+email+"&username="+username+"&password="+password+"";
	http.open("GET", url, true); 
	http.send(null);
	http.onreadystatechange = submitresponse; 
}
function response(){
	 if (http.readyState == 4 && http.status == 200) {
        var xmlObj = http.responseXML;
        var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
        document.getElementById('user_msg').innerHTML = html;
		if (html.indexOf("img")!=-1){
			document.getElementById('username').className = "input1";
			checkuser_ok = 1;
			checksubmit();
		}
		else{
			document.getElementById('username').className = "input2";
		}

    } 
}

function mailresponse(){
	if (http.readyState == 4 && http.status == 200) {
		var xmlObj = http.responseXML;
		var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
        document.getElementById('email_msg').innerHTML = html;
		if (html.indexOf("img")!=-1){
			document.getElementById('email').className = "input1";
			checkemail_ok = 1;
			checksubmit();
		}
		else{
			document.getElementById('email').className = "input2";
		}
    } 
}
function passResponse(){
	
	if (http.readyState == 4 && http.status == 200) {
        var xmlObj = http.responseXML;
        var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
        document.getElementById('pass_msg').innerHTML = html;
		if (html.indexOf("img")!=-1){
			document.getElementById('password').className = "input1";
			checkPass = 1;
			checksubmit();
		}
		else{
			document.getElementById('password').className = "input2";
		}
    } 
}
function repassResponse(){
	
	if (http.readyState == 4 && http.status == 200) {
        var xmlObj = http.responseXML;
        var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
        document.getElementById('pass_msg2').innerHTML = html;
		if (html.indexOf("img")!=-1){
			document.getElementById('repassword').className = "input1";
			recheckPassOk = 1;
			checksubmit();
		}
		else{
			document.getElementById('repassword').className = "input2";
		}
    } 
}
function coderesponse(){
	 if (http.readyState == 4 && http.status == 200) {
        var xmlObj = http.responseXML;
        var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
        document.getElementById('code_msg').innerHTML = html;
		if (html.indexOf("img")!=-1){
			document.getElementById('captcha').className = "input1";
			checkcodeOk = 1;
			checksubmit();
		}
		else{
			document.getElementById('captcha').className = "input2";
		}
    } 
}
function reloadresponse(){
	 if (http.readyState == 4 && http.status == 200) {
        var xmlObj = http.responseXML;
        var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
        document.getElementById('captchaImage').innerHTML = html;
		
    } 
}
function checksubmit(){
	// window.alert('check submit'+checkuser_ok+checkemail_ok+checkPass+recheckPassOk+checkcodeOk);
	if(checkuser_ok == 1 && checkemail_ok == 1 && checkPass == 1 && recheckPassOk == 1 && checkcodeOk == 1){
		document.getElementById('submit').disabled = false;
	}
	else{
		document.getElementById('submit').disabled = true;
	}
}

function submitresponse(){
	if (http.readyState == 4 && http.status == 200) {
        var xmlObj = http.responseXML;
        var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
		if (html.indexOf("Successfully")!=-1){
			document.getElementById('submit_msg').innerHTML = html;
			hideForm();
		}
		else{
			document.getElementById('submit_msg').innerHTML = html;
		}
    } 
}
function hideForm(){
	document.getElementById('formcontainer').style.visibility = "hidden";
}
//call in account.html
//handler for changing user status
function hoverStatus(id){
	
	hoverDiv=document.createElement("div");
	hoverDiv.style.position="absolute";
	hoverDiv.style.visibility="visible";
	hoverDiv.style.top="550px";
	hoverDiv.style.left="535px";
	hoverDiv.style.width="240px";
	hoverDiv.style.height="100px";
	hoverDiv.className="message2";
	hoverDiv.style.zIndex=3;
	hoverDiv.style.border="1px solid #ffffff";
	hoverDiv.style.background="#1e1d1d";
	document.body.appendChild(hoverDiv);
	
	hoverDivTitle=document.createElement("p");
	hoverDivTitle.innerHTML='Change Account Status to this user to:';
	hoverDivTitle.style.position="relative";
	hoverDivTitle.style.fontWeight="bold";
	hoverDivTitle.style.fontFamily="calibre, trebuchet ms, tahoma";
	hoverDivTitle.style.fontSize="12px";
	hoverDivTitle.style.textAlign="left";
	hoverDivTitle.style.color="#ff0000";
	hoverDivTitle.style.top="2px"; 
	hoverDivTitle.style.left="10px"; 
	hoverDivTitle.style.zIndex=4;
	hoverDiv.appendChild(hoverDivTitle);
	
	hoverDivActive=document.createElement("span");
	hoverDivActive.innerHTML="<span onclick=\"setActiveAccount("+id+");hoverDiv.style.visibility='hidden'\">Active</span>"
	hoverDivActive.style.fontFamily="calibre, trebuchet ms, tahoma";
	hoverDivActive.style.position="relative";
	hoverDivActive.style.top="0px"; 
	hoverDivActive.style.left="30px"; 
	hoverDivActive.style.fontSize="12px";
	hoverDivActive.style.color="#ffff00";
	hoverDivActive.style.cursor="pointer";
	hoverDiv.appendChild(hoverDivActive);
	
	hoverDivInactive=document.createElement("span");
	hoverDivInactive.innerHTML="<span onclick=\"setInactiveAccount("+id+");hoverDiv.style.visibility='hidden'\">Inactive</span><br />";
	hoverDivInactive.style.fontFamily="calibre, trebuchet ms, tahoma";
	hoverDivInactive.style.position="relative";
	hoverDivInactive.style.marginTop="0px"; 
	hoverDivInactive.style.left="90px"; 
	hoverDivInactive.style.fontSize="12px";
	hoverDivInactive.style.color="#ffff00";
	hoverDivInactive.style.cursor="pointer";
	hoverDiv.appendChild(hoverDivInactive);

	hoverDivBan=document.createElement("span");
	hoverDivBan.innerHTML="<span onclick=\"banAccount("+id+");hoverDiv.style.visibility='hidden'\">Ban</span>";
	hoverDivBan.style.fontFamily="calibre, trebuchet ms, tahoma";
	hoverDivBan.style.position="relative";
	hoverDivBan.style.marginTop="0px"; 
	hoverDivBan.style.left="30px"; 
	hoverDivBan.style.fontSize="12px";
	hoverDivBan.style.color="#ffff00";
	hoverDivBan.style.cursor="pointer";
	hoverDiv.appendChild(hoverDivBan);
	
	hoverDivDeleted=document.createElement("span");
	hoverDivDeleted.innerHTML="<span onclick=\"deleteAccount("+id+");hoverDiv.style.visibility='hidden'\">Delete</span><br />";
	hoverDivDeleted.style.fontFamily="calibre, trebuchet ms, tahoma";
	hoverDivDeleted.style.position="relative";
	hoverDivDeleted.style.marginTop="0px"; 
	hoverDivDeleted.style.left="104px"; 
	hoverDivDeleted.style.fontSize="12px";
	hoverDivDeleted.style.color="#ffff00";
	hoverDivDeleted.style.cursor="pointer";

	hoverDiv.appendChild(hoverDivDeleted);

	hoverDivClose=document.createElement("p");
	hoverDivClose.innerHTML="<span onclick='hoverDiv.style.visibility=\"hidden\"'>Close</span>";
	hoverDivClose.style.fontFamily="calibre, trebuchet ms, tahoma";
	hoverDivClose.style.position="relative";
	hoverDivClose.style.marginTop="0px"; 
	hoverDivClose.style.left="190px"; 
	hoverDivClose.style.fontSize="12px";
	hoverDivClose.style.color="#ff0000";
	hoverDivClose.style.cursor="pointer";
	hoverDivClose.style.fontWeight="bold";
	hoverDiv.appendChild(hoverDivClose);

	//return true;
}
function setActiveAccount(id){
	var check = 'setActive';

	delay(id);
	var url = "index2.php?task=extensorcheck&check="+check+"&setActive="+id+"";
	http.open("GET", url, true); 
	http.onreadystatechange = function() { setAccountResponse(id) };
	http.send(null);
	
}
function setInactiveAccount(id){
	var check = 'setInactive';
	var myid = id;
	delay(id);
	var url = "index2.php?task=extensorcheck&check="+check+"&setInactive="+id+"";
	http.open("GET", url, true); 

	http.onreadystatechange = function() { setAccountResponse(id) };
	http.send(null);
}
function banAccount(id){
	var check = 'setBan';
	delay(id);
	var url = "index2.php?task=extensorcheck&check="+check+"&setBan="+id+"";
	http.open("GET", url, true); 

	http.onreadystatechange = function() { setAccountResponse(id) };
	http.send(null);
}
function deleteAccount(id){
	var check = 'deleteAccount';
	delay(id);
	var url = "index2.php?task=extensorcheck&check="+check+"&deleteAccount="+id+"";
	http.open("GET", url, true); 

	http.onreadystatechange = function() { deleteRow(id) };
	http.send(null);
	
}
function setAccountResponse(id){
	if (http.readyState == 4){
		if(http.status == 200){
			var xmlObj = http.responseXML;
			var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
			document.getElementById(id).innerHTML = html;
		}
    } 
}
function deleteRow(id){
	var row = 'row' + id;
	if (http.readyState == 4){
		if(http.status == 200){
			var xmlObj = http.responseXML;
			var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
			document.getElementById(id).innerHTML = "Deleted";
		}
    } 
}

//handles the change of user type
function changeGroup(id){
	groupDiv=document.createElement("div");
	groupDiv.style.position="absolute";
	groupDiv.style.visibility="visible";
	groupDiv.style.top="550px";
	groupDiv.style.left="680px";
	groupDiv.style.width="240px";
	groupDiv.style.height="150px";
	groupDiv.className="message2";
	groupDiv.style.zIndex=3;
	groupDiv.style.border="1px solid #ffffff";
	groupDiv.style.background="#1e1d1d";
	document.body.appendChild(groupDiv);
	
	groupDivText=document.createElement("p");
	groupDivText.innerHTML='Change User Group to this user to:';
	groupDivText.style.position="relative";
	groupDivText.style.fontWeight="bold";
	groupDivText.style.fontFamily="calibre, trebuchet ms, tahoma";
	groupDivText.style.fontSize="12px";
	groupDivText.style.textAlign="left";
	groupDivText.style.color="#ff0000";
	groupDivText.style.top="2px"; 
	groupDivText.style.left="10px"; 
	groupDivText.style.zIndex=4;
	groupDiv.appendChild(groupDivText);
	
	groupNormal=document.createElement("span");
	groupNormal.innerHTML="<span onclick=\"setNormal("+id+");groupDiv.style.visibility='hidden'\">Normal User</span><br />"
	groupNormal.style.fontFamily="calibre, trebuchet ms, tahoma";
	groupNormal.style.position="relative";
	groupNormal.style.top="0px"; 
	groupNormal.style.left="30px"; 
	groupNormal.style.fontSize="12px";
	groupNormal.style.color="#ffff00";
	groupNormal.style.cursor="pointer";
	groupDiv.appendChild(groupNormal);
	
	groupSpecial=document.createElement("span");
	groupSpecial.innerHTML="<span onclick=\"setSpecial("+id+");groupDiv.style.visibility='hidden'\">Special User</span><br />"
	groupSpecial.style.fontFamily="calibre, trebuchet ms, tahoma";
	groupSpecial.style.position="relative";
	groupSpecial.style.top="0px"; 
	groupSpecial.style.left="30px"; 
	groupSpecial.style.fontSize="12px";
	groupSpecial.style.color="#ffff00";
	groupSpecial.style.cursor="pointer";
	groupDiv.appendChild(groupSpecial);
	
	groupManager=document.createElement("span");
	groupManager.innerHTML="<span onclick=\"setManager("+id+");groupDiv.style.visibility='hidden'\">Manager Account</span><br />"
	groupManager.style.fontFamily="calibre, trebuchet ms, tahoma";
	groupManager.style.position="relative";
	groupManager.style.top="0px"; 
	groupManager.style.left="30px"; 
	groupManager.style.fontSize="12px";
	groupManager.style.color="#ffff00";
	groupManager.style.cursor="pointer";
	groupDiv.appendChild(groupManager);
	
	groupAdmin=document.createElement("span");
	groupAdmin.innerHTML="<span onclick=\"setAdministrator("+id+");groupDiv.style.visibility='hidden'\">Administrator</span><br />"
	groupAdmin.style.fontFamily="calibre, trebuchet ms, tahoma";
	groupAdmin.style.position="relative";
	groupAdmin.style.top="0px"; 
	groupAdmin.style.left="30px"; 
	groupAdmin.style.fontSize="12px";
	groupAdmin.style.color="#ffff00";
	groupAdmin.style.cursor="pointer";
	groupDiv.appendChild(groupAdmin);
	
	groupSuperAdmin=document.createElement("span");
	groupSuperAdmin.innerHTML="<span onclick=\"setSuperAdministrator("+id+");groupDiv.style.visibility='hidden'\">Super Administrator</span><br />"
	groupSuperAdmin.style.fontFamily="calibre, trebuchet ms, tahoma";
	groupSuperAdmin.style.position="relative";
	groupSuperAdmin.style.top="0px"; 
	groupSuperAdmin.style.left="30px"; 
	groupSuperAdmin.style.fontSize="12px";
	groupSuperAdmin.style.color="#ffff00";
	groupSuperAdmin.style.cursor="pointer";
	groupDiv.appendChild(groupSuperAdmin);
	
	hoverGroupClose=document.createElement("p");
	hoverGroupClose.innerHTML="<span onclick='groupDiv.style.visibility=\"hidden\"'>Close</span>";
	hoverGroupClose.style.fontFamily="calibre, trebuchet ms, tahoma";
	hoverGroupClose.style.position="relative";
	hoverGroupClose.style.marginTop="0px"; 
	hoverGroupClose.style.left="190px"; 
	hoverGroupClose.style.fontSize="12px";
	hoverGroupClose.style.color="#ff0000";
	hoverGroupClose.style.cursor="pointer";
	hoverGroupClose.style.fontWeight="bold";
	groupDiv.appendChild(hoverGroupClose);
}
function setNormal(id){
	var check = 'setNormal';
	var url = "index2.php?task=extensorcheck&check="+check+"&setNormal="+id+"";
	delay2(id)
	http.open("GET", url, true); 
	http.onreadystatechange = function() { setGroupResponse(id) };
	http.send(null);
}
function setSpecial(id){
	var check = 'setSpecial';
	var url = "index2.php?task=extensorcheck&check="+check+"&setSpecial="+id+"";
	delay2(id)
	http.open("GET", url, true); 
	http.onreadystatechange = function() { setGroupResponse(id) };
	http.send(null);
}
function setManager(id){
	var check = 'setManager';
	var url = "index2.php?task=extensorcheck&check="+check+"&setManager="+id+"";
	delay2(id)
	http.open("GET", url, true); 
	http.onreadystatechange = function() { setGroupResponse(id) };
	http.send(null);
}
function setAdministrator(id){
	var check = 'setAdministrator';
	var url = "index2.php?task=extensorcheck&check="+check+"&setAdministrator="+id+"";
	delay2(id)
	http.open("GET", url, true); 
	http.onreadystatechange = function() { setGroupResponse(id) };
	http.send(null);
}
function setSuperAdministrator(id){
	var check = 'setSuperAdministrator';
	var url = "index2.php?task=extensorcheck&check="+check+"&setSuperAdministrator="+id+"";
	delay2(id);
	http.open("GET", url, true); 
	http.onreadystatechange = function() { setGroupResponse(id) };
	http.send(null);
}
function setGroupResponse(id){
	if (http.readyState == 4){
		if(http.status == 200){
			var xmlObj = http.responseXML;
			var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
			document.getElementById("group"+id).innerHTML = html;
		}
    } 
}

//call n edit.html.php
function updateFile(file_id){

	var check	= 'updateFile';
	var title	= document.getElementById('u_title').value;
	var desc 	= document.getElementById('u_desc').value;
	var cat  	= document.getElementById('u_category').value;
	var group  	= document.getElementById('access_group').value;
	delay("update_msg");
	var url = "index2.php?task=extensorcheck&check="+check+"&updateFile="+file_id+"&title="+title+"&desc="+desc+"&cat="+cat+"&group="+group+"";
	http.open("GET", url, true); 
	http.onreadystatechange = updateResponse;
	http.send(null); 
}
function updateTitle(){
	var check	= 'updateTitle';
	var title	= document.getElementById('u_title').value;
	delay("u_title_msg");
	var url = "index2.php?task=extensorcheck&check="+check+"&updateTitle="+title+"";
	http.open("GET", url, true); 
	http.onreadystatechange = updateResponseTitle;
	http.send(null);
}
function updateDesc(){
	var check	= 'updateDesc';
	var desc	= document.getElementById('u_desc').value;
	delay("u_desc_msg");
	var url = "index2.php?task=extensorcheck&check="+check+"&updateDesc="+desc+"";
	http.open("GET", url, true); 
	http.onreadystatechange = updateResponseDesc;
	http.send(null);
}
function updateResponseTitle(){
	if (http.readyState == 4){
		if(http.status == 200){
			var xmlObj = http.responseXML;
			var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
			if (html.indexOf("Title")!=-1){
				document.getElementById("u_title_msg").innerHTML = html;
				title_ok = 1;
				checkUpdateButton();
			}
			else{
				document.getElementById("u_title_msg").innerHTML = "<span color='#33cc33'>Ok</span>" ;
			}
		}
	}
}
function updateResponseDesc(){
	if (http.readyState == 4){
		if(http.status == 200){
			var xmlObj = http.responseXML;
			var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
			if (html.indexOf("Description")!=-1){
				document.getElementById("u_desc_msg").innerHTML = html;
				//checkUpdateButton();
				desc_ok = 1;
				checkUpdateButton();
			}
			else{
				document.getElementById("u_desc_msg").innerHTML = "<span color='#33cc33'>Ok</span>" ;

			}
		}
	}
}
function updateResponse(){
	if (http.readyState == 4){
		if(http.status == 200){
			var xmlObj = http.responseXML;
			var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;


			if(html.indexOf("File")!=-1 || html.indexOf("error")!=-1){
				document.getElementById("u_title_msg").innerHTML = '';
				document.getElementById("u_desc_msg").innerHTML = '';
				document.getElementById("update_msg").innerHTML = html;
			}
			else{
				document.getElementById("update_msg").innerHTML = html;
			}
		}
    } 
}
function checkUpdateButton(){
	if(title_ok != 1 && desc_ok != 1){
		document.getElementById('updateButton').disabled = true;
	}
	else{
		document.getElementById('updateButton').disabled = false;
	}

}
// Creating a new Section
function create_section(){
	var check = 'createSection';
	var section_name = document.getElementById('section_name').value;
	var sectionId	 = document.getElementById('group_section').value;
	var id = 'section_msg';
	delay(id);
	var url = "index2.php?task=extensorcheck&check="+check+"&createSection="+section_name+"&sectionID="+sectionId+"";
	http.open("GET", url, true); 
	http.onreadystatechange = sectionResponse;
	http.send(null);
	
}
function sectionResponse(){
	if (http.readyState == 4){
		if(http.status == 200){
			var xmlObj = http.responseXML;
			var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
			document.getElementById('section_msg').innerHTML = html;
		}
    }
}
//create new category
function create_category(){
	var check = 'createCategory';
	var category_name = document.getElementById('category_name').value;
	var id = 'category_msg';
	delay(id);
	var url = "index2.php?task=extensorcheck&check="+check+"&createCategory="+category_name+"";
	http.open("GET", url, true); 
	http.onreadystatechange = function (){ categoryResponse(id) };
	http.send(null);
	
}
function categoryResponse(id){
	if (http.readyState == 4){
		if(http.status == 200){
			var xmlObj = http.responseXML;
			var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
			document.getElementById(id).innerHTML = html;
		}
    }
}
//edit category
function edit_category(){
	var check = 'editCategory';
	var category_nname = document.getElementById('category_edit').value;
	var category_id	   = document.getElementById('category_group').value;
	var id = 'editcategory_msg';
	delay(id);
	var url = "index2.php?task=extensorcheck&check="+check+"&editCategory="+category_nname+"&categoryId="+category_id+"";
	http.open("GET", url, true); 
	http.onreadystatechange = function (){ categoryResponse(id)};
	http.send(null);
}
//delete Category
function delete_category(){
	var check = 'deleteCategory';
	var category_id	   = document.getElementById('delcategory_group').value;
	var id = 'deletecategory_msg';
	delay(id);
	var url = "index2.php?task=extensorcheck&check="+check+"&deleteCategory="+category_id+"";
	http.open("GET", url, true); 
	http.onreadystatechange = function (){ categoryResponse(id)};
	http.send(null);
}


//added by James

//function use to check the length of a string
function strlen(string){
    return string.length;
}

var fieldFtitle;
var fieldFdesc;

function check_upfile(){
	var upfile = $F('upfile');
	if(strlen(upfile) < 1)	{
		document.getElementById("upfile_error_msg").innerHTML = '<span style="color:#ff0000">Please select a file to upload.</span>';
	}
	else	{
		document.getElementById("upfile_error_msg").innerHTML = "<img src='images/check.gif' style='width:16px;height:16px' alt='Ok'/>";
	}	

}

//check or validate the field title
function check_ftitle(){
	var ftitle = $F('ftitle');
	if(strlen(ftitle) < 1)	{
		document.getElementById("title_error_msg").innerHTML = '<span style="color:#ff0000">Field title is empty. Please provide a valid title.</span>';
		fieldFtitle = false;
	}
	else	{
		document.getElementById("title_error_msg").innerHTML = "<img src='images/check.gif' style='width:16px;height:16px' alt='Ok'/>";
		fieldFtitle = true;
	}
	extensor_title_or_name_checkfield();
}

//check or validate the field description
function check_fdesc(){
	var fdesc = $F('fdesc');
	if(strlen(fdesc) < 1)	{
		document.getElementById("desc_error_msg").innerHTML = '<span style="color:#ff0000">Field description is empty. Please provide a valid description.</span>';
		fieldFdesc = false;
	}
	else	{
		document.getElementById("desc_error_msg").innerHTML = "<img src='images/check.gif' style='width:16px;height:16px' alt='Ok'/>";
		fieldFdesc = true;
	}
	extensor_title_or_name_checkfield();
}

//function use to enable the button if all fields are correct
function extensor_title_or_name_checkfield(){
	if((fieldFtitle == true) && (fieldFdesc == true)){
		document.getElementById('submitBtn').disabled = false;
	}
	else{
		document.getElementById('submitBtn').disabled = true;
	}
}