/**
 * @author Steven Lavine
 */

var trialcode_verified = false;
function send_trial_code() {
	var email_format = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var number_format = /^[0-9]+$/;
	if (email_format.test(document.getElementById('email_address').value) == false) {
		alert('Please enter a valid email address.');
	}
	else if (document.getElementById('company_number').value == '') {
		alert('Please enter a valid company registration number.');
	}
	else if (document.getElementById('company_name').value == '') {
		alert('Please enter a valid company name.');
	}
	else if (document.getElementById('title').value == '') {
		alert('Please enter your salutation.');
	}
	else if (document.getElementById('position').value == '') {
		alert('Please enter your company position.');
	}
	else if (document.getElementById('first_name').value == '' || document.getElementById('last_name').value == '') {
		alert('Please enter a valid contact name.');
	}
	else if (number_format.test(document.getElementById('contact_tel').value) == false) {
		alert('Please enter a valid telephone number.');
	}
	else if (document.getElementById('address_1').value == '' || document.getElementById('city').value == ''
		|| document.getElementById('postcode').value == '' || document.getElementById('country').value == '') {
		alert('Please enter a valid company address.');
	}
	else {
		document.getElementById('register_form').action = '/customer/trialcode';
		document.getElementById('register_form').submit();
	}
}

/*

*/
function search_company(company_name,page) {
	if (company_name.value == '') {
		alert('Please enter a valid company name.');
	}
	else {
		new Ajax.Request('/search/ajax/company/'+escape(company_name.value)+'/pageNumber/'+page,
			{
				method:'get',
    		onSuccess: function(transport) {
			  	var companies_found = transport.responseText;
				var popup = document.getElementById('popup');
					
				company_details = new Array();
                var popup_inner = '';
			  	var json_companies_found = companies_found.evalJSON();
                var totalCount = Math.round(json_companies_found.totalcount / 10);
                if (totalCount > 1) {
                    var pagination = '';
                    for (i=1; i<=totalCount; i++) {
                        pagination = pagination+' <a href="javascript:void(0);" onclick="search_company(document.getElementById(\'company_name_search_box\'),\''+i+'\')">'+i+'</a>';
                    }
                    popup_inner = popup_inner + '<div style="text-align: center">Total Companies Found: '+json_companies_found.totalcount+'<br />Pages: '+pagination+'</div>';
                }
                var popup_contents = document.getElementById('popup_contents');
				popup_inner = popup_inner + '<table cellpadding="4" cellspacing="0" border="0" style="width: 618px; margin: 20px; border: 1px solid #f00; background-color: #efefef;">';
				popup_inner = popup_inner + '<thead><tr>';
				popup_inner = popup_inner + '<th>Company Name</th><th>Company No.</th><th>Postcode</th><th>&nbsp;</th>';
				popup_inner = popup_inner + '</thead><tbody>';
				
                	for (i=0; i<json_companies_found.company_results.length; i++) {
						company_details[i] = json_companies_found.company_results[i];
						popup_inner = popup_inner + '<tr class="popup_row">'
							+ '<td>'+company_details[i][0]+'</td>'
							+ '<td>'+company_details[i][1]+'</td>'
							+ '<td>'+company_details[i][6]+'</td>'
							+ '<td class="continue"><a href="javascript:void(0);" onclick="populate_company_details(\''+i+'\');">'
							+ '<img src="/images/template/buttons/silver/confirm.png" alt="This is my company!" />'
							+ '</a></td></tr>';
					}
					popup_inner = popup_inner + '</tbody></table>';
					popup_contents.innerHTML = popup_inner;
					popup.style.display = 'block';
	    	},
    		onFailure: function(){ alert('Something went wrong...') }
			}
	  );
	}
}

function signup_search_company(company_name) {
	if (company_name.value == '') {
		alert('Please enter a valid company name.');
	}
	else {
		new Ajax.Request('/search/ajax/company/'+escape(company_name.value),
			{
				method:'get',
    		onSuccess: function(transport) {
			  	var companies_found = transport.responseText;
					var popup = document.getElementById('popup');
					var popup_contents = document.getElementById('popup_contents');
					var popup_inner = '<table cellpadding="4" cellspacing="0" border="0" style="width: 618px; margin: 20px; border: 1px solid #f00; background-color: #efefef;">';
					popup_inner = popup_inner + '<thead><tr>';
					popup_inner = popup_inner + '<th>Company Name</th><th>Company No.</th><th>Postcode</th><th>&nbsp;</th>';
					popup_inner = popup_inner + '</thead><tbody>';
					company_details = new Array();
			  	var json_companies_found = companies_found.evalJSON();
					for (i=0; i<json_companies_found.company_results.length; i++) {
						company_details[i] = json_companies_found.company_results[i];
						popup_inner = popup_inner + '<tr class="popup_row">'
							+ '<td>'+company_details[i][0]+'</td>'
							+ '<td>'+company_details[i][1]+'</td>'
							+ '<td>'+company_details[i][6]+'</td>'
							+ '<td class="continue"><a href="javascript:void(0);" onclick="signup_populate_company_details(\''+i+'\');document.signup_form.submit();">'
							+ '<img src="/images/template/buttons/silver/confirm.png" alt="This is my company!" />'
							+ '</a></td></tr>';
					}
					popup_inner = popup_inner + '</body></table>';
					popup_contents.innerHTML = popup_inner;
					popup.style.display = 'block';
	    	},
    		onFailure: function(){ alert('Something went wrong...') }
			}
	  );
	}
}

var company_details = new Array();

/*

*/
function populate_company_details(i) {
	var popup = document.getElementById('popup');
	var contact_details = document.getElementById('contact_details_block');
	popup.style.display = 'none';
	contact_details.style.display = 'block';
	document.getElementById('company_name').value = company_details[i][0];
	document.getElementById('company_number').value = company_details[i][1];
	document.getElementById('address_1').value = company_details[i][3];
	document.getElementById('city').value = company_details[i][4];
	document.getElementById('county').value = company_details[i][5];
	document.getElementById('postcode').value = company_details[i][6];
	document.getElementById('country').value = company_details[i][2];

	document.getElementById('request_username').style.display = 'block';
	document.getElementById('register_step1').style.display = 'none';
	document.getElementById('company_name_search').style.display = 'none';
	document.getElementById('advert').src = '/images/template/adverts/registration_step1a.png';
}
function signup_populate_company_details(i) {
	var popup = document.getElementById('popup');
	popup.style.display = 'none';
	document.getElementById('company_name').value = company_details[i][0];
	document.getElementById('company_number').value = company_details[i][1];
	document.getElementById('address_1').value = company_details[i][3];
	document.getElementById('city').value = company_details[i][4];
	document.getElementById('county').value = company_details[i][5];
	document.getElementById('postcode').value = company_details[i][6];
	document.getElementById('country').value = company_details[i][2];
}

/*

*/
function check_credentials() {
	var username = document.getElementById('register_username');
	var password = document.getElementById('register_password');
	var trialcode = document.getElementById('trial_code');
	if (username.value == '') {
  	alert('The username must be entered.');
  }
  else if (password.value == '') {
  	alert('The password must be entered.');
  }
  else if (trialcode.value == '') {
  	alert('The trial code must be entered.');
  }
  else {
  	document.getElementById('register_form').action = '/customer/trialcode2';
  	document.getElementById('register_form').submit();
  }
}

/*

*/
function load_step2() {
	var username = document.getElementById('register_username');
	var password = document.getElementById('register_password');
	var trialcode = document.getElementById('trial_code');
	
    if (trialcode.value == '') {
        window.location.href = '/customer/register';
    }
	else if (document.getElementById('first_name').value == '' || document.getElementById('last_name').value == '' || document.getElementById('email_address').value == '') {
		document.getElementById('register_step1').style.display = 'none';
		document.getElementById('contact_details').style.display = 'block';
		document.getElementById('contact_details_block').style.display = 'block';
		document.getElementById('step2').style.display = 'none';
        document.getElementById('continue_to_step2').style.display = 'block';
        if (document.getElementById('company_name').value=='') {
             document.getElementById('company_name_search').style.display='none';
        }
        document.getElementById('register_step1_tab').className = 'register_steps_selected';
		document.getElementById('register_step2_tab').className = 'register_steps';
		document.getElementById('register_step3_tab').className = 'register_steps';
		document.getElementById('register_step4_tab').className = 'register_steps';
	}
	else {
		document.getElementById('register_step1_tab').className = 'register_steps';
		document.getElementById('register_step2_tab').className = 'register_steps_selected';
		document.getElementById('register_step3_tab').className = 'register_steps';
		document.getElementById('register_step4_tab').className = 'register_steps';
		document.getElementById('contact_details').style.display = 'none';
		document.getElementById('step2').style.display = 'block';
		document.getElementById('step4').style.display = 'none';
		document.getElementById('step3').style.display = 'none';
	}
}

function load_step1() {
	var username = document.getElementById('register_username');
	var password = document.getElementById('register_password');
	var trialcode = document.getElementById('trial_code');
    if (trialcode_verified == false) {
        window.location.href = '/customer/register';
    }
    else {
        document.getElementById('register_step1').style.display = 'none';
        document.getElementById('contact_details').style.display = 'block';
    	document.getElementById('contact_details_block').style.display = 'block';
    	document.getElementById('step2').style.display = 'none';
        document.getElementById('step4').style.display = 'none';
		document.getElementById('step3').style.display = 'none';
        document.getElementById('register_step1_tab').className = 'register_steps_selected';
		document.getElementById('register_step2_tab').className = 'register_steps';
		document.getElementById('register_step3_tab').className = 'register_steps';
		document.getElementById('register_step4_tab').className = 'register_steps';
    }
}

/*

*/
function search_monitored_company(company_name,company_number,country,pageNumber) {

	if (company_name == '' && company_number == '') {
		alert('Please enter a valid company name or number.');
	}
	else {
		var popup = document.getElementById('popup');
		var popup_contents = document.getElementById('popup_contents');
		popup.style.display = 'block';
		popup_contents.innerHTML = '<p style="text-align: center;">Loading</p>';

		new Ajax.Request('/search/ajax2/company/'+escape(company_name)+'/pageNumber/'+pageNumber+'/number/'+escape(company_number)+'/country/'+escape(country),
			{
				method:'get',
    		onSuccess: function(transport) {
			  	var companies_found = transport.responseText;
					var json_companies_found = companies_found.evalJSON();
					var popup_inner = json_companies_found.pagination+'<table cellpadding="4" cellspacing="0" border="0" style="width: 100%;">';
					popup_inner = popup_inner + '<thead><tr>';
					popup_inner = popup_inner + '<th>Company Name</th><th>Company No.</th><th>Postcode</th><th>&nbsp;</th>';
					popup_inner = popup_inner + '</thead><tbody>';
					company_details = new Array();
					for (i=0; i<json_companies_found.company_results.length; i++) {
						company_details[i] = json_companies_found.company_results[i];
						popup_inner = popup_inner + '<tr class="popup_row">'
							+ '<td>'+company_details[i][0]+'</td>'
							+ '<td>'+company_details[i][1]+'</td>'
							+ '<td>'+company_details[i][6]+'</td>'
							+ '<td><a href="javascript:void(0);" onclick="populate_company_table(\''+i+'\', 0);">'
							+ '<img src="/images/template/buttons/silver/add.png" alt="Add" />'
							+ '</a></td></tr>';
					}
					popup_inner = popup_inner + '</body></table>';
					popup_contents.innerHTML = popup_inner;
	    	},
    		onFailure: function(){ alert('Something went wrong...') }
			}
	  );
	}
}
function populate_company_table(i, fulltable) {

	var company_number = company_details[i][1];
	var company_table = document.getElementById('monitored_companies_table');
	var table_body = company_table.getElementsByTagName('tbody')[0];
	var table_row = company_table.getElementsByTagName('tr').length;
	new Ajax.Request('/monitor/ajax/company/' + escape(company_number), {
  	method: 'get',
  	onSuccess: function(transport){
  		var company_row = transport.responseText;
  		var json_company_row = company_row.evalJSON();
			if (json_company_row['status'] == 'Not Monitored') {
  			var newTR = document.createElement('tr');
  			var newTD = document.createElement('td');
  			newTD.innerHTML = company_details[i][0];
  			newTR.appendChild(newTD);
  			newTD = document.createElement('td');
  			newTD.innerHTML = company_details[i][1]
				+'<input type="hidden" name="companies_monitored[]" value="'
				+company_details[i][1]+'" />'
				+'<input type="hidden" name="names_monitored[]" value="'
				+escape(company_details[i][0])+'" />';
  			newTR.appendChild(newTD);
			if(fulltable !=0) {
	  			newTD = document.createElement('td');
  				newTD.innerHTML = '<a href="javascript:void(0);" onclick="load_fragment_into_popup();">N/A</a>';
  				newTR.appendChild(newTD);
  				newTD = document.createElement('td');
  				newTD.innerHTML = '&nbsp;';
  				newTR.appendChild(newTD);
  				newTD = document.createElement('td');
  				newTD.innerHTML = '&nbsp;';
  				newTR.appendChild(newTD);
			}
			newTD = document.createElement('td');
  			newTD.innerHTML = '<a href="javascript:void(0);" onclick="document.getElementById(\'monitored_companies_table\').deleteRow('+table_row+');">Remove</a>';
  			newTR.appendChild(newTD);
  			table_body.appendChild(newTR);
  		}
  		else {
				var newTR = document.createElement('tr');
  			var newTD = document.createElement('td');
  			newTD.innerHTML = company_details[i][0];
  			newTR.appendChild(newTD);
  			newTD = document.createElement('td');
  			newTD.innerHTML = company_details[i][1]
				+'<input type="hidden" name="companies_monitored[]" value="'
				+company_details[i][1]+'" />';
  			newTR.appendChild(newTD);
			if(fulltable != 0) {
  				newTD = document.createElement('td');
					if (json_company_row['alert_score'] != '0') {
						newTD.innerHTML = json_company_row['alert_score'];
					}
					else {
						newTD.innerHTML = '<a href="javascript:void(0);" onclick="load_fragment_into_popup();">N/A</a>';
					}
  				newTR.appendChild(newTD);
  				newTD = document.createElement('td');
  				newTD.innerHTML = '&nbsp;';
  				newTR.appendChild(newTD);
  				newTD = document.createElement('td');
  				newTD.innerHTML = json_company_row['notes'];
  				newTR.appendChild(newTD);
			}
			newTD = document.createElement('td');
  			newTD.innerHTML = '<a href="javascript:void(0);" onclick="document.getElementById(\'monitored_companies_table\').deleteRow('+table_row+');">Remove</a>';
  			newTR.appendChild(newTD);
  			table_body.appendChild(newTR);
  		}
  		document.getElementById('popup').style.display = 'none';
			document.getElementById('company_name_search_box2').value = '';
			document.getElementById('company_number_search').value = '';
  	},
  	onFailure: function(){
  		alert('Something went wrong...')
  	}
  });
}

function go_to_step3() {
	var company_table = document.getElementById('monitored_companies_table');
	if (company_table.getElementsByTagName('tr').length > 1) {
  	document.getElementById('contact_details_block').style.display = 'none';
  	document.getElementById('request_username').style.display = 'none';
  	document.getElementById('register_step1').style.display = 'none';
  	document.getElementById('company_name_search').style.display = 'none';
  	document.getElementById('step2').style.display = 'none';
  	document.getElementById('register_step1_tab').className = 'register_steps';
  	document.getElementById('register_step2_tab').className = 'register_steps';
  	document.getElementById('register_step3_tab').className = 'register_steps_selected';
  	document.getElementById('register_step4_tab').className = 'register_steps';
  	document.getElementById('contact_details').style.display = 'none';
  	document.getElementById('step3').style.display = 'block';
  	document.getElementById('step4').style.display = 'none';
  	document.getElementById('advert').src = '/images/template/adverts/registration_step3.png';
  }
	else {
		alert('You must choose some companies to monitor.');
		load_step2();
	}
}

function load_terms() {
	new Ajax.Request('/index/ajax/page/Terms_and_Conditions',
		{
			method:'get',
   		onSuccess: function(transport) {
		  	var terms_and_conditions = transport.responseText;
				document.getElementById('terms_and_conditions').innerHTML = terms_and_conditions;
    	},
   		onFailure: function(){ alert('Something went wrong...') }
		}
  );
}

function go_to_step4() {
	if (document.getElementById('terms_accepted').checked == true) {
		document.getElementById('contact_details_block').style.display = 'none';
		document.getElementById('request_username').style.display = 'none';
		document.getElementById('register_step1').style.display = 'none';
		document.getElementById('company_name_search').style.display = 'none';
		document.getElementById('step2').style.display = 'none';
		document.getElementById('register_step1_tab').className = 'register_steps';
		document.getElementById('register_step2_tab').className = 'register_steps';
		document.getElementById('register_step3_tab').className = 'register_steps';
		document.getElementById('register_step4_tab').className = 'register_steps_selected';
		document.getElementById('contact_details').style.display = 'none';
		document.getElementById('step3').style.display = 'none';
		document.getElementById('step4').style.display = 'block';
		//document.getElementById('advert').src = '/images/template/adverts/registration_step4.png';
	}
	else {
		alert('You must accept the terms and conditions.');
		document.getElementById('terms_accepted').focus;
	}
}
function populate_own_company() {
    company_details[0] = new Array();
    company_details[0][0] = document.getElementById('company_name').value;
    company_details[0][1] = document.getElementById('company_number').value;
    populate_company_table(0, 0);
}
function stopRKey(evt) {
	var evt  = (evt) ? evt : ((event) ? event : null);
	var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	if ((evt.keyCode == 13) && (node.id=="company_name_search_box")) { 
		search_company(document.getElementById('company_name_search_box'));
		return false; 
	}
	if ((evt.keyCode == 13) && (node.id=="company_name" || node.id=="company_number")) {
		search_monitored_company(
			document.getElementById('company_name').value,
			document.getElementById('company_number').value,
			document.getElementById('company_country').value,'1');
		return false;
	}
	if ((evt.keyCode == 13) && (node.type == "text")) {
  	return false;
  }
}
document.onkeypress = stopRKey;
