function addEvent(obj, evType, fn)
{
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

// toggle stuff by ID
function toggle (targetId) {
	if (document.getElementById) {
			var target = document.getElementById(targetId);

			if (target.style.display == "none") {
					target.style.display = "block";
			} else {
					target.style.display = "none";
			}
	}
}

// show stuff by ID
function show (targetId) {
	if (document.getElementById) {
			var target = document.getElementById(targetId);

			if (target.style.display == "none") {
					target.style.display = "block";
			} else return false;
	}
}
// hide stuff by ID
function hide (targetId) {
	if (document.getElementById) {
			var target = document.getElementById(targetId);

			if (target.style.display == "block") {
					target.style.display = "none";
			} else return false;
	}
}

// contact form display
function formDisplay ()
{
	/*
	a) hide the reservation fields on load, so that javascript disabled browsers can see them
	b) keep showing them if the "reservations" option is checked and the page is reloaded.
	*/
	if (!document.getElementById('reservations'))
		return false
	var container = document.getElementById('reservations');
	var element = document.getElementById('contact').request[1]; //use form id for xhtml strict validation

	if (document.getElementById) {
			if (element.checked == true) {
					container.style.display = "block";
					return false;
			} else {
					container.style.display = "none";
			}
	}
}



/* -----------------------------------------------------------------------------------------
* Summary: 			adds the onclick popup attribute to appropriate links
* Parameters: 		None
----------------------------------------------------------------------------------------- */

function prepareThumbs ()
{
	if (!document.getElementsByTagName)
		return false;
	var links = document.getElementsByTagName("a");

	if (links)
	{
		for (var i=0; i < links.length; i++)
		{
			var anchor = links[i];
			if (anchor.className.match("popup"))
			{
				anchor.onclick = function()
				{
					imgPop (this.href, this.title);
					return false;
				}
			}
		} // end loop

	} else return false;
	return null;
}

function imgPop (imageURL,imageTitle)
{
	//pass both parameters in the URL
	var newWin = window.open( "pop_img.html?"+imageURL+"?"+imageTitle, "popImg",  'status=yes,scrollbars=no,resizable=yes,width=700,height=650');
	if (window.focus) {newWin.focus()}

}

/* -----------------------------------------------------------------------------------------
* Summary: 			Opens links with attribute rel="external" in a new window.
----------------------------------------------------------------------------------------- */
function externalLinks()
{
	if (!document.getElementsByTagName) return;

	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++)
	{
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
			anchor.target = "_blank";
		}
	}
}

/* -----------------------------------------------------------------------------------------
* Summary: 			Removes the rectangle that appears around links in Firefox.
* Parameters: 		None.
----------------------------------------------------------------------------------------- */
var removeRectangle = function()
{
    var lnks = document.links;
    if (lnks) {
        for (var i = 0; i < lnks.length; i++) {
            lnks[i].onmousedown = function() {
                this.blur();
                return false;
            }
        }
    }
}

/**
 * Adds a javascript file link to the head of the page.
 * -------------------------------------------------------------------------- */
function includeDom(script_filename)
{
    if (typeof document.getElementsByTagName == 'undefined') { return false; }

	var html_doc = document.getElementsByTagName('head').item(0);
    var js = document.createElement('script');
    js.setAttribute('language', 'javascript');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', script_filename);
    html_doc.appendChild(js);
    return false;
}

included_files = new Array();

/**
 * Adds/Includes a javascript file "once"
 * @see {in_array, includeDom}
 * @param {String} script_filename
 * -------------------------------------------------------------------------- */
function includeOnce(script_filename)
{
    if (!in_array(script_filename, included_files))
	{
        included_files[included_files.length] = script_filename;
        includeDom(script_filename);
    }
}

/**
 * @param {Object} needle
 * @param {Object} haystack
 * @return {Boolean}
 * -------------------------------------------------------------------------- */
function in_array(needle, haystack)
{
    for (var i = 0; i < haystack.length; i++)
	{
        if (haystack[i] == needle) { return true; }
    }
    return false;
}

function getElementsByClass (searchClass, node, tag)
{
	var classElements = new Array();

	if ( node == null ) { node = document; }
	if ( tag == null ) { tag = '*'; }

	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");

	for (i = 0, j = 0; i < elsLen; i++)
	{
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function prepareGallery ()
{
    var content = document.getElementById("content-main");
    var lists = getElementsByClass ('gallery', content, 'div');

    if (typeof content == 'undefined' ) { return false; }
    if (typeof lists == 'undefined' ) { return false; }

    if (lists.length != 0) {
		var js_path = 'assets/scripts/';
		includeOnce(js_path + 'lightwindow.js');
	}
}

/* -----------------------------------------------------------------------------------------
* Summary: 			Obfuscates provided string.
* Parameters: 		String to be obfuscated.
----------------------------------------------------------------------------------------- */
function obfuscate (text)
{
    var obfuscated = '';

    for (i = 0; i < text.length; i++) {
		obfuscated += "&#" + text.charCodeAt(i);
	}
	return (obfuscated);
}
/* -----------------------------------------------------------------------------------------
* Summary: 			Writes the obfuscated mailto link to the page.
* Parameters: 		Mailbox user name - string.
					Optional - String with the link text.
----------------------------------------------------------------------------------------- */
function show_address (link_text)
{
	var user_name 	= 'info';
	var domain_name	= 'corfucottage.com';
	var address 	= user_name + '@' + domain_name;
	var address_obf = obfuscate (address);

	if (link_text != '') {
		var link_text = obfuscate (link_text);
	}
	else {
		var link_text = address;
	}
	document.write('<a href="mailto:' + address_obf + '">' + link_text + '</a>');
}

var win= null;
function NewWindow(mypage,myname,w,h,scroll)
{
	var winl = (screen.width-w)/2;
	var wint = (screen.height-h)/2;
	var settings ='height='+h+',';
	settings +='width='+w+',';
	settings +='top='+wint+',';
	settings +='left='+winl+',';
	settings +='scrollbars='+scroll+',';
	settings +='resizable=yes';

	win=window.open(mypage,myname,settings);

	if(parseInt(navigator.appVersion) >= 4)
	{
		win.window.focus();
	}
}
function carWin() {
  if (!document.getElementsByTagName) return false;
		var links = document.getElementsByTagName("a");

		for (var i=0; i < links.length; i++) {
				if (links[i].className.match("car-win")) {
					links[i].onclick = function() {
						carPop(this.href);
						return false;
					}
				}
		} // end loop
}

function carPop(targetURL) {
	var carURL = targetURL;
	NewWindow (carURL, 'car','660','570','yes');
}


/*
window.onload=function()
{
	prepareThumbs ();
	externalLinks ();
	removeRectangle();
	formDisplay ();
	carWin();
}
*/
if(document.getElementById)
{
	addEvent(window, 'load', prepareThumbs);
	addEvent(window, 'load', externalLinks);
	addEvent(window, 'load', formDisplay);
	addEvent(window, 'load', removeRectangle);
	addEvent(window, 'load', formDisplay);
	addEvent(window, 'load', carWin);
	//addEvent(window, 'load', captchaAddTrigger);
}
