// $RCSfile: reg-ajax.js,v $
// @version $Source: /cvs/eeiweb-live/js/reg-ajax.js,v $, $Revision: 1.12 $, $Date: 2008/03/12 09:23:40 $, $State: Exp $

function httpRequest(url, callback) {
    var httpObj = false;
    if (typeof XMLHttpRequest != 'undefined') {
        httpObj = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try{
            httpObj = new ActiveXObject('Msxml2.XMLHTTP');
        } catch(e) {
            try{
                httpObj = new ActiveXObject('iMicrosoft.XMLHTTP');
            } catch(e) {}
        }
    }
    if (!httpObj) return;

    httpObj.onreadystatechange = function() {
        if (httpObj.readyState == 4) { // when request is complete
            callback(httpObj.responseText);
        }
    };
    httpObj.open('GET', url, true);
    httpObj.send(null);
}

function fillSearchResults(JSON) {
		
    // fill with new options from JSON array
    var data = eval(JSON);
    
    var string = '';
    var text = '';
    var ischecked = '';
	var currentorg = $('organisationvalue').value;
	//var oForm = document.forms['profileform'];
	//var currentorg = oForm.organisationvalue.value;
    //var currentorg = document.getElementById('organisationvalue').value;
    
    if(data[0] != 'No Results Found'){
	    for(var i=0,len=data.length;i<len;++i){
		    
		    // split string on !XXX! to get id from company detail table and string
		    var mySplitResult = data[i].split("!XXX!");
		    //alert(mySplitResult[0]+"-"+currentorg);
		    if(mySplitResult[0] == currentorg){
				ischecked = "checked";
			}
			else{
				ischecked = "";	
			}

			string = string + '<input type="radio" id="organisation_' + i + '" name="organisation" value="' + mySplitResult[0] + '" ' + ischecked + '/>&nbsp;' + mySplitResult[1] + '&nbsp;<a href="' + mySplitResult[3] + '.php?iid=' + mySplitResult[0] + '&w=400&h=240" rel="lightbox">edit</a><br/><br/>';
			text = text + '<div id="organisationtext_' + mySplitResult[2] + '">' + mySplitResult[0] + '</div>';
		}
		$('organisationnumber').value = data.length
		//oForm.organisationnumber.value = data.length;
		//document.getElementById('organisationnumber').value = data.length;
	}
	else{
		string = string + 'No Organisation Found<br/><br/>';
	}
	
	string = string + 'Other <input type="text" id="other" name="other" size="20">';
	
	$('organisation').innerHTML = string;
	$('organisationtext').innerHTML = text;
	/*if(document.all) { // IE
		document.all.item('organisation').innerHTML = string;
		document.all.item('organisationtext').innerHTML = text;
	} else {
		document.getElementById('organisation').innerHTML = string;
		document.getElementById('organisationtext').innerHTML = text;
	}*/
    
	/*if(myLightbox) {
		myLightbox.end();
	}*/
						
    /* Re-run Lightbox */
	if(myLightbox) {
		myLightbox.end();
	}
	initLightbox();
}

function fillSearchResultsreg(JSON) {
		
    // fill with new options from JSON array
    var data = eval(JSON);
    
    var string = '';
    var text = '';
    var ischecked = '';
	//var oForm = document.forms['profileform'];
    
    if(data[0] != 'No Results Found'){
		var len=data.length;
	    for(var i=0;i<len;++i){
		    
		    // split string on !XXX! to get id from company detail table and string
		    var mySplitResult = data[i].split("!XXX!");
			mySplitResult[2] = mySplitResult[2].replace('\n\r','');
		    
		    //string = string + '<input type="radio" id="organisation_' + mySplitResult[0] + '" name="organisation" value="' + mySplitResult[0] + '" />&nbsp;' + mySplitResult[1] + '&nbsp;<br/><br/>';
			string = string + '<input type="radio" id="organisation_' + i + '" name="organisation" value="' + mySplitResult[0] + '" />&nbsp;' + mySplitResult[1] + '&nbsp;<br/><br/>';
			text = text + '<div id="organisationtext_' + mySplitResult[0] + '">' + mySplitResult[0] + '</div>';
			
		}
		//oForm.organisationnumber.value = data.length;
		//document.getElementById('organisationnumber').value = data.length;
		$('organisationnumber').value = data.length;		
	}
	else{
		string = string + 'No Organisation Found<br/><br/>';
	}
	
	string = string + 'Other <input type="text" id="other" name="other" size="20">';

	/*if(document.all) { // IE
		document.all.item('organisation').innerHTML = string;
		document.all.item('organisationtext').innerHTML = text;
	} else {
		document.getElementById('organisation').innerHTML = string;
		document.getElementById('organisationtext').innerHTML = text;
	}*/
	$('organisation').innerHTML = string;
	$('organisationtext').innerHTML = text;
	
	$('orgLookupAjaxWait').src = "images/lightbox/blank.gif";
}

/* rich functions */
function ajaxFunction(url,pars) {
	
	var ajaxRequest = new Ajax.Request(url, {
		method: 'get',
		parameters:pars,
		onComplete: responseHandle
	});
}

function responseHandle(requestObject) {
	
	var xmlDoc = requestObject.responseText;
	
	//if(emailcheck > 0){
		//alert("Email address already registered, Please log in");
		//return false;
	//}	
	
}

function onSelectChange() {

	//var oForm = document.forms['profileform'];
	//var organisation = oForm.email.value;
    //var organisation = document.getElementById('email').value;
	var organisation = $('email').value;

    if (organisation != "") {
        httpRequest('js/reg-ajax.php?organisation=' + organisation + '&timestamp=' + new Date().getTime(), fillSearchResults);        
    } else {
        alert("please complete the email field");
        return false;
    }
    
	//oForm.organisationshown.value = 'Y';
    //document.getElementById('organisationshown').value = 'Y';
	$('organisationshown').value = 'Y';
	return false;
}

function onSelectChangereg() {
	
	//var oForm = document.forms['profileform'];
	//var organisation = oForm.email.value;
    //var organisation = document.getElementById('email').value;
	var organisation = $('email').value;

    if (organisation != "") {
		$('orgLookupAjaxWait').src = "images/ajax-loader2.gif";
        httpRequest('js/reg-ajax.php?organisation=' + organisation + '&timestamp=' + new Date().getTime(), fillSearchResultsreg);        
    } else {
        alert("please complete the email field");
        return false;
    }
    
	//oForm.organisationshown.value = 'Y';
    //document.getElementById('organisationshown').value = 'Y';
	//$('organisationshown').value = 'Y';
	return false;
}

function bpLookup(n) {
	var organisation = $('email'+n).value;
//alert('lookup');
	
	if (organisation != "") {
		$('orgLookupAjaxWait'+n).src = "images/ajax-loader2.gif";
		new Ajax.Updater('organisation'+n, 'js/reg-ajax.php', {
						 method: 'get',
						 parameters: 'html=Y&number='+ n +'&organisation=' + organisation + '&timestamp=' + new Date().getTime(),
						 asychnronous: false
						 });
		$('orgLookupAjaxWait'+n).src = "images/lightbox/blank.gif";
        //httpRequest('js/reg-ajax.php?organisation=' + organisation + '&timestamp=' + new Date().getTime(), fillSearchResultsreg);        
    } else {
        alert("please complete the email field");
        return false;
    }
    
	//oForm.organisationshown.value = 'Y';
    //document.getElementById('organisationshown').value = 'Y';
    if($('organisationshown'+n)) {
    	$('organisationshown'+n).value = 'Y';
    }
    
	return false;
}

function bpCompany(n,email){
	var org = $('organisation'+n+'_1');
	
	if (org) {
 //alert(email);
		$('orgLookupAjaxWait'+n).src = "images/ajax-loader2.gif";
		new Ajax.Updater('organisation'+n, 'js/reg-ajax.php', {
						 method: 'get',
						 parameters: 'html=Y&number='+ n +'&id=' + org.value + '&email=' + escape(email) + '&timestamp=' + new Date().getTime(),
						 asychnronous: false
						 });
		$('orgLookupAjaxWait'+n).src = "images/lightbox/blank.gif";
	}
}

// check if reg form filled in correctly when submitted
function onsubmitregform(){
	
	var firstname = $('firstname').value;
	var surname = $('surname').value;
	var email = $('email').value;
	var organisationshown = $('organisationshown').value;
	var organisationnumber = $('organisationnumber').value;
	if($('other')){
		var other = $('other').value;
		var otherset = true;
	}
	else{
		var otherset = false;	
	}
	
	// Check if name field completed
	if(firstname.length == 0){
		alert("Please complete First Name field");
		return false;
	}
	
	// Check if name field completed
	if(surname.length == 0){
		alert("Please complete Last Name field");
		return false;
	}
	
	// Check if email field completed
	if(email.length == 0){
		alert("Please complete Email field");
		return false;
	}
	
	// Check if user has searched for organisation
	if(organisationshown == 'Y'){
		
		// check if user has selected organisation or entered something in the other box
			if(otherset){
				if(other != ''){
					return true;
				}
			}
			
			if(organisationnumber > 0){
					// loop through radio buttons and see if one checked.
				    var total = 0;
				    
				    for (var i = 0; i <= organisationnumber; i++){
						if($('organisation_'+i)){
							if($('organisation_'+i).checked){
								//alert("ATEST"+i);
								$('organisationfinaltext').value = $('organisation_' + i).value;
								//alert(">>>"+document.getElementById('organisation_' + i).value);
								return true;
							}
						}

					}
					// if nothing found alert user
					alert("Please select organisation or type the name of your organisation in the other box");
					return false;				
					
				}
				else{
					alert("Please select organisation or type the name of your organisation in the other box");
					return false;	
				}

	}
	else{
		alert("Please look up your organisation");
		return false;
	}
		
	
}

function onsubmitprofileform(){

	var firstname = $('firstname').value;
	var surname = $('surname').value;
	var email = $('email').value;
	var password1 = $('password1').value;
	var password2 = $('password2').value;	
	var organisationshown = $('organisationshown').value;
	var organisationnumber = $('organisationnumber').value;
	var organisationname = $('organisationname').value;
	var other;
	if($('other')){
		other = $('other').value;
	}
	
	// Check if name field completed
	if(firstname.length == 0){
		alert("Please complete First Name field");
		return false;
	}
	
	// Check if name field completed
	if(surname.length == 0){
		alert("Please complete Last Name field");
		return false;
	}
	
	// Check if email field completed
	if(email.length == 0){
		alert("Please complete Email field");
		return false;
	}
	
	// Check if password fileds match if filled in
	if(password1 != password2){		
		alert("Please check password fileds match");
		return false;
	}
	
		// check if user has selected organisation or entered something in the other box
			//if(organisationname.length > 0){
			//	return true;
			//}
			if($('other') && other.length > 0){
				return true;
			}
			else if(organisationnumber > 0){
				// loop through radio buttons and see if one checked.
			    var total = 0;
				for(var i=0,len=organisationnumber;i<len;++i){
					if($('organisation_'+i).checked) {
						if($('organisation_'+i).checked){
							$('organisationfinaltext').value = $('organisationtext_' + i).innerHTML;
							return true;
						}
					}
				}
				// if nothing found alert user
				alert("Please select organisation or type the name of your organisation in the other box");
				return false;				
				
			}
			else{
				alert("Please select organisation or type the name of your organisation in the other box");
				return false;	
			}		
	
}

Event.observe(window, 'load', function() {
		
    var lookup = $('lookup');
	var register;
    if($('register')){
    	register = $('register').innerHTML;
	}
    
    if(lookup && register == 'Y'){
    	lookup.onclick = onSelectChangereg;                
	}
	else if(lookup){
    	lookup.onclick = onSelectChange;                
	}
	
    var registerform = $('registerform')/*document.getElementById('registerform')*/;
    if(registerform){
    	registerform.onsubmit = onsubmitregform;
	}
	
    var profileform = $('profileform')/*document.getElementById('profileform')*/;
    var submitform = $('submitthis')/*document.getElementById('submitthis')*/;
    if(submitform){
    	submitform.onclick = onsubmitprofileform;
	}	
} );