window.onload = init;

function init() {
	//boxes();
	shortcuts();
	externalLinks();
	//popup();
	//captureURL();
}

var dom;
dom=document.getElementById?true:false;

var opera;
if(navigator.userAgent.indexOf("Opera")!=-1) {
	opera = true
}

var mac;
if(navigator.platform.indexOf("Mac")!=-1) {
	mac = true
}


// BOXES - hover state for article/page intro boxes
$(function(){
	$(".box").hover(
		function() {

			//check for an anchor- if not, we don't want the box to highlight because it behaves like
			//it should link somewhere (confusing for user)

			var anchors= $('a', this).length;
			
			if (anchors > 0) {
				$(this).addClass("box-alt").removeClass("box");
			}
		},
		function() {
			$(this).addClass("box").removeClass("box-alt");		
		}
	);
});



/*
function boxes() {
	if (!document.getElementsByTagName) return;
	
	var layers = document.getElementsByTagName("div");
	var boxes = new Array();
	var j = 0;
	
    for (var i=0;i<layers.length;i++) {
		if (layers[i].id.indexOf("box_")!=-1 && layers[i].id.indexOf("_client_")==-1) {
			boxes[j] = layers[i].id;
			j++;
        }
    }
		
    for (var i=0;i<boxes.length;i++) {
        document.getElementById(boxes[i]).onmouseover = boxOn;
        document.getElementById(boxes[i]).onmouseout = boxOff;
    }
}
function boxOn() {
	if (this) {
	if ( this.className == "box clear" ) {

        	this.className = "box-alt clear";
        } else {
        	this.className = "box-alt";
        }
	}
}
function boxOff() {
	if ( this.className == "box-alt clear" ) {
    	this.className = "box clear";
    } else {
    	this.className = "box";
    }
}
*/

// SHORTCUT LINKS - finds all anchor tags and sets styles using focus to add a class 
function shortcuts() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
        if (document.all && (anchor.className == "hide-all" || anchor.className == "hide-screen") ) {
			// Focus on off screen links (screen reader navigation cues)
			// Internet Explorer needs a little help for :focus styled links
			// Need to set up a class to display them on screen, and
			// use this code to manipulate the class on the anchor
			////alert(i + ": " + anchor.href);
			if (anchor.href.indexOf('#')>=0) {
				anchor.onfocus = function() {
					//alert('linkFocus');
					this.className = 'show';
				}
				anchor.onblur = function() {
					this.className = '';
				}
			}
		}
	}
}


// EXTERNAL LINKS - finds all links with a rel attribute of "external" and/or "pdf" and sets their target to _blank
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.getAttribute("rel") == "pdf") {
            anchor.target = "_blank";
            anchor.title = "opens in a new window";
        }
    }
}


/* REDUNDANT - using boxes() now
function rollOn(lyr) {
	if(document.getElementById(lyr.id+"box")) {
		document.getElementById(lyr.id+"box").className = "roll";
	}
}
function rollOff(lyr) {
	if(document.getElementById(lyr.id+"box")) {
		document.getElementById(lyr.id+"box").className = "box";
	}
}
*/


var counter = 0;
var amount = 10;

function panelAppear(type,msg,linkhref){
	if(mac==true || dom!=true || opera==true){
		document.location.href=linkhref.href;
	} else {
		var obj = document.getElementsByTagName("object");
		var emb = document.getElementsByTagName("embed");
		if (type=="contact") {
			for (i=0;i<emb.length;i++) { if(emb[i].id!="flash-header"){emb[i].style.visibility="hidden";} }
			for (i=0;i<obj.length;i++) { if(obj[i].id!="flash-header"){obj[i].style.visibility="hidden";} }
			document.location.href="#";
			document.getElementById("Subject").value = msg;
			document.getElementById("message").innerHTML = "<h3>"+msg+"</h3>";
			document.getElementById("Ajax").value = "true";
			document.getElementById("body").className = "panel";
			document.getElementById("file-upload").style.display = "none";
			document.getElementById("contact-inner").style.display = "block";
			document.getElementById("contact-panel").style.display = "block";
			document.getElementById("contact-panel2").style.display = "block";
			document.getElementById("message").style.display = "block";
			document.getElementById("contactform").className="form-show";
			document.getElementById("waiting").innerHTML="<img src=\"/assets/images/waiting.gif\" width=\"169\" height=\"20\" alt=\"Please wait...\" />"
			document.getElementById("waiting").className="form-hidden";
			document.getElementById("sent").innerHTML="<br /><h2>Thank you!</h2><p>Your details have been sent to us. You will be contacted shortly.</p>";
			document.getElementById("sent").className="form-hidden";
			document.getElementById("contact-anchor").focus();
		} else if (type=="newsletter") {
			for (i=0;i<emb.length;i++) { if(emb[i].id!="flash-header"){emb[i].style.visibility="hidden";} }	
			for (i=0;i<obj.length;i++) { if(obj[i].id!="flash-header"){obj[i].style.visibility="hidden";} }
			document.location.href="#";
			document.getElementById("body").className = "panel";
			document.getElementById("newsletter-inner").style.display = "block";
			document.getElementById("newsletter-panel").style.display = "block";
			document.getElementById("newsletter-panel2").style.display = "block";
			document.getElementById("newsletter-anchor").focus();
		} else {
			for (i=0;i<emb.length;i++) { if(emb[i].id!="flash-header"){emb[i].style.visibility="hidden";} }
			for (i=0;i<obj.length;i++) { if(obj[i].id!="flash-header"){obj[i].style.visibility="hidden";} }
			document.location.href="#";
			document.getElementById("body").className = "panel";
			document.getElementById("inner").style.display = "block";
			document.getElementById("panel").style.display = "block";
			document.getElementById("panel2").style.display = "block";
			document.getElementById("settings-anchor").focus();
		}
	}
}

function panelHide(type) {
	var obj = document.getElementsByTagName("object");
	var emb = document.getElementsByTagName("embed");

	if (type=="contact") {
		for (i=0;i<emb.length;i++) { emb[i].style.visibility="visible"; }
		for (i=0;i<obj.length;i++) { obj[i].style.visibility="visible"; }
		document.getElementById("body").className = "";
		document.getElementById("contact-inner").style.display = "none";
		document.getElementById("contact-panel").style.display = "none";
		document.getElementById("contact-panel2").style.display = "none";
		document.getElementById("contactform").className="form-show";
		document.getElementById("waiting").className="form-hidden";
		document.getElementById("sent").className="form-hidden";
		document.getElementById("contactform").style.display = "block";
		document.getElementById("Subject").value = "";
		document.getElementById("Ajax").value = "";
	}
	else if (type=="newsletter") {
		for (i=0;i<emb.length;i++) { emb[i].style.visibility="visible"; }
		for (i=0;i<obj.length;i++) { obj[i].style.visibility="visible"; }
		document.getElementById("body").className = "";
		document.getElementById("newsletter-inner").style.display = "none";
		document.getElementById("newsletter-panel").style.display = "none";
		document.getElementById("newsletter-panel2").style.display = "none";
	} else {
		for (i=0;i<emb.length;i++) { emb[i].style.visibility="visible"; }	
		for (i=0;i<obj.length;i++) { obj[i].style.visibility="visible"; }
		document.getElementById("body").className = "";
		document.getElementById("inner").style.display = "none";
		document.getElementById("panel").style.display = "none";
		document.getElementById("panel2").style.display = "none";
	}
}	





//RESOLUTION SWITCHER---------------------------------------------------------------------------------------


function addLoadListener(fn) {
	if (typeof window.addEventListener != 'undefined') { window.addEventListener('load', fn, false); }
	else if (typeof document.addEventListener != 'undefined') { document.addEventListener('load', fn, false); }
	else if (typeof window.attachEvent != 'undefined') { window.attachEvent('onload', fn); }
	else{return false;}
	return true;
};

function attachEventListener(target, eventType, functionRef, capture) {
    if (typeof target.addEventListener != "undefined") { target.addEventListener(eventType, functionRef, capture); }
    else if (typeof target.attachEvent != "undefined") { target.attachEvent("on" + eventType, functionRef); }
    else { return false; }
    return true;
};

checkBrowserWidth();
attachEventListener(window, "resize", checkBrowserWidth, false);

function checkBrowserWidth(){
	if (mac !=true) {
		var theWidth = getBrowserWidth();
	
		if (theWidth == 0) {
			var resolutionCookie = document.cookie.match(/(^|;)fc_layout[^;]*(;|$)/);
			if (resolutionCookie != null){
				setStylesheet(unescape(resolutionCookie[0].split("=")[1]));
			}
			addLoadListener(checkBrowserWidth);
			return false;
		}

		if (theWidth > 930) {
			setStylesheet("Large");
			document.cookie = "fc_layout=" + escape("Large");
		} else {
			setStylesheet("Small");
			document.cookie = "fc_layout=" + escape("Large");		
		}
		return true;
	}
};

function getBrowserWidth(){
	if (window.innerWidth){return window.innerWidth;}
	else if (document.documentElement && document.documentElement.clientWidth != 0){return document.documentElement.clientWidth;}
	else if (document.body){return document.body.clientWidth;}
	return 0;
};

function setStylesheet(styleTitle) {
	var currTag;
	if (document.getElementsByTagName) {
		for (var i = 0; (currTag = document.getElementsByTagName("link")[i]); i++){
			if (currTag.getAttribute("rel").indexOf("style") != -1 && currTag.getAttribute("title")){
				currTag.disabled = true;
				if(currTag.getAttribute("title") == styleTitle){
					currTag.disabled = false;
				}
			}
		}
	}
	return true;
};




function waitRequest() {
	if (dom) {
		document.getElementById("contactform").className="form-hidden";
		document.getElementById("contactform").style.display="none";
		document.getElementById("waiting").className="form-show";
		setTimeout("makeRequest()",2000);
	}
}


function makeRequest() {
    var http_request = false;
    if (window.XMLHttpRequest) {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
        }
    }

	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
		
	var fieldSubject = encodeURI(document.getElementById("Subject").value);
	var fieldName = encodeURI(document.getElementById("Name").value);
	var fieldSurname = encodeURI(document.getElementById("Surname").value);
	var fieldCompany = encodeURI(document.getElementById("Company").value);
	var fieldTelephone = encodeURI(document.getElementById("Telephone").value);
	var fieldEmail = encodeURI(document.getElementById("Email").value);
	var fieldDescription = encodeURI(document.getElementById("Description").value);
		
	var fieldNewsletter;
	if (document.getElementById("Newsletter").checked) {
		var fieldNewsletter=encodeURI("yes")
	} else {
		var fieldNewsletter=encodeURI("no")
	}
	var str = "Subject=" + fieldSubject + "&Name=" + fieldName + "&Surname=" + fieldSurname + "&Company=" + fieldCompany + "&Telephone=" + fieldTelephone + "&Email=" + fieldEmail + "&Description=" + fieldDescription + "&Newsletter=" + fieldNewsletter 
	var url = "contact-us-thanks.html"
		
	http_request.onreadystatechange = function() { alertContents(http_request); };
	http_request.open('POST', url, true);
	http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	http_request.send(str);
}

function alertContents(http_request) {
	if (http_request.readyState == 4) {
		document.getElementById("waiting").className="form-hidden";
		document.getElementById("sent").className="form-show";
		if (http_request.status == 200) {
		} else {
			alert('There was a problem with the request.');
		}
	}
}



function chkForm(fo) {
	if (dom) {
		submittable = true;
		errorlist = new Array();
		errorlistcount = 0;

		//personal detail fields
		chkText(fo.Name,'Please enter your First Name','Please enter your first name');
		chkText(fo.Surname,'Please enter your Surname','Please enter your surname');
		chkEmail(fo.Email,'Please enter a valid Email address','Please enter a valid email address');
		
		//chkFocus();
		if(submittable==true){
			waitRequest();
		}
	}
}
		
function chkNMAForm(fo){
	if (dom) {
		submittable = true;
		errorlist = new Array();
		errorlistcount = 0;

		//personal detail fields
		chkText(fo.makes,'Please complete the missing fields','Please complete the missing fields');
		chkText(fo.grow,'Please complete the missing fields','Please complete the missing fields');
		chkText(fo.fonder,'Please complete the missing fields','Please complete the missing fields');
		chkText(fo.Name,'Please enter your Full Name','Please enter your Full Name');
		chkText(fo.Company,'Please enter a company name','Please enter a company name');
		chkEmail(fo.Email,'Please enter a valid Email address','Please enter a valid email address');
		
		//chkFocus();
		return submittable;
	}
}		

function chkFormAlt(fo){
	if (dom) {
		submittable = true;
		errorlist = new Array();
		errorlistcount = 0;

		//personal detail fields
		chkText(fo.Name,'Please enter your First Name','Please enter your first name');
		chkText(fo.Surname,'Please enter your Surname','Please enter your surname');
		chkEmail(fo.Email,'Please enter a valid Email address','Please enter a valid email address');
		
		//chkFocus();
		return submittable;
	}
}

function chkFormNews(fo){
	if (dom) {
		submittable = true;
		errorlist = new Array();
		errorlistcount = 0;

		//personal detail fields
		chkText(fo.first_name,'Please enter your First Name','Please enter your first name');
		chkText(fo.last_name,'Please enter your Surname','Please enter your surname');
		chkEmail(fo.email,'Please enter a valid Email address','Please enter a valid email address');
		
		//chkFocus();
		return submittable;
	}
}


//Disguised email addresses
//email us
	
function emailus(name,txt) {
	var at = "@";
	var domain = "fortunecookie.co.uk";
	if(txt){anc = "<a href='mailto:"+name+at+domain+"'>"+txt+"</a>";}
	else{anc = "<a href='mailto:"+name+at+domain+"'>"+name+at+domain+"</a>";}
	return anc;
}