/*SLEEPERS***********************************************************************/
/********************************************************************************/
function addJavascript(jsname) {
	var th = document.getElementsByTagName('head')[0];
	var s = document.createElement('script');
	s.setAttribute('type','text/javascript');
	s.setAttribute('src',jsname);
	th.appendChild(s);
} 

function includeCSS(p_file) {
	var th = document.getElementsByTagName('head')[0];
	var v_css  = document.createElement('link');
	v_css.rel = 'stylesheet'
	v_css.type = 'text/css';
	v_css.href = p_file;
	th.appendChild(v_css);
}
function generalGetElementsByClassName(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = document.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	return retnode;
}; 
function generalGindMyText(myClass, needle, replacement) {
	myClasses = getElementsByClassName(myClass);
	haystackText = [];
	for (i=0; i<myClasses.length; i++) {
		haystackText[i] = myClasses[i].innerHTML;
	}
     var match = new RegExp(needle, "ig");     
     var replaced = "";
     if (replacement.length > 0) {
		  for (i = 0; i < haystackText.length; i++) {
		  	replaced = haystackText[i].replace(match, replacement);
     		myClasses[i].innerHTML = replaced;
		  }
     }
}
//changing hidden field values on submit
function generalSetField(id, value) {
	var field = document.getElementById(id);
	field.value = value;
	return false;
}
function generalFindPosX(obj) {
	var curleft = 0;
	if(obj.offsetParent)
		while(1) 
		{
			curleft += obj.offsetLeft;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		}
	else if(obj.x)
		curleft += obj.x;
		return curleft;
}

 function generalFindPosY(obj) {
	var curtop = 0;
	if(obj.offsetParent)
	while(1)
	{
		curtop += obj.offsetTop;
		if(!obj.offsetParent)
		break;
		obj = obj.offsetParent;
	}
	else if(obj.y)
		curtop += obj.y;
		return curtop;
}

/*BROWSER DETECTION**************************************************************/
/********************************************************************************/
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();
if (BrowserDetect.browser == "Safari") {
	includeCSS(josBaseurl + '/templates/' + josTemplate + '/css/safari.css');
}
if (BrowserDetect.OS == "Mac") {
	includeCSS(josBaseurl + '/templates/' + josTemplate + '/css/mac.css');
}
if ((BrowserDetect.OS == "Mac") && (BrowserDetect.browser == "Safari")) {
	includeCSS(josBaseurl + '/templates/' + josTemplate + '/css/safari_mac.css');
}
jQuery.noConflict();
Floaties = {
	infantSwimItem:'li.item12 a',
	infantVideosLink:'.videos-link',
	infantSwimItemClass: '.infants-link',
	set:function(){
		jQuery('#body_outer_wrapper').hide();
		jQuery(document).ready(function(){
			jQuery('#body_outer_wrapper').fadeIn();
			jQuery(floaties.infantSwimItem).colorbox({
				iframe: true,
				width: '950px',
				height: '785px',
				scrolling: false
			}); 
			jQuery(floaties.infantSwimItemClass).colorbox({
				iframe: true,
				width: '950px',
				height: '785px',
				scrolling: false
			});
			jQuery(floaties.infantVideosLink).colorbox({
				iframe: true,
				width: '725px',
				height: '380px',
				scrolling: false
			}); 
			// bind form using 'ajaxForm' 
			jQuery('.newsletter-signup form').ajaxForm(options);
			if(!jQuery('#postcontent').html()||jQuery('#postcontent').html()=='') {
				jQuery('.set_cthreecenter_edit').css('paddingBottom', '0');
			}
			var options = { 
				//target:        '.newsletter-signup form',   // target element(s) to be updated with server response 
				beforeSubmit:  floaties.showNLRequest,  // pre-submit callback 
				success:       floaties.showNLResponse,  // post-submit callback 
				url:           'news-letter-signup/news_letter.ajax.php'// override for form's 'action' attribute 
				
				// other available options: 
				//type:      type        // 'get' or 'post', override for form's 'method' attribute 
				//dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
				//clearForm: true        // clear all form fields after successful submit 
				//resetForm: true        // reset the form after successful submit 
				
				// $.ajax options can be used here too, for example: 
				//timeout:   3000 
			}; 
			
		});
	},
	showNLRequest:function(formData, jqForm, options){
		// formData is an array; here we use $.param to convert it to a string to display it 
		// but the form plugin does this for you automatically when it submits the data 
		var queryString = jQuery.param(formData); 
	     
		// jqForm is a jQuery object encapsulating the form element.  To access the 
		// DOM element for the form do this: 
		// var formElement = jqForm[0]; 
	     
		//alert('About to submit: \n\n' + queryString); 
	     
		// here we could return false to prevent the form from being submitted; 
		// returning anything other than false will allow the form submit to continue 
		return true; 
	},
	showNLResponse :function(responseText, statusText, xhr, $form){
		// for normal html responses, the first argument to the success callback 
		// is the XMLHttpRequest object's responseText property 
	     
		// if the ajaxForm method was passed an Options Object with the dataType 
		// property set to 'xml' then the first argument to the success callback 
		// is the XMLHttpRequest object's responseXML property 
	     
		// if the ajaxForm method was passed an Options Object with the dataType 
		// property set to 'json' then the first argument to the success callback 
		// is the json data object returned by the server 
		//$.colorbox({html:'<p>' + + '</p>'});
		/*alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
		   '\n\nThe output div should have already been updated with the responseText.');*/
		switch (responseText) {
			case 'good':
				jQuery.colorbox({html:'<h3 style="color: #444;">Thank you for subscribing! We have recieved your information.'});
				break;
			case 'nogo':
				alert('Please include a valid email address.');
				break;
			case 'emailaddress':
				jQuery.colorbox({html:'<h3 style="color: #444;">We apoligize but there was an error.  Please try again later.'});
				break;
			default:
				jQuery.colorbox({html:'<h3 style="color: #444;">We apoligize but there was an error.  Please try again later.'});
				break;
		}
	}
};

var floaties =  new Class(Floaties);
floaties.set();

