var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function showFeature(whichF) {
	document.getElementById('fExhibitNav').className = '';
	document.getElementById('fShowsNav').className = '';
	document.getElementById('nExhibitNav').className = '';
	document.getElementById('myAccountNav').className = '';
	document.getElementById('tblFeaturedExhibitors').style.display = 'none';
	document.getElementById('tblFeaturedShows').style.display = 'none';
	document.getElementById('tblNewShows').style.display = 'none';
	document.getElementById('tblMyAccount').style.display = 'none';
	switch(whichF) {
		case 'fExhibit' :
			document.getElementById('fExhibitNav').className = 'selected';
			document.getElementById('tblFeaturedExhibitors').style.display = 'block';
			document.getElementById('tblFeaturedExhibitors').className = 'tblFeature';
			break;
		case 'fShows' :
			document.getElementById('fShowsNav').className = 'selected';
			document.getElementById('tblFeaturedShows').style.display = 'block';
			document.getElementById('tblFeaturedShows').className = 'tblFeature';
			break;
		case 'nExhibit' :
			document.getElementById('nExhibitNav').className = 'selected';
			document.getElementById('tblNewShows').style.display = 'block';
			document.getElementById('tblNewShows').className = 'tblFeature';
			break;
		case 'myAccount' :
			document.getElementById('myAccountNav').className = 'selected';
			document.getElementById('tblMyAccount').style.display = 'block';
			document.getElementById('tblMyAccount').className = 'tblFeature';
			break;
		default :
			return false;
	}
}

function sideLinkHover(cellId,io) {
	if(io == 'in') {
		opacity('spn'+cellId, 1, 0, 1);
		setTimeout("document.getElementById('spn"+cellId+"').style.visibility = 'visible';", 2);
		opacity('spn'+cellId, 0, 100, 1000);
	}

	if(io == 'out') {
		document.getElementById('spn'+cellId).style.visibility = 'hidden';
	}
}

function opacity(id, opacStart, opacEnd, millisec) {
    var speed = Math.round(millisec / 100);
    var timer = 0;

    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}


function countChars(inID,outID,maxC) {
	if(BrowserDetect.browser != 'Explorer' && BrowserDetect.browser != 'Opera') {
		var elemIn = document.getElementById(inID);
		var lChars = (maxC - parseInt(elemIn.value.length));
		if(lChars > 0) {
			document.getElementById(outID).innerHTML = "<small>"+lChars+" characters remaining<\/small>";
		} else {
			elemIn.value = elemIn.value.substring(0,maxC);
			document.getElementById(outID).innerHTML = '<small><font color="#FF0000">0</font> characters remaining<\/small>';
		}
	} else {
		document.getElementById(outID).innerHTML = '';
	}
}

function changeToPW(eID) {
	var txtLogin = document.getElementById('txtLogin1').value;
	var parNode = document.getElementById(eID).parentNode;
	parNode.innerHTML = '<input type="text" name="txtLogin1" id="txtLogin1" value="'+txtLogin+'" \/>&nbsp;';
	parNode.innerHTML += '<input type="password" name="pwdLogin1" id="pwdLogin1" \/>&nbsp;';
	parNode.innerHTML += '<a href="#">login<\/a>';
	document.getElementById(eID).focus();
}

function sameAsCompany() {
	document.getElementById('maddress1').value = document.getElementById('paddress1').value;
	document.getElementById('maddress2').value = document.getElementById('paddress2').value;
	document.getElementById('mcity').value = document.getElementById('pcity').value;
	document.getElementById('mstate').options[document.getElementById('mstate').selectedIndex] = document.getElementById('pstate').options[document.getElementById('pstate').selectedIndex].value;
	document.getElementById('mzip-a').value = document.getElementById('pzip-a').value;
	document.getElementById('mzip-b').value = document.getElementById('pzip-b').value;
}

function validateForumPost() {
	var formError = false;
	var subject = document.getElementById('subject');
	var body = document.getElementById('body');
	var re = document.getElementById('re');

	if(subject.value == '') {
		formError = true;
		subject.className = 'error';
	} else {
		subject.className = '';
	}

	if(body.value == '') {
		formError = true;
		body.className = 'error';
	} else {
		body.className = '';
	}

	if(formError == true) {
		document.getElementById('errorText').innerHTML = 'There are errors in this form.  Please correct the fields marked in <span style="color: #FF0000;">red</span>.';
	} else {
		document.getElementById('errorText').innerHTML = '';
		document.forms['frmPost'].submit();
	}
}

function validateForumSearch() {
	var forumSearch = document.getElementById('forumSearch');

	if(document.getElementById('tdPreSearch') != null) {
		var tdPreSearch = document.getElementById('tdPreSearch');
		if(forumSearch.value == '' || forumSearch.value == 'enter search keywords') {
			forumSearch.className = 'error';
			forumSearch.style.color = '#FF0000';
		} else {
			forumSearch.className = '';
			forumSearch.style.color = '#362311';
			tdPreSearch.innerHTML = '<img src="img/loading.gif" alt="loading search results" />';
			returnForumSearch();
		}
	} else {
		var forumSearchResults = document.getElementById('forumSearchResults');
		if(forumSearch.value == '' || forumSearch.value == 'enter search keywords') {
			forumSearch.className = 'error';
			forumSearch.style.color = '#FF0000';
		} else {
			forumSearch.className = '';
			forumSearch.style.color = '#362311';
			forumSearchResults.innerHTML = '<tr><th>Subject</th><th>Body</th><th>Forum</th><th>&nbsp;</th></tr><tr><td colspan="4" id="tdPreSearch" style="text-align: center; color: #CFCFCF;"><img src="img/loading.gif" alt="loading search results" /></td></tr>';
			returnForumSearch();
		}
	}
}

function returnForumSearch() {
	var forumSearch = document.getElementById('forumSearch');
	var forumSearchResults = document.getElementById('forumSearchResults');

	var AJAX = zXmlHttp.createRequest();
	AJAX.open('get', 'php/forumSearch.php?forumSearch='+forumSearch.value, true);
	AJAX.onreadystatechange = function() {
		if(AJAX.readyState == 4) {
			if(AJAX.status == 200) {
				forumSearchResults.innerHTML = AJAX.responseText;
			}
		}
	};
	AJAX.send(null);
}

function validateSiteSearch() {
	var txtSearch = document.getElementById('txtSearch');
	if(txtSearch.value == '' || txtSearch.value == 'enter search keywords') {
		txtSearch.className = 'error';
		txtSearch.style.color = '#FF0000';
	} else {
		txtSearch.className = '';
		txtSearch.style.color = '#362311';
		document.location.href="search.php?s="+txtSearch.value;
	}
}

function changeTier(tVal) {
	var display = 'none';
	if(tVal == 0) display = 'none';
	if(tVal == 1) display = 'block';
	if(tVal == 2) display = 'block';
	document.getElementById('fldCC').style.display = display;
	document.getElementById('fldBilling').style.display = display;
	if(tVal == 1) document.getElementById('amount').value = '179.00';
	if(tVal == 2) document.getElementById('amount').value = '279.00';
}

function validateRegistration() {
	//document.location.href="register.php#";
	var formError = false;
	var sTier = 0;

	if(document.getElementById('tier-1').checked == true) sTier = 1;
	if(document.getElementById('tier-2').checked == true) sTier = 2;

	var fList = new Array();
	fList[0] = 'cname';
	fList[1] = 'fname';
	fList[2] = 'lname';
	fList[3] = 'email';
	if(sTier > 0) {
		fList[4] = 'card_num';
		fList[5] = 'card_exp_month';
    		fList[6] = 'card_exp_year';
    		fList[7] = 'first_name';
    		fList[8] = 'last_name';
    		fList[9] = 'address';
    		fList[10] = 'city';
    		fList[11] = 'state';
    		fList[12] = 'zip';
    		fList[13] = 'country';
    		fList[14] = 'phone';
    		fList[15] = 'card_code';
	}


	for(f in fList) {
		if(!document.getElementById(fList[f])) alert(fList[f]);
		if(document.getElementById(fList[f]).value == '') {
			formError = true;
			document.getElementById(fList[f]).className = 'error';
		} else {
			document.getElementById(fList[f]).className = '';
		}
	}

	if(formError == true) {
		document.getElementById('errorText').innerHTML = 'There are errors in this form.  Please correct the fields marked in <span style="color: #FF0000;">red</span>.';
	} else {
		document.getElementById('errorText').innerHTML = '';
		document.forms['frmRegister'].submit();
	}
}

function popSubCatSel(subCatId,CatId,cNo) {
	var cat = document.getElementById(CatId).options[document.getElementById(CatId).selectedIndex].value;
	var eID = CatId.substr(8);
	var AJAX = zXmlHttp.createRequest();
	AJAX.open('get', 'php/popSubCatSel.php?cat='+cat+'&no='+cNo+'&eid='+eID, true);
	AJAX.onreadystatechange = function() {
		if(AJAX.readyState == 4) {
			if(AJAX.status == 200) {
				if(AJAX.responseText.length > 0) {
					eval(AJAX.responseText);
				}
			}
		}
	};
	AJAX.send(null);
}

function myAcctInit() {
	var ind1 = document.getElementById('industry1');
	var ind2 = document.getElementById('industry2');
	var ind3 = document.getElementById('industry3');
	var ind4 = document.getElementById('industry4');
	var subC1 = document.getElementById('subcat1');
	var subC2 = document.getElementById('subcat2');
	var subC3 = document.getElementById('subcat3');
	var subC4 = document.getElementById('subcat4');
	
	if(ind1.options[ind1.selectedIndex] != 0) {
		popSubCatSel('subcat1','industry1',1);
	}

	if(ind2 && ind2.options[ind2.selectedIndex] != 0) {
		popSubCatSel('subcat2','industry2',2);
	}

	if(ind3 && ind3.options[ind3.selectedIndex] != 0) {
		popSubCatSel('subcat3','industry3',3);
	}

	if(ind4 && ind4.options[ind4.selectedIndex] != 0) {
		popSubCatSel('subcat4','industry4',4);
	}
}

function validateAcctPi() {
	var valid = true;
	var Imgs = new Array(7);
	Imgs[0] = 'logo';
	Imgs[1] = 'img1';
	Imgs[2] = 'img2';
	Imgs[3] = 'img3';
	Imgs[4] = 'img4';
	Imgs[5] = 'img5';
	Imgs[6] = 'img6';

	for(i in Imgs) {
		var ig = document.getElementById(Imgs[i]);
		if(ig.value) {
			if(!/jpg|jpeg|gif|png$/i.test(ig.value)) {
				valid = false;
				ig.style.border = 'solid 1px #FF0000';
			} else {
				ig.style.border = '';
			}
		}
	}

	if(valid == false) {
		document.getElementById('tdErr').innerHTML = 'Only .GIF, .JPG, .JPEG and .PNG images are accepted';
	} else {
		document.getElementById('tdErr').innerHTML = '';
		document.myAcctForm.submit();
	}
}

function checkPW() {
	if(document.getElementById('password').value != '') {
		if(document.getElementById('password2').value != '') {
			if(document.getElementById('password').value != document.getElementById('password2').value) {
				document.getElementById('password').style.border = 'solid 1px #FF0000';
				document.getElementById('password2').style.border = 'solid 1px #FF0000';
				document.getElementById('tdErr').innerHTML = "The passwords entered do not match";
			} else {
				document.myAcctForm.submit();
			}
		} else {
			document.myAcctForm.submit();
		}
	} else {
		document.myAcctForm.submit();
	}
}
