// JavaScript Document
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 MM_openBrWindow(theURL,winName,features) { //v2.0
	return  window.open(theURL,winName,features);
}



function addRemoveClass(id,className){
	var domObj,currentClass;
	if(typeof id == 'object'){
		domObj = id;
	}else{
		domObj = document.getElementById(id);
	}
	currentClass = domObj.className;
	if (currentClass.indexOf(className)<0){
		currentClass = currentClass+" "+className;
		domObj.className = currentClass;
	}else{
		currentClass = currentClass.replace(className, "");
		domObj.className = currentClass;
	}
}
function removeClass(id,className){
	var domObj,currentClass;
	if(typeof id == 'object'){
		domObj = id;
	}else{
		domObj = document.getElementById(id);
	}
	currentClass = domObj.className;
	if (currentClass.indexOf(className)<0){
		//currentClass = currentClass+" "+className;
		//domObj.className = currentClass;
	}else{
		currentClass = currentClass.replace(className, "");
		domObj.className = currentClass;
	}
}
function addClass(id,className){
	var domObj,currentClass;
	if(typeof id == 'object'){
		domObj = id;
	}else{
		domObj = document.getElementById(id);
	}
	currentClass = domObj.className;
	if (currentClass.indexOf(className)<0){
		currentClass = currentClass+" "+className;
		domObj.className = currentClass;
	}
}
// Navigation Subnav Code
var at,agt,abt;
function artistsCheck(e) {
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	if (tg.nodeName != 'DIV') return;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	while (reltg != tg && reltg.nodeName != 'BODY')
		reltg= reltg.parentNode
	if (reltg== tg) return;
	// Mouseout took place when mouse actually left layer
	// Handle event
	at = setTimeout("addRemoveClass('subnav-artists','hide')",500);
}
function galleryCheck(e) {
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	if (tg.nodeName != 'DIV') return;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	while (reltg != tg && reltg.nodeName != 'BODY')
		reltg= reltg.parentNode
	if (reltg== tg) return;
	// Mouseout took place when mouse actually left layer
	// Handle event
	agt = setTimeout("addRemoveClass('subnav-artists-gallery','hide')",500);
}
function blogCheck(e) {
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	if (tg.nodeName != 'DIV') return;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	while (reltg != tg && reltg.nodeName != 'BODY')
		reltg= reltg.parentNode
	if (reltg== tg) return;
	// Mouseout took place when mouse actually left layer
	// Handle event
	abt = setTimeout("addRemoveClass('subnav-artists-blogs','hide')",500);
}
function hideArtists(){
	clearTimeout(at);
	addClass('subnav-artists','hide');
}
function hideGallery(){
	clearTimeout(agt);
	addClass('subnav-artists-gallery','hide');
}
function hideBlogs(){
	clearTimeout(abt);
	addClass('subnav-artists-blogs','hide');
}

function hideEmail(first,second){
	document.write('<a href="mailto:'+first+'@'+second+'">'+first+'@'+second+'</a>');
}
function createGMapLink(values){
	try{
		var gLinkText = values.gLinkText;
		for(var i in values){
			values[i]=values[i].split(" ");values[i]=values[i].join("+");
		}
		document.write('<a href="http://maps.google.com/maps?f=q&hl=en&geocode=&q='+values.gStreet+',+'+values.gCity+',+'+values.gState+'+'+values.gZip+'&ie=UTF8&z=16&iwloc=addr" target="_blank" title="'+gLinkText+'">'+gLinkText+'</a>');
	}catch(e){}
}
function initSelectValue(selectID,selectValue){
	var selectObj = document.getElementById(selectID);
	for(var i=0;i<selectObj.options.length;i++){
		if(selectValue == selectObj.options.item(i).value){
			selectObj.selectedIndex = i;
		}
	}
}
function validateSelectList(selectID,msg){
	var selectObj = document.getElementById(selectID);
	if(selectObj.value==""||-1 == parseInt(selectObj.value)){
		alert(msg);
		selectObj.focus();
		return false;
	}else{
		return true;
	}
}
function checkFieldLength(field,length,displayName){
	var field = document.getElementById(field);
	field.value = removeLeadingAndTrailingChar (field.value, " ");
	if(field.value.length < length){
		if(length == 1){
			alert("Please make sure "+displayName+" is completed.");
			field.select();
			field.focus();
		}else{
			alert("Please make sure "+displayName+" has at least "+length+" characters.");
			field.select();
			field.focus();
		}
		return false;
	}else{
		return true;
	}
}
function removeLeadingAndTrailingChar (inputString, removeChar){
	var returnString = inputString;
	if (removeChar.length){
		while(''+returnString.charAt(0)==removeChar){
			returnString=returnString.substring(1,returnString.length);
		}
		while(''+returnString.charAt(returnString.length-1)==removeChar){
			returnString=returnString.substring(0,returnString.length-1);
		}
	}
	return returnString;
}
// emailName is the name of the text field
function validateEmail(id) {
	var emailObj = document.getElementById(id);
	if (window.RegExp) {
		var regstr_1 = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)"; //invalid email
		var regstr_2 = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4})(\\]?)$"; //valid email
		var reg1 = new RegExp(regstr_1);
		var reg2 = new RegExp(regstr_2);
		if (emailObj.value.length > 0 && !reg1.test(emailObj.value) && reg2.test(emailObj.value)){
			return true;
		}else{
			alert("Please enter a valid email address.");
			emailObj.focus();
			emailObj.select();
			return false;
		}
	}else{
		var p=emailObj.value.indexOf('@'); var z=emailObj.value.indexOf('.');
        if (z<1 || z==(emailObj.value.length-1) || p<1 || p==(emailObj.value.length-1)){
			alert("Please enter a valid email address.");
			emailObj.focus();
			emailObj.select();
			return false;
		}else{
			return true;
		}
	}
}
