window.onload = init;

function init() {
	//boxes();
	shortcuts();
	externalLinks();
	//popup();
	//captureURL();
	social("[data-fc-social-type]");
}

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
}

var isLteIE7 = /*@cc_on@*//*@if (@_jscript_version <= 5.7)1; /*@end@*/0;

var offices = function ()
{

    var __overlay = $("#overlay");
    var __officesLink = $("#offices a.offices");
    var __countries = $("#worldwide");
    var __countriesList = $("#worldwide div.country-list");
    var __close = $("#worldwide a#close");


    var __height = "12em";

    __officesLink.bind("click", function ()
    {
        __officesLink.addClass("officeson");
        if (isLteIE7 == false)
        {
            __overlay.css({ "display": "block" });
        }
        __countries.css({ "display": "block" });
        __countriesList.animate({ opacity: 0 }, 0);
        __countries.animate({ height: "0px" }, 0);
        __countries.animate({ height: __height }, 500, function ()
        {

            __countriesList.animate({ opacity: 1 }, 500);

        });

    })

    __close.bind("click", function ()
    {
        if (isLteIE7 == false)
        {
            __overlay.css({ "display": "none" });
        }
        __countriesList.animate({ opacity: 0 }, 0);
        __countries.animate({ height: "0px" }, 0);
        __countries.css({ "display": "none" });
        __officesLink.removeClass("officeson");

    });


}






// BOXES - hover state for article/page intro boxes
$(function(){
		   
		   
	if($("#offices").length>0){
	
		offices();
	
	}
	
		   
	$(".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");		
		}
	);
	
	/* Selecte replace for styling with CSS */
	if ( $("#whatDoYouWant").length > 0 ) { $("#whatDoYouWant").sSelect(); }
	
	/* What We Do Explore slideshow */
	if ( $("#mainPageExplore .explore-photos").length > 0 ) {
		$("#mainPageExplore .explore-photos").cycle({ 
			fx: 'scrollHorz',
			speed: 300,
			timeout: 7000,
			cleartype:  1,
			next:	".explore-controls-right",
			prev:	".explore-controls-pos-left",
			pager:  ".explore-navi-menu",
			after:   changeSlideText,
			pauseOnPagerHover: 1,
			pagerAnchorBuilder: function(idx, slide) { 
				// return selector string for existing anchor 
				return '.explore-navi-menu li:eq(' + idx + ') a'; 
			}  
		});
	}
	
	if ( $("#subPageExplore .explore-photos").length > 0 ) {
		$("#subPageExplore .explore-photos").cycle({ 
			fx: 'scrollHorz',
			speed: 300,
			timeout: 0,
			cleartype:  1,
			next:	".explore-controls-right",
			prev:	".explore-controls-pos-left",
			after:   changeSlideText
		});
	}
	
	/* What We Do Explore pause button */
	if ( $("#mainPageExplore .explore-controls-pause").length > 0 ) {
		$('#mainPageExplore .explore-controls-pause').click(function(event) { 
			$('.explore-photos').cycle('pause');
			$(this).hide();
			event.preventDefault(); 
		});	
	}
	
	/* What We Do Explore play button */
	if ( $("#mainPageExplore .explore-controls-play").length > 0 ) {
		$('#mainPageExplore .explore-controls-play').click(function(event) {
			$('.explore-photos').cycle('resume');
			$(".explore-controls-pause").show();
			event.preventDefault(); 
		});	
	}
	
	mainSelect.init();
});

function changeSlideText(){
	var posNum = $(this).attr("id").split("_");
	// console.log(posNum[1])
	$(".explore-text-pos").hide();
	$("#explore-text_"+posNum[1]).fadeIn();
}

/* What We Do Selecting and viewing and changing results */
var mainSelect =
{
    init: function() {
        if ($("#goForSel").length > 0) {
            $("#goForSel").bind("click", function(event) { event.preventDefault(); mainSelect.showResults(this); });
        }

        if ($("#whatDoYouWant")) {
            $("#whatDoYouWant").bind("change", function(event) { event.preventDefault(); mainSelect.showResults(this); });
        }
        var allResultsLnks = $(".main-select-results").find("a");
        $(allResultsLnks).attr("tabindex", "-1");

        if ($(".main-select-results .x-close").length > 0) {
            $(".main-select-results .x-close").bind("click", function(event) {
                event.preventDefault();
                $(".for-sel-results .main-select-results").hide();
                $(allResultsLnks).attr("tabindex", "-1");
            });
        }

    },
    showResults: function(goButton) {
        $(".for-sel-results .main-select-results").hide();
        var allResultsLnks = $(".main-select-results").find("a");
        $(allResultsLnks).attr("tabindex", "-1");
        $(".for-sel-results").css({ 'position': 'static', 'left': 'auto', 'height': 'auto', 'overflow': 'visible' });
        var changedSelect = $(goButton).parents("fieldset").find("#whatDoYouWant")
        var optSelVal = $(changedSelect).find('option:selected');
        var optClass = $(optSelVal).attr("class").split("wdw-opt");
        var resultsToShow = $("#for-sel-res" + optClass[1]);
        var linksInResToShow = $(resultsToShow).find("a");
        $(linksInResToShow).removeAttr("tabindex");
        $(resultsToShow).slideDown("medium");
    },
    removeTabindex: function(resultObj) {

    }

}

/*
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";
        }
    }
}

//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;
};


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;
}


/* Function embeds social networks tools in an easy way.
 * Currently supported tools:
 * fc-social-facebook-send, fc-social-facebook-like, fc-social-twitter-follow, fc-social-twitter-share
 */
social = function(e) {
	var $els = $(e),
		lang = 'en_GB',
		buttonClassname = 'social-button';
	
	for(var elsCount=$els.length, i=0; i < elsCount; i++) {
		var $el = $($els[i]),
			type = $el.attr("data-fc-social-type");
		
		//console.log($el);
		switch(type) {
			case 'facebook-send':
				// Available data attrs: href, font, colorscheme, ref, fb_ref, fb_source
				//console.log("fb-send");
				$el.addClass($el.hasClass("fb-send") ? "" : "fb-send").wrap('<div class="' + buttonClassname + ' ' + type + '" />');
				break;
			
			case 'facebook-like':
				// Available data attrs: href, send, layout, show_faces, width, action, font, colorscheme, ref, fb_ref, fb_source
				//console.log("fb-like");
				$el.addClass($el.hasClass("fb-like") ? "" : "fb-like").attr("data-send", "false").wrap('<div class="' + buttonClassname + ' ' + type + '" />');
				break;
			
			case 'twitter-follow':
				// Available data attrs: show-count, button, text-color, link-color, lang, width, align
				//console.log("twitter-follow");
				if(!$el.data("lang")) $el.attr("data-lang", lang);
				$el.addClass($el.hasClass("twitter-follow-button") ? "" : "twitter-follow-button").wrap('<div class="' + buttonClassname + ' ' + type + '" />');
				break;
			
			case 'twitter-share':
				// Available data attrs: show-count, button, text-color, link-color, lang, width, align
				//console.log("twitter-share");
				if(!$el.data("lang")) $el.attr("data-lang", lang);
				$el.addClass($el.hasClass("twitter-share-button") ? "" : "twitter-share-button").wrap('<div class="' + buttonClassname + ' ' + type + '" />');
				break;
			
			case 'google-plus-one':
				// Available data attrs: href, size, annotation, width, callback
				//console.log("google-plus-one");
				$el.addClass("g-plusone").attr("data-size", "tall").wrap('<div class="' + buttonClassname + ' ' + type + '" />');
				break;
			
			case 'linkedin-share':
				// Available data attrs: url, counter, onsuccess, onerror
				(function() {
					var scriptTag = document.createElement("script");
					scriptTag.setAttribute("type", "IN/Share");
					if($el.attr('data-url')) {
						scriptTag.setAttribute("data-url", $el.attr('data-url'));
					}
					if($el.attr('data-counter')) {
						scriptTag.setAttribute("data-counter", $el.attr('data-counter'));
					}
					if($el.attr('data-onsuccess')) {
						scriptTag.setAttribute("data-onsuccess", $el.attr('data-onsuccess'));
					}
					if($el.attr('data-onerror')) {
						scriptTag.setAttribute("data-onerror", $el.attr('data-onerror'));
					}
					//$(scriptTag).insertAfter($el);
					$el.wrap('<div class="' + buttonClassname + ' ' + type + '" />').replaceWith(scriptTag);
					
				}());
				break;
		}
	}
	
	// Load Facebook SDK
	if($els.filter("[data-fc-social-type^='facebook']").length) {
		//console.log("fb-api");
		window.fbAsyncInit = function() {
			FB.init({xfbml:true});
		};
		// Load the SDK Asynchronously
		(function(d){
			var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
			js = d.createElement('script'); js.id = id; js.async = true;
			js.src = "//connect.facebook.net/" + lang + "/all.js";
			d.getElementsByTagName('head')[0].appendChild(js);
		}(document));
	}
	
	// Load Twitter SDK
	if($els.filter("[data-fc-social-type^='twitter']").length) {
		//console.log("twitter-api");
		(function(d){
			var twitterWidgets, id = 'twitter-jssdk'; if (d.getElementById(id)) {return;}
			twitterWidgets = d.createElement('script'); twitterWidgets.id = id; twitterWidgets.async = true;
			twitterWidgets.src = "//platform.twitter.com/widgets.js";
			d.getElementsByTagName('head')[0].appendChild(twitterWidgets);
		})(document);
	}
	
	// Load Google Plus SDK
	if($els.filter("[data-fc-social-type^='google-plus']").length) {
		//console.log("google-plus-api");
		window.___gcfg = {lang: 'en-GB'};
		(function() {
			var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
			po.src = 'https://apis.google.com/js/plusone.js';
			var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
		})();
	}
	
	// Load LinkedIn SDK
	if($els.filter("[data-fc-social-type^='linkedin']").length) {
		//console.log("linkedin-api");
		(function() {
			var scr = document.createElement('script'); scr.type = 'text/javascript'; scr.async = true;
			scr.src = 'http://platform.linkedin.com/in.js';
			var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(scr, s);
		})();
	}
	
	
	
}
