﻿Type.registerNamespace('FuelLines.Settings');
var $UI = FuelLines.Settings;
var lib = AjaxControlToolkit.Animation;

var pageMgr = Sys.WebForms.PageRequestManager.getInstance();

FuelLines.Settings.apply = function(target, src, def) {
	if (def) {
		FuelLines.Settings.apply(target, def);
	}

	if (target && src && typeof src == 'object') {
		for (var p in src) {
			target[p] = src[p];
		}
	}
	return target;
};

(function() {
	var ua = navigator.userAgent.toLowerCase();

	var isStrict = document.compatMode == "CSS1Compat",
        isOpera = ua.indexOf("opera") > -1,
        isSafari = (/webkit|khtml/).test(ua),
        isSafari3 = isSafari && ua.indexOf('webkit/5') != -1,
        isSafari30 = isSafari && ua.indexOf('version/3.0') != -1 && ua.indexOf('webkit/5') != -1,
		isChrome = isSafari && ua.indexOf("chrome") > 1,
        isIE = !isOpera && ua.indexOf("msie") > -1,
        isIE7 = !isOpera && ua.indexOf("msie 7") > -1,
        isIE8 = !isOpera && ua.indexOf("msie 8") > -1,
        isGecko = !isSafari && ua.indexOf("gecko") > -1,
        isFirefox2 = isGecko && ua.indexOf("firefox/2") > 1,
        isFirefox3 = isGecko && ua.indexOf("firefox/3") > 1,
		isFirefox35 = isGecko && ua.indexOf("firefox/3.5") > 1,
        isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1),
        isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1),
        isSecure = window.location.href.toLowerCase().indexOf("https") === 0;

	//This puts the browser and platform into the class attribute of HTML tag to allow browser sniffing in CSS.
	//Not worth try to refactor to use the vars above - based on http://rafael.adm.br/css_browser_selector/
	var h = document.getElementsByTagName('html')[0];
	is = function(t) { return ua.indexOf(t) > -1; }
	g = 'gecko',
	w = 'webkit',
	s = 'safari',
	o = 'opera',
	h = document.getElementsByTagName('html')[0],

	b = [(!(/opera|webtv/i.test(ua)) && /msie\s(\d)/.test(ua)) ? ('ie ie' + RegExp.$1) : is('firefox/2') ? g + ' ff2' : is('firefox/3.5') ? g + ' ff3 ff3_5' : is('firefox/3') ? g + ' ff3' : is('gecko/') ? g : is('opera') ? o + (/version\/(\d+)/.test(ua) ? ' ' + o + RegExp.$1 : (/opera(\s|\/)(\d+)/.test(ua) ? ' ' + o + RegExp.$2 : '')) : is('konqueror') ? 'konqueror' : is('chrome') ? w + ' chrome' : is('iron') ? w + ' iron' : is('applewebkit/') ? w + ' ' + s + (/version\/(\d+)/.test(ua) ? ' ' + s + RegExp.$1 : '') : is('mozilla/') ? g : '', is('j2me') ? 'mobile' : is('iphone') ? 'iphone' : is('ipod') ? 'ipod' : is('mac') ? 'mac' : is('darwin') ? 'mac' : is('webtv') ? 'webtv' : is('win') ? 'win' : is('freebsd') ? 'freebsd' : (is('x11') || is('linux')) ? 'linux' : '', 'js'];
	c = b.join(' ');
	h.className += ' ' + c;

	// this block is applied inside the fn because we're accessing the private vars above to create the public properties.
	FuelLines.Settings.apply(FuelLines.Settings, {
		isStrict: isStrict,
		isSecure: isSecure,
		isOpera: isOpera,
		isSafari: isSafari,
		isSafari30: isSafari30,
		isSafari3: isSafari3,
		isSafari2: isSafari && !isSafari3,
		isIE: isIE,
		isIE6: isIE && !isIE7,
		isIE7: isIE7,
		isIE8: isIE8,
		isGecko: isGecko,
		isChrome: isChrome,
		isFirefox2: isFirefox2,
		isFirefox3: isFirefox3,
		isFirefox3: isFirefox35,
		isWindows: isWindows,
		isMac: isMac
	}
	);
})()



//Type.registerNamespace('ErrorMessage.Settings');
//var $UI = ErrorMessage.Settings;

//ErrorMessage.Settings.apply = function(target, src, def) {
//	if (def) {
//		ErrorMessage.Settings.apply(target, def);
//	}

//	if (target && src && typeof src == 'object') {
//		for (var p in src) {
//			target[p] = src[p];
//		}
//	}
//	return target;
//};

//	css_browser_selector(navigator.userAgent);

//	ErrorMessage.Settings.apply(ErrorMessage.Settings, {
//		isStrict: isStrict,
//		isSecure: isSecure,
//		isOpera: isOpera,
//		isSafari: isSafari,
//		isSafari3: isSafari3,
//		isSafari2: isSafari && !isSafari3,
//		isIE: isIE,
//		isIE6: isIE && (!isIE7 && !isIE8),
//		isIE7: isIE7,
//		isIE8: isIE8,
//		isGecko: isGecko,
//		isFirefox2: isFirefox2,
//		isFirefox3: isFirefox3,
//		isChrome : isChrome,
//		isIPhone : isIPhone,
//		isWindows : isWindows,
//		isMac : isMac
//	}
//	);
//})();

////This puts the browser and platform into the class attribute of HTML tag to allow browser sniffing in CSS.
////Not worth try to refactor to use the vars above - based on http://rafael.adm.br/css_browser_selector/
//function css_browser_selector(u) {
//	var ua = u.toLowerCase(), is = function(t) { return ua.indexOf(t) > -1; },
//	g = 'gecko',
//	w = 'webkit',
//	s = 'safari',
//	h = document.getElementsByTagName('html')[0],
//	b = [(!(/opera|webtv/i.test(ua)) && /msie\s(\d)/.test(ua))
//		? ('ie ie' + RegExp.$1) : is('firefox/2')
//		? g + ' firefox2' : is('firefox/3') ? g + ' firefox' : is('gecko/') 
//		? g : /opera(\s|\/)(\d+)/.test(ua)
//		? 'opera opera' + RegExp.$2 : is('konqueror')
//		? 'konqueror' : is('chrome')
//		? w + ' ' + s + ' chrome' : is('applewebkit/')
//		? w + ' ' + s + (/version\/(\d+)/.test(ua)
//		? ' ' + s + RegExp.$1 : '') : is('mozilla/')
//		? g : '', is('j2me')
//		? 'mobile' : is('iphone')
//		? 'iphone' : is('ipod')
//		? 'ipod' : is('mac')
//		? 'mac' : is('darwin')
//		? 'mac' : is('webtv')
//		? 'webtv' : is('win')
//		? 'win' : is('freebsd') 
//		? 'freebsd' : (is('x11') || is('linux')) ? 'linux' : '', 'js']; 
//	c = b.join(' '); 
//	h.className += ' ' + c;
//	return c;
//};
