var preloadFlag = false;

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function preloadImagesSK() {
	if (document.images) {
		header_13_over 				= newImage("/images/xheader_13-over.gif");
		header_14_home 				= newImage("/images/xheader_14_home_on.gif");
		header_14_services 			= newImage("/images/xheader_14_services_on.gif");
		header_15_over 				= newImage("/images/xheader_15-over.gif");
		header_16_products			= newImage("/images/xheader_16_products_on.gif");
		header_16_services			= newImage("/images/xheader_16_services_on.gif");
		header_17_over 				= newImage("/images/xheader_17-over.gif");
		header_18_products			= newImage("/images/xheader_18_products_on.gif");
		header_18_portfolio			= newImage("/images/xheader_18_portfolio_on.gif");
		header_19_over 				= newImage("/images/xheader_19-over.gif");
		header_20_company			= newImage("/images/xheader_20_company_on.gif");
		header_20_portfolio			= newImage("/images/xheader_20_portfolio_on.gif");
		header_21_over 				= newImage("/images/xheader_21-over.gif");
		preloadFlag 				= true;
	}
}

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 $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

function changeCSS(thisId,changeTo) {
	if (thisElement = document.getElementById(thisId)) {
		thisElement.className = changeTo;	
	}
}

function changeImages(thisId,changeTo) {
	if (document.images && (preloadFlag == true)) {
		if (thisImage = document.getElementById(thisId)) {
			thisImage.src = changeTo;
		}
	}
}

function changeContent(thisId,changeTo) {
	if (thisElement = document.getElementById(thisId)) {
		thisElement.innerHTML = changeTo;	
	}
}

function jsErrorHandler(msg) {
	alert(msg);
}


function echeck(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}

	if (str.indexOf(at,(lat+1))!=-1){
		return false
	}

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	}

	if (str.indexOf(dot,(lat+2))==-1){
		return false
	}
		
	if (str.indexOf(" ")!=-1){
		return false
	}

	return true					

}



function grabElement(element) {
	if (return_element = document.getElementById(element)) {
		return return_element;
	} else {
		return null;	
	}
}


function checkContactForm() {

	var errorString = '';

	name 				= grabElement("name");
	email				= grabElement("email");
	phone				= grabElement("phone");
	comments			= grabElement("comments");
	contact_via			= grabElement("contact_via");
	
	if (name.length <= 0 || name.value == '' || name.value == null) {
		errorString = errorString + '* Please enter your name into the form.' + "\r\n";	
	}

	if (comments.length <= 0 || comments.value == '' || comments.value == null) {
		errorString = errorString + '* Please enter your comments into the form.' + "\r\n";	
	}

	if (contact_via.value == "email") {
		if (echeck(email.value)==false) {
			errorString = errorString + '* Please enter a valid e-mail address into the form.' + "\r\n";
		}	
	}
	
	if (errorString.length > 2) {
		jsErrorHandler(errorString);
		return false;	
	} else {
		return true;	
	}
	
}


function checkCompanyForm() {

	var errorString = '';
	company_name 		= grabElement("company_name");
	company_contact 	= grabElement("company_contact");
	company_email		= grabElement("company_email");
	company_address		= grabElement("company_address1");
	company_city		= grabElement("company_city");	
	company_zip			= grabElement("company_zip");	
	admin_user			= grabElement("admin_user");	
	admin_pass			= grabElement("admin_pass");	
	
	if (company_name.length<=0 || company_name.value=='My Company' || company_name.value==null) {
		errorString = errorString + '* Please enter your company name into the form.' + "\r\n";	
	}

	if (company_contact.length<=0 || company_contact.value=='Mr. Contact' || company_contact.value==null) {
		errorString = errorString + '* Please enter your company contact name into the form.' + "\r\n";	
	}

	if (company_email.length<=0 || company_email.value==null || echeck(company_email.value)==false || company_email.value=='My Email') {
		errorString = errorString + '* Please enter a valid email address into the form.' + "\r\n";		
	}

	if (company_address.length<=0 || company_address.value=='My Address 1' || company_address.value==null) {
		errorString = errorString + '* Please enter your company address into the form.' + "\r\n";	
	}
	
	if (company_city.length<=0 || company_city.value=='My City' || company_city.value==null) {
		errorString = errorString + '* Please enter your company city into the form.' + "\r\n";	
	}

	if (company_zip.length<=0 || company_zip.value=='My Zip' || company_zip.value==null) {
		errorString = errorString + '* Please enter your company zip/post code into the form.' + "\r\n";	
	}

	if (admin_user.length<=0 || admin_user.value=='Enter' || admin_user.value==null) {
		errorString = errorString + '* Please choose an administrator username for the site.' + "\r\n";	
	}

	if (admin_pass.length<=0 || admin_pass.value=='Enter' || admin_pass.value==null) {
		errorString = errorString + '* Please choose an administrator password for the site.' + "\r\n";	
	}

	if (errorString.length > 2) {
		jsErrorHandler(errorString);
		return false;	
	} else {
		return true;	
	}

}

function checkAdminLogin() {

	var errorString = '';
	admin_user 		= grabElement("admin_user");
	admin_pass	 	= grabElement("admin_pass");
	
	if (admin_user.value=='' || admin_user.value==null) {
		errorString = errorString + '* Please enter the administrator username.' + "\r\n";	
	}

	if (admin_pass.value=='' || admin_pass.value==null) {
		errorString = errorString + '* Please enter the administrator password.' + "\r\n";	
	}

	if (errorString.length > 2) {
		jsErrorHandler(errorString);
		return false;	
	} else {
		return true;	
	}

}

function sk_changeCSS(elementToChange,changeToClass) {
	if (elementToChange != null && changeToClass != null) {
		document.getElementById(elementToChange).className = changeToClass;
		return true;
	}
	return false;
}

function skToggle(obj) {
	var el = document.getElementById(obj);
	el.style.display 	= (el.style.display != 'none' ? 'none' : 'block' );
	el.style.visibility = (el.style.visibility != 'hidden' ? 'hidden' : 'visible' );
}
  
function setCookie(name, value, expires, path, domain, secure) {
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function toggleToolTips() {
	if (tipsStatus = getCookie("SKEDITOR_TOOLTIPS")) {
		deleteCookie("SKEDITOR_TOOLTIPS");
	} else {
		setCookie("SKEDITOR_TOOLTIPS","OFF");
	}
	if (buttonArea = grabElement("sk_tooltips")) {
		buttonArea.innerHTML = displayToolTipSwitch();
	}
	return;
}