function mainsearch() {
	var text = document.getElementById('mainsearchtextbox').value;
	if(text == undefined || text == '' || text == 'Search') {
		alert('No search text entered');
	}
	else {
		//text = text.replace(' ', ',');
		document.location.href="list.php?search=" + text ;
	}
}

function mainsearchKeyPress(e)
{
    // look for window.event in case event isn't passed in
    if (window.event) { e = window.event; }
    if (e.keyCode == 13)
    {
    	mainsearch();
    }
}

function loginKeyPress(e)
{
    // look for window.event in case event isn't passed in
    if (window.event) { e = window.event; }
    if (e.keyCode == 13)
    {
    	login();
    }
}


function updateHiddenField(id, value) {
	if(value == true) {
		$(id).value = 1;
	}
	else {
		$(id).value = 0;
	}
}


function login()
{
	var username = document.loginbox.username.value;
	var password = document.loginbox.password.value;
	if(username == '' || username == 'Email') {
		alert("Please enter email address");
	}
	else {
		document.loginbox.submit();

		/*var params = 'Action=Login&username=' + username + '&password=' + password;
		new Ajax.Request('/includes/processes/ajax_handler.php', {method:'post', postBody:params, onSuccess:display_logged_in});*/
	}
}
function logout()
{
	var params = 'Action=Logout';
	new Ajax.Request('/includes/processes/ajax_handler.php', {method:'post', postBody:params, onSuccess:display_logged_in});
	//refresh();
}

function display_logged_in(t)
{
	var response = t.responseText.split('~|~');
	var status = response[0];
	var memberBox = response[1];
	
	document.getElementById('memberdetails').innerHTML = memberBox;

	if(status == 'SUCCESS' && document.location.pathname == '/checkout.php') {
		refresh();
	}
	if(status == 'LOGGEDOUT') {
		refresh();
	}
}

function emailexpertsend() {
	var button = document.getElementById('sendExpertEmailButton');
	
	button.disabled = true;
	
	var name = document.getElementById('emailexpertname').value;
	var mail = document.getElementById('emailexpertmail').value;
	var ques = document.getElementById('emailexpertques').value;
	
	
	if(name == undefined || name == '') {
		alert('Please enter your name.');
		button.disabled = false;
	}
	else if(mail == undefined || mail == '') {
		alert('Please enter your email address. We need this to reply to you.');
		button.disabled = false;
	}
	else if(!CheckEmail('emailexpertmail')) {
		//alert('Please enter a valid email address. We need this to reply to you.');
		button.disabled = false;
	}
	else if(ques == undefined || ques == '') {
		alert('Please enter your question/comment.');
		button.disabled = false;
	}
	else {
		document.EmailExpertForm.submit();
		/*var vars = "Action=GenerateFormTokenAjax";
		new Ajax.Request('/includes/processes/ajax_handler.php', {parameters:vars, onSuccess:tokenReceived});*/
	}
	
}
function str_contain($haystack, $needle) {
	if (strlen(strstr($haystack, $needle)) > 0) {
		return true;
	}
	return false;
}

function tokenReceived(t) {
	var token = t.responseText;
	var tokenelement = document.getElementById('emailexperttoken');
	tokenelement.value = token;
	document.EmailExpertForm.submit();
}

function confirmSaveFromList(numericOnly, oldVal, newVal, inputId, fieldname, list_id, entry_id) {
	
	if(numericOnly == 'yes' && isNaN(newVal)) {
		alert('invalid value. please enter numbers only.');
		setInputValue(oldVal, inputId);
		focusInput(inputId);
	}
	else if(newVal != oldVal) {
		if(confirm('Save new value ' + newVal + '?')) {
			var divelement = document.getElementById('tick'+inputId);
			divelement.style.display = 'none';
			saveEntryFromList(list_id, entry_id, fieldname, newVal);
		}
		else {
			setInputValue(oldVal, inputId);
			focusInput(inputId);
		}
	}
}
function setInputValue(value, inputId) {
	var element = document.getElementById(inputId);
	if(element != null) {
		element.value = value;
	}
	else {
		alert("ERROR: missing input element: " + inputId);
	}
}
function focusInput(inputId) {
	var element = document.getElementById(inputId);
	if(element != null) {
		element.focus();
	}
	else {
		alert("ERROR: missing input element: " + inputId);
	}
}

function getElementValueByIdIfExist(id) {
	
	var element = document.getElementById(id);
	
	if(element == null ) {
		
		return null;
	}
	else {
		
		return element.value;
	}
}

function getRadioValue(radio_name) {
	var list_ids = document.getElementsByName(radio_name);
	var list_checked = false;
	for(var i = 0; i < list_ids.length; i++) {
		if(list_ids[i].checked) {
			
			return list_ids[i].value;
		}
	}
}
/**
* Returns the value of the selected radio button in the radio group, null if
* none are selected, and false if the button group doesn't exist
*
* @param {radio Object} or {radio id} el
* OR
* @param {form Object} or {form id} el
* @param {radio group name} radioGroup
*/
function $RF(el, radioGroup) {
    if($(el).type && $(el).type.toLowerCase() == 'radio') {
        var radioGroup = $(el).name;
        var el = $(el).form;
    } else if ($(el).tagName.toLowerCase() != 'form') {
        return false;
    }

    var checked = $(el).getInputs('radio', radioGroup).find(
        function(re) {return re.checked;}
    );
    return (checked) ? $F(checked) : null;
}
/*****************************************************
Function: add/remove elements from the document
******************************************************/

function removeElement(parentID,elementID){
	var parent = document.getElementById(parentID);
	var child = document.getElementById(elementID);

	parent.removeChild(child);
}
function addElement(parentID,elementID,elementType){
	var newElement = document.createElement(elementType);
	newElement.setAttribute('id',elementID);
	var parent = document.getElementById(parentID);
	
	parent.appendChild(newElement);
}

function addElementTop(parentID,elementID,elementType,content){
	var newElement = document.createElement(elementType);
	newElement.setAttribute('id',elementID);
	var parent = document.getElementById(parentID);
	
	var list = parent.getElementsByTagName("div");
	
	if(list.length ==0){
		parent.appendChild(newElement);
	}else{	
		parent.insertBefore(newElement,list[0]);
	}
	
	newElement.innerHTML = content;	
}

function setElementAttribute(id,stype,text){
	var element = document.getElementById(id);
	
	element.setAttribute(stype,text);
}
/*****************************************************
Function: confirm delete
******************************************************/
function confirmDelete(delUrl) {
  if (confirm("Are you sure you want to delete?")) {
    document.location = delUrl;
  }
}


function checkPaper(){
	var paper = $("Paper");
	if(!paper.value){
		alert("Please enter how many paper entries there are");
		return false;
	}else{
		var agree = confirm("Selecting a winner will close the competition. No more entries will be allowed. Do you want to continue?");
		
		if(agree){
			return true;
		}else{
			return false;
		}
	}
}

/*****************************************************
Function: validate form
******************************************************/
function validateForm(formName) {	
	if(formName == 'loginbox') {
		if(!CheckEmail('username')) {
			return false;
		}
		if($('password').value == '') {
			alert('Please enter your password.');
			return false;
		}
		
		return true;
	}
	
	if(formName == 'ContactUs') {
		
		if($('Name').value == '') {
			alert('Please enter your name.');
			return false;
		}
		if(!CheckEmail('Email')) {
			return false;
		}
		if($('Message').value == '') {
			alert('Please leave us a message.');
			return false;
		}
		
		return true;
	}
	
	if(formName == 'AddEditEvent') {
		if($('event_title').value == '') {
			alert('Please enter a title');
			return false;
		}
		if($('event_start_date').value == '') {
			alert('Please enter a start date');
			return false;
		}
		if($('event_end_date').value == '') {
			alert('Please enter an end date');
			return false;
		}
		return true;
	}
	if(formName == 'AddEditResource') {
		if($('event_title').value == '') {
			alert('Please enter a title');
			return false;
		}
		return true;
	}
	if(formName == 'AddEditProject') {
		if($('event_title').value == '') {
			alert('Please enter a title');
			return false;
		}
		
		return true;
	}
	if(formName == 'AddEditLocation') {
		if($('location_title').value == '') {
			alert('Please enter a title.');
			return false;
		}
	
		return true;
	}
	
	//check the emails are valid and match
	//check the passwords are the same or empty if ID is set
	if(formName == 'AddEditUser') {
		if(!CheckEmail('users_email')) {
			return false;
		}
		if($('users_firstname').value == '') {
			alert('Please enter a first name.');
			return false;
		}
		if($('users_lastname').value == '') {
			alert('Please enter a last name.');
			return false;
		}	
		if($('users_password').value != $('users_password_repeat').value){
			alert('Passwords do not match.');
			return false;
		}
		if($('users_id') != null) {
			if(!$('users_id').value && $('users_password').value == '' && $('users_password_repeat').value == '') {
				alert('Enter a password.');
				return false;
			}	
		}
		else {
			if($('users_password').value == '' && $('users_password_repeat').value == '') {
				alert('Enter a password.');
				return false;
			}
		}
		return true;
	}
	
	if(formName == 'AddEditEmailCampaign') {
		if($('campaign_from_name').value == '') {
			alert('Please enter a from name.');
			return false;
		}
		if($('campaign_from_email').value == '') {
			alert('Please enter a from email.');
			return false;
		}
		if($('campaign_subject').value == '') {
			alert('Please enter a subject.');
			return false;
		}
		return true;
	}
	if(formName == 'AddEditEmailList') {
		if($('list_title').value == '') {
			alert('Please enter a title');
			return false;
		}
		return true;
	}
	if(formName == 'Unsubscribe') {	
		var lists = document.getElementsByName('list_id[]');
		var l_check = false;
		var i=0;
		for(i=0; i<lists.length; i++) {
			if(lists[i].checked) {
				l_check = true;
				break;
			}
		}
		
		if(l_check == false) {
			alert('Please select the mailing lists you wish to unsubscribe from.');
		}
		
		return l_check;
	}
}

var search_clear = false;

/*****************************************************
Function: redirect to page
*****************************************************/
function redirect(page){
	if(page) document.location.href = page;	
}
/*****************************************************
Function: refresh page
*****************************************************/
function refresh(){
	window.location = window.location;
	//document.location.reload();	
}
/*****************************************************
Function: check value agains regular expression
******************************************************/
function checkRegExpress(reg,id,format){
	var element = document.getElementById(id);
	
	if(!element.value.match(reg)){
		showError(format);
		return false;
	}else{
		return true;	
	}
}

/*****************************************************
Function: show hide registration info
******************************************************/
function showHideWithImg(element,imageElement){
	var div = document.getElementById(element);
	var image = document.getElementById(imageElement);
	
	if(div.style.display == 'none'){ // show the div and put image to "-"
		div.style.display = 'block';
		image.src = "../images/buttons/minus.gif";
	}else{
		div.style.display = 'none';
		image.src = "../images/buttons/plus.gif";
	}
}

/*****************************************************
Function: show/hide div
******************************************************/
function showHideElement(element,bstate){ //state: true = show ; false = hide
	var div = document.getElementById(element);
	
	if(bstate){
		div.style.display = 'block';
	}else{
		div.style.display = 'none';
	}
}

function showHideElementAuto(element){ //state: true = show ; false = hide
	var div = document.getElementById(element);
	
	if(div.style.display == 'none'){
		div.style.display = 'block';
	}else{
		div.style.display = 'none';
	}
}

function fadeDiv(divID){
	new Effect.Opacity(divID, { from: 1.0, to: 0, duration: 0.5 });	
}

/*****************************************************
Function: page information
******************************************************/
if(document.all) { 
	document.onmousemove = UpdateCursorPositionDocAll; 
}else {
	document.onmousemove = UpdateCursorPosition; 
}

var cX = 0; var cY = 0;

function UpdateCursorPosition(e){
	cX = e.pageX; 
	cY = e.pageY;
}
function UpdateCursorPositionDocAll(e){
	cX = event.clientX; 
	cY = event.clientY;
}


function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}
function getPageScroll(){

	var xScroll, yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}

	arrayPageScroll = new Array(xScroll,yScroll) 
	return arrayPageScroll;
}

/*****************************************************
Function: check to see if an element is in an array
******************************************************/
function inArray(arr,value){
	var found = false;
	
	for(x in arr){
		if(arr[x] == value){
			found = true;
			break;
		}
	}
	
	return found;
}

/*****************************************************
Function: get vars from URL
******************************************************/
function getURLHash() {
	var q = document.location.hash;
	if(q) {
		alert(q.substring(1,q.length));
	}
	return "";
}

function go(url,w,h) {
	var dim = eval('"width=' + w + ',height=' + h + ',toolbar=0, location=0,directories=0,status=0, menubar=0,scrollbars=0,resizable=0"');
	Npop = window.open(url,"instruct",dim);
	Npop.moveTo(0,0);
	oldWin = Npop.opener;
}

function goScroll(url,w,h) {
	var dim = eval('"width=' + w + ',height=' + h + ',toolbar=0, location=0,directories=0,status=0, menubar=0,scrollbars=1,resizable=0"');
	Npop = window.open(url,"instruct",dim);
	oldWin = Npop.opener;
}

function goEverything(url,w,h) {
	var dim = eval('"width=' + w + ',height=' + h + ',toolbar=1, location=1,directories=1,status=1, menubar=1,scrollbars=1,resizable=1"');
	Npop = window.open(url,"instruct",dim);
	oldWin = Npop.opener;
}

function CheckEmail(sEmail){
	str = document.getElementById(sEmail).value;
	var Errors = false;
	var Emailerrors = false;
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if(str == ""){
		Emailerrors = true;	
	}
	if (str.indexOf(at)==-1){
	  Emailerrors = true;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   Emailerrors = true;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		Emailerrors = true;
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		Emailerrors = true;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		Emailerrors = true;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		Emailerrors = true;
	 }
	
	 if (str.indexOf(" ")!=-1){
		Emailerrors = true;
	 }
	 if(Emailerrors){
		alert("Sorry, your email address is invalid!");
		return false;
	 }else{
		return true;	 
	 }
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function swap_image(img_id, src_1, src_2) {
	if($(img_id).src == src_1) {
		$(img_id).src = src_2;
	}
	else {
		$(img_id).src = src_1;
	}
}



function reset_level_images(except_id) {
	reset_cat_images('qual');
	if(except_id != 'cert_1') { $('cert_1').src = '/images/cert1-off.jpg'; } else { $('cert_1').src = '/images/cert1-on.jpg'; }
	if(except_id != 'cert_2') { $('cert_2').src = '/images/cert2-off.jpg'; } else { $('cert_2').src = '/images/cert2-on.jpg'; }
	if(except_id != 'cert_3') { $('cert_3').src = '/images/cert3-off.jpg'; } else { $('cert_3').src = '/images/cert3-on.jpg'; }
	if(except_id != 'cert_4') { $('cert_4').src = '/images/cert4-off.jpg'; } else { $('cert_4').src = '/images/cert4-on.jpg'; }
	if(except_id != 'diploma') { $('diploma').src = '/images/diploma-off.jpg'; } else { $('diploma').src = '/images/diploma-on.jpg'; }
}

function reset_cat_images(except_id) {
	if(except_id != 'occ') { $('occ').src = '/images/occupation-off.jpg'; } else { $('occ').src = '/images/occupation-on.jpg'; }
	if(except_id != 'qual') { $('qual').src = '/images/qualification-off.jpg'; } else { $('qual').src = '/images/qualification-on.jpg'; }
	if(except_id != 'cat') { $('cat').src = '/images/category-off.jpg'; } else { $('cat').src = '/images/category-on.jpg'; }
}

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

function show_tip(help_text) {
    var audio_image='';
    
    var close_button='<div style="float:right;"><img onclick="tt_HideInit();" src="/images/tip_balloon/close.gif"/></div>';
    var tip_html='<div style="display:blockl"><div style="padding-bottom:10px;">'+help_text+'</div>'+audio_image+close_button+'</div>';
    Tip(tip_html);    
}

function is_ie() {
	var browserName=navigator.appName;  
 	if(browserName=="Microsoft Internet Explorer") {
  		return true;
 	}
 	return false;
}

function is_ie6() {
	var b_version=navigator.appVersion;
	var version_info = new Array();
	version_info = b_version.split(';');
	version_info = version_info[1].split(' ');
	if(parseFloat(version_info[2]) == 6) {
		return true;
	}
	else {
		return false;
	}
}

function submit_search(e) {
	if (is_ie()) {
		if (window.event && window.event.keyCode == 13) {
			window.location = '/search_results.php?search_text=' + $('search_text').value;
			return;
		}
	}
	else {
		if(e && e.which == 13) {
			window.location = '/search_results.php?search_text=' + $('search_text').value;
		}
	}
}


function getCSV(report_id) {
	var from_date = document.getElementById('from_date').value; 
	var to_date = document.getElementById('to_date').value; 
	var website_select = document.getElementById('website_id');
	var website_id = null;
	
	if(website_select != null) {
		website_id = website_select.value;
	}
	if(from_date == '' && to_date == '') {
		alert('Please select at least one date');
	}
	else {
		var url = '/admin/csv_report.php?report_id=' + report_id + '&from_date=' + from_date + '&to_date=' + to_date;
		if(website_id != null && website_id != '') {
			url += '&website_id=' + website_id;
		}
		window.open(url);
	}
}

function processReport(t) {
	document.getElementById('reportarea').innerHTML = t.responseText;
}

function submitCreditCardDetails() {
	
	var button = document.getElementById('submitCreditCardDetailsButton');
	button.disabled = true;
	
	var complete = form_mandatory();
	
	if(complete) {
		var number = document.getElementById('number').value;
		check_cc(number);
	}
	else {
		button.disabled = false;
	}
}

function check_cc(number) {
	var vars = 'Action=CheckCC&number='+number;
	new Ajax.Request('/includes/processes/ajax_handler.php', {parameters:vars, onSuccess:submitPaymentForm});
}

function submitPaymentForm(t) {
	var valid = false;
	if(t.responseText == 'VALID') {
		
		var allcool = checkCCExpiryDate();
		if(allcool) {
			valid = true;
			
		}
	}
	else {
		alert('Invalid credit card number!');
	}
	
	if(valid) {
		document.getElementById('paymentform').submit();
	}
	else {
		var button = document.getElementById('submitCreditCardDetailsButton');
		button.disabled = false;
	}
}

function checkCCExpiryDate() {
	var cvc = document.getElementById('cvc').value;
	var month = document.getElementById('month').value;
	var year = document.getElementById('year').value;
	
	//alert(cvc.length);
	if(isNaN(cvc) || cvc.length < 3) {
		alert('Invalid CVC!');
		return false;
	}
	var currentDate = new Date();
	if(year < currentDate.getFullYear()) {
		alert('Your credit card is expired!');
		return false;
	}
	else if(year == currentDate.getFullYear()) {
		
		if(month < (currentDate.getMonth() + 1)) {
			alert('Your credit card is expired!');
			return false;
		}
	}
	return true;
}

function openCenteredWindow(url, title, width, height) {
    
    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
    var windowFeatures = "width=" + width + ",height=" + height + ",location=no,menubar=no,toolbar=no,scrollbars=no,status=no,resizable=no,left=" + left + ",top=" + top;
    myWindow = window.open(url, title, windowFeatures);
}
