//Text Box focus
	function setFocus(nameID){document.getElementById(nameID).focus();}

// Email - Javascript workaround to Mailto function
	function email(user,domain,suffix,display,subject) {
		if ((subject == 'none') && (user == "band")){
   	  		document.write('<a href=\"' + 'mailto:' + 'jake'+ '@' + domain + '.' + suffix + ';' + 'john' + '@' + domain + '.' + suffix + ';' + 'adam' + '@' + domain + '.' + suffix + ';' + 'will' + '@' + domain + '.' + suffix + ';' + '\">' + display + '</a>');
  	 	}
		else if (subject == 'none'){
   	  		document.write('<a href=\"' + 'mailto:' + user + '@' + domain + '.' + suffix + '\">' + display + '</a>');
  		}
		else if (subject != 'none'){
	  		document.write('<a href=\"' + 'mailto:' + user + '@' + domain + '.' + suffix + '?subject=' + subject + '\">' + display + '</a>');
  	 	}
  	}
  
// Display Radio
	function radio(cookieName,state){
  		var expireDate = new Date();
		expireDate.setDate(expireDate.getFullYear() + 1);
		
		if ((state) && (state=='noncookie')) {
			var win = window.open('radio.html','Radio','scrollbars=no,status=no,toolbar=no,menubar=no,resizable=no,location=no,width=440,height=300,left=300,top=300');
     		}
     		else if ((!readCookie(cookieName))||(readCookie(cookieName)=='off')||(state=='on' && readCookie(cookieName)!='on')){
     			if (readCookie(cookieName)) {
     				var pref = readCookie(cookieName);
     			}
     			var win = window.open('radio.html','Radio','scrollbars=no,status=no,toolbar=no,menubar=no,resizable=no,location=no,width=440,height=300,left=300,top=300');
     			if (pref=='no'){
     				writeCookie(cookieName,"no", expireDate);
     			}
     			else {
     				writeCookie(cookieName,"on",expireDate);
     			}
     		}
     		return win;
  	}

// Test the display of the Radio
	function test_display(cookieName, display) {
		if (!display) {
			deleteCookie(cookieName);
			radio('Radio','on');
		}
	}

// Load "Do not show" preference
	function loadPref(cookieName,cookiePref) {
		if (readCookie(cookieName)=='no'){
			{
  				document.getElementById(cookiePref).checked=true;  		
  			}
  		}
  	}

// Displays a message to the user if cookies are disabled
	function cookiesMessage() {
   		var enabled = cookiesEnabled();
   		if (!enabled){
   			window.alert('Cookies are disabled on your browser,\nwhich will inhibit Oshe Radio from working correctly.\n\nEnable Cookies in your browser to prevent this.');
   		}
	}

// Returns true if cookies are supported by browser & switched on by user
	function cookiesEnabled() {
   		var cookiesEnabled = window.navigator.cookieEnabled;
		if (!cookiesEnabled) {
      			document.cookie = "cookiesEnabled=True";
      			cookiesEnabled = new Boolean(document.cookie).valueOf();
   		}
   		return cookiesEnabled;
	}

// Create a cookie
	function writeCookie(cookieName, cookieValue, expires, domain, path, secureFlag) {
   		if (cookieName) {
      			var cookieDetails = cookieName + "=" + escape(cookieValue);
      			cookieDetails += (expires ? "; expires=" + 
         			expires.toGMTString(): '');
      			cookieDetails += (domain ? "; domain=" + domain: '');
      			cookieDetails += (path ? "; path=" + path: '');
      			cookieDetails += (secureFlag ? "; secure": '');
      			document.cookie = cookieDetails;
   			}
  		}
  
// Reset cookie
	function resetCookie(cookieName, cookieValue, expires, domain, path, secureFlag, cookiePref) {
   		var expireDate = new Date();
   		expireDate.setDate(expireDate.getFullYear() + 1);
	
   		if (cookieName && (document.getElementById(cookiePref).checked==true)) {
      			var cookieDetails = cookieName + "=" + escape(document.getElementById(cookiePref).value);
      			cookieDetails += (expireDate ? "; expires=" + 
         			expireDate.toGMTString(): '');
      			cookieDetails += (domain ? "; domain=" + domain: '');
      			cookieDetails += (path ? "; path=" + path: '');
      			cookieDetails += (secureFlag ? "; secure": '');
      			document.cookie = cookieDetails;
   		}
   		else if (cookieName) {
      			var cookieDetails = cookieName + "=" + escape(cookieValue);
      			cookieDetails += (expireDate ? "; expires=" + 
         			expireDate.toGMTString(): '');
      			cookieDetails += (domain ? "; domain=" + domain: '');
      			cookieDetails += (path ? "; path=" + path: '');
      			cookieDetails += (secureFlag ? "; secure": '');
      			document.cookie = cookieDetails;
   		}
  	}
    
// Obtain a cookies unescaped value
	function readUnescapedCookie(cookieName) {
   		var cookieValue = document.cookie;
   		var cookieRegExp = new RegExp("\\b" + cookieName + "=([^;]*)");
   		cookieValue = cookieRegExp.exec(cookieValue);
		   
   		if (cookieValue != null) {
      			cookieValue = cookieValue[1];  
      		}
   		return cookieValue;
  	}
   
// Obtain a cookies value
	function readCookie(cookieName) {
		cookieValue = readUnescapedCookie(cookieName)
   
   		if (cookieValue != null) {
      			cookieValue = unescape(cookieValue);
   		}
   		return cookieValue;
  	}

// Deletes existing cookie
	function deleteCookie(cookieName) {
   		var expiredDate = new Date();
   		expiredDate.setMonth(-1);
   		
   		writeCookie(cookieName,"",expiredDate);
  	}

// Create a cookie and specify a sub value
	function writeMultiValueCookie( cookieName, multiValueName, value, expires, domain, path, secureFlag) {
   		var cookieValue = readUnescapedCookie(cookieName);
   		if (cookieValue) {
      			var stripAttributeRegExp = new RegExp("(^|&)" + multiValueName + "=[^&]*&?");
      			cookieValue = cookieValue.replace(stripAttributeRegExp,"$1");
      			if (cookieValue.length != 0) {
         			cookieValue += "&";
      			}
   		}
   		else 
      			cookieValue = "";
   
   			cookieValue += multiValueName + "=" + escape(value);
   			var cookieDetails = cookieName + "=" + cookieValue;
   			cookieDetails += (expires ? "; expires=" + expires.toGMTString(): '');
   			cookieDetails += (domain ? "; domain=" + domain: '');
   			cookieDetails += (path ? "; path=" + path: '');
   			cookieDetails += (secureFlag ? "; secure": '');
   			document.cookie = cookieDetails;
	}

// Obtain sub value stored inside a cookie
	function readMultiValueCookie(cookieName, multiValueName) {
   		var cookieValue = readUnescapedCookie(cookieName)
   		var extractMultiValueCookieRegExp = new RegExp("\\b" + multiValueName + "=([^;&]*)");
   		cookieValue = extractMultiValueCookieRegExp.exec(cookieValue);
		if (cookieValue != null) {
      			cookieValue = unescape(cookieValue[1]);  
   		}
   
		return cookieValue;
}

// Deletes sub value stored inside a cookie
	function deleteMultiValueCookie(cookieName, multiValueName, expires, domain, path, secureFlag) {
   		var cookieValue = readUnescapedCookie(cookieName);
   		if (cookieValue) {
      			var stripAttributeRegExp = new RegExp("(^|&)" + multiValueName + "=[^&]*&?");
      			cookieValue = cookieValue.replace(stripAttributeRegExp,"$1");
   			if (cookieValue.length != 0) {
         			var cookieDetails = cookieName + "=" + cookieValue;
         			cookieDetails += (expires ? "; expires=" + 
            				expires.toGMTString(): '');
         			cookieDetails += (domain ? "; domain=" + domain: '');
         			cookieDetails += (path ? "; path=" + path: '');
         			cookieDetails += (secureFlag ? "; secure": '');
         			document.cookie = cookieDetails;
      			}
      			else {
	         		deleteCookie(cookieName);
      			}
   		}
	}
	
//Info
//Professional JavaScript ,2nd Edition 
//by Mark Baartse, Stuart Conway, Jean-Luc David et al.  
//Apress © 2004 
