;(function($) {
	// private variables
	var oSettings = {};
	var iW;
	var iH;
	var oGmDir;
	var mPlayer;
	var fnPlayerQue;
	var aShowreel = new Array();
	var sSearch = "";
	//
	// default settings
	$.fcwalvisch = {
		 id: "FC Walvisch"
		,version: "1.0.1"
		,defaults: {
			 debug:		true
			,session:	false
			,flash:		true
			,style:		true
			,srrows:	4
			,rbase:		""
			,fLong:		52.335189
			,fLat:		 4.927257
			,menu:		"<ul id=\"menu\"><li class=\"page_item page-item-3 current_page_item\"><a href=\"?page_id=3\" title=\"home\">home</a></li><li class=\"page_item page-item-5\"><a href=\"?page_id=5\" title=\"news\">news</a></li><li class=\"page_item page-item-7\"><a href=\"?page_id=7\" title=\"showreel\">showreel</a></li><li class=\"page_item page-item-9\"><a href=\"?page_id=9\" title=\"about us\">about us</a><ul><li class=\"page_item page-item-56\"><a href=\"?page_id=56\" title=\"Tech info\">Tech info</a></li><li class=\"page_item page-item-58\"><a href=\"?page_id=58\" title=\"Team\">Team</a></li><li class=\"page_item page-item-60\"><a href=\"?page_id=60\" title=\"Studios\">Studios</a></li></ul></li><li class=\"page_item page-item-10\"><a href=\"?page_id=10\" title=\"contact\">contact</a></li></ul>"
		}
		// public functions
		,gmDir: function() {
			trace("gmDir ");
			var sFrom = $("#gmFrom").val();
			var bHigh = $("#gmNoHigh:checked").length!=0;
			oGmDir.load("from: "+sFrom+" to: "+oSettings.fLong+","+(oSettings.fLat-.0001), {avoidHighways:bHigh});
		}
		// showReel
		,sr: function(el) {
			showReel(el);
		}
		// playerReady
		,playerReady: function(obj) {
			trace("playerReady");
			mPlayer = document.getElementById(obj.id);
			mPlayer.addModelListener("META","$.fcwalvisch.meta");
			if (fnPlayerQue) {
				fnPlayerQue();
				fnPlayerQue = null;
			}
		}
		// meta
		,meta: function(e) {
			if (e.width&&e.height) {
				var iWo = 4;
				var iHo = 24;
				var iW = e.width;
				var iH = e.height;
				$("div.mediaplayer,#player_target").each(function(){
					var mPlyrH = $(this);
					var iCW = parseInt(mPlyrH.width())-iWo;
					var iCH = parseInt(mPlyrH.height())-iHo;
					if (mPlyrH.hasClass("resizeh")) {
						var iAspH = Math.floor(iH*(iCW/iW));
						mPlyrH.height(iAspH+iHo);
						trace("resize(-,"+iAspH+")");
					} else if (!mPlyrH.hasClass("noresize")) {
						mPlyrH.width(iW+iWo).height(iH+iHo);
						$("#showdata>p").width(iW-16);
						$("#showdata>a").css({marginLeft:iW+"px"});
						trace("resize("+(iW+iWo)+","+(iW+iHo)+") ("+iW+","+iH+")");
					}
				});
			}
		}
	};
	// init
	$(function() {
		//$.fn.fcwalvisch(); // init
	});

	// call
	$.fn.extend({
		fcwalvisch: function(_settings) {
			trace("FC Walvisch");
			oSettings = $.extend({}, $.fcwalvisch.defaults, _settings);
			oSettings.cbase = oSettings.rbase+"wp-content/";
			oSettings.base = oSettings.cbase+"themes/default/";
			//
			// check _GET
			var aPrs = location.search.split("?");
			if (aPrs.length>1) {
				var aVrs = aPrs[1].split("&");
				for (var i=0;i<aVrs.length;i++) {
					var aVar = aVrs[i].split("=");
					switch (aVar[0]) {
						case "f": oSettings.flash = aVar[1]==1; break;
						case "s": oSettings.style = aVar[1]==1; break;
					}
				}					
			}
			//trace("location.host "+" "+location.host);
			//trace("location.search "+" "+location.search);
			//trace("location.pathname "+" "+location.pathname);
			//
			// session cookie
			var sData = readCookie("fcwalvisch");
			oSettings.session = sData!=null;
			if (!oSettings.session) createCookie("fcwalvisch","<fcwalvisch value=\"Dooooooooooooooooo yooooooooouuuuuuuuu speeeeeeeaaaaaaaaaak whaaaaaaaaaaalee?\" />");
			//
			iW = $("body").width();
			iH = $("body").height();
			//
			init();
		}
		,chechImgSrc: function() {
			return $(this);
		}
		
	});

	// init
	function init() {
		//
		$("ul#adress>li:eq(1)").css("margin-right","200px");
		//
		// check all relative img src's
		$("img").each(function(el){
			var mImg = $(this);
			mImg.attr("src",mImg.attr("src").replace("../data/","data/"));
		});
		//
		//////////////////////////// general showreel
		// showreel add kader
		$("#page_7 ul#showreels>li").tsort("",{order:"rand"});
		$("ul#showreels>li").each( function(i){$(this).addClass("kader"+i)} );
		$("ul#showreels>li>a").each( function(i){$(this).append("<div class=\"kader"+(i%5)+"\"></div>")} );
		$("ul#showreels").after("<br style=\"clear:both;\" />");
		//
		//////////////////////////// showreel page
		var mShUl = $("#page_7 ul#showreels");
		mShUl.find("li").each(function(i,el){aShowreel.push($(el))});
		var mLi = mShUl.find(">li");
		var iNLiNm = Math.floor(mLi.length/oSettings.srrows);
		for (var i=0;i<(oSettings.srrows-1);i++) {
			var mUlx = $("<ul id=\"showreels"+i+"\" class=\"showreels\"></ul>").insertAfter(mShUl);
//			for (var j=0;j<iNLiNm;j++) mUlx.append(mLi[i*iNLiNm+j]);
			for (var j=0;j<iNLiNm;j++) $(mLi[i*iNLiNm+j]).appendTo(mUlx);
		}
		// bottom showreel width
		$("#page_7 ul.showreels").wrap("<div class=\"showreelholder\"></div>");
		$("#page_7 div.showreelholder").each(function(i,el){
			var mHolder = $(this);
			$("<a class=\"shbut next\"></a><a class=\"shbut prev\"></a>").insertBefore(mHolder).css({top:(40+i*130)+"px"}).click(function(e){
				shiftRow(mHolder,e);
			});
		});
		setShowreelWidth();
		$("#page_7 #showdata div.bg").click(function(e){
			mPlayer.sendEvent("PLAY","false");
			if ($.browser.msie) $("#page_7 #showdata").hide();
			else $("#page_7 #showdata").fadeOut("fast");
		});
		$("#showdata,#showdata div.bg").height(oSettings.srrows*130+20);
		$("#showdata>a").click(function(e){$("#page_7 #showdata div.bg").click()});
		//
//		trace("location.hash "+location.hash);
//		if ($("#page_7").length>0&&location.hash&&location.hash!="#") {
//		//		if (location.hash!="#") location.hash = "#";) {
//		}
		//
		// showreelsearch
		$("#showreelsearch").keyup(function(e){
			var sNwSearch = $(this).val().toLowerCase();
			if (sNwSearch!=sSearch) {
				if (sNwSearch=="") {
					$("#searchresult").remove();
					$("ul.showreels").show();
					$("a.shbut").show();
				} else {
					$("#searchresult").remove();
					$("ul.showreels").hide();
					$("a.shbut").hide();
					var mUlRes = $("<ul id=\"searchresult\" class=\"showreels\"></ul>").appendTo($("#showreels").parent()).css({width:"810px"});//.siblings().hide();
					for (var i=0;i<aShowreel.length;i++) {
						var mLi = aShowreel[i];
						var sLi = mLi.text() +" "+ mLi.find("input[name=text]").val();
						mLi.find("span.props>img").each(function(i,el){sLi += " "+$(this).attr("title")})
						sLi = sLi.toLowerCase().replace(/\s+/g," ");
						if (sLi.indexOf(sNwSearch)>=0) $(mLi.clone()).appendTo(mUlRes);
					}
				}
			}
			sSearch = sNwSearch;
		});
		//
		// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		//
		// showreel type
		$("#showreelsselect>li").click(function(e) {
			if ($("#showreelsearch").val()!="") {
				$("#showreelsearch").val("");
				$("#showreelsearch").keyup();
			}
			$("div.showreelholder").animate({ scrollLeft: 0 }, 10);
			//
			$("#showreelsselect>li").removeClass("selected");
			$(this).addClass("selected");
			//
			var sType = "";
			var aClass = $(this).attr("class").split(" ");
			$.each(aClass, function(i, val) {
				if (val.indexOf("type")!=-1) sType = val;
			});
			trace("sType: "+sType);
			//
			if (sType=="") {
				$("#searchresult").remove();
				$("ul.showreels").show();
				$("a.shbut").show();
			} else {
				$("#searchresult").remove();
				$("ul.showreels").hide();
				$("a.shbut").hide();
				var mUlRes = $("<ul id=\"searchresult\" class=\"showreels\"></ul>").appendTo($("#showreels").parent()).css({width:"810px"});//.siblings().hide();
				for (var i=0;i<aShowreel.length;i++) {
					var mLi = aShowreel[i];
					if (mLi.hasClass(sType)) $(mLi.clone()).appendTo(mUlRes);
				}
			}
//			$("ul.showreels>li").each(function(mc,i){
//				var mLi = $(this);
//				if (sType==""||mLi.hasClass(sType)) {
//					mLi.show();
//				} else {
//					mLi.hide();
//				}
//			});
		});
		//
		//
		//////////////////////////// news postlist
		$("#postlist>li").each(function(i){
			var sLink = $(this).attr("id").substring(4);
			$(this).click(function(i){showEntry(sLink)});
			$(this).find("h4>a").attr("href","javascript:v()");
			$(this).find("a.more-link").attr("href","javascript:v()");
		});
		$("#homenews>li").each(function(i){
			var sHref = $(this).find("h4>a").attr("href");
			$(this).click(function(){location.href = sHref});
			$(this).find("a").attr("href",sHref);
		});
		//
		// team
		$("ul#team>li").each(function(i){
			if (i==0) $(this).css({background:"transparent"});
			$(this).addClass(i%2==0?"left":"right");
		});
		//
		// techinfo
		$("div.paragraph").each(function(i){
			$(this).addClass(i%2==0?"left":"right");
		});
		//
		// google maps
		$(window).load(function(e){setupGm()})
		//
		// flash
		if (swfobject.getFlashPlayerVersion().major<9||!oSettings.flash) { // lacks flash
			var aLi = $("#menu>li");
			aLi.each(function(i) {
				var iY = Math.abs(-i-.5+aLi.length/2)*10+150;
				$(this).css("top",iY+"px");
			});
			$("#menu>li a").each(function(i) {
				var oA = $(this);
				var sTxt = oA.text().toUpperCase();
				var sFile = "style/txtimg_"+sTxt+".png";
				var iSize = oA.parent().parent().parent().get(0).nodeName=="DIV"?20:14;
				jQuery.get( oSettings.base+"textimage.php", { text:sTxt, file:sFile, size:iSize }, function(iW) { oA.append("<img src=\""+oSettings.base+"style/trans.gif\" style=\"width:"+iW+"px;\" />") });//.css("width",iW+"px")
				if($.browser.msie&&$.browser.version<=6)	oA.css("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+oSettings.base+sFile+"',sizingMethod='crop')");
				else										oA.css("background-image","url(\""+oSettings.base+sFile+"\")");
				oA.wrapInner("<span></span>");//.append("<img src=\"\" style=\"width:;height:;\" />");
			});
			$("#headerimg").css("background","transparent url(\""+oSettings.base+"style/skygrassHillNoFlash.jpg\") center 0px no-repeat");
			//
			$(".current_page_item").each(function(i) {
				var oLi = $(this);
				var oPParent = oLi.parent().parent();
				if (oPParent.get(0).nodeName=="LI") {
					oPParent.addClass("current_page_item_parent");
				}
			});
		} else { // has flash
			// flash menu implementation /////////////////////
			var oMenu = $("#menu:eq(0)");
			if (oMenu) {
				var oParams = {wmode:"transparent"};
				var oAttrib = {};
				var oFlVars = {
					 xml: escape(oSettings.menu)//"<ul id=\"menu\">"+oMenu.html()+"</ul>"
					,session: oSettings.session?"true":"false"
				};
				oMenu.css({display:"none"});
				oMenu.after("<div id=\"flmenu\"></div>")
				swfobject.embedSWF(oSettings.base+"style/menu.swf?a="+Math.random(), "flmenu", "874", "200", "9.0.0", oSettings.base+"style/expressInstall.swf", oFlVars, oParams, oAttrib);
				$("#flmenu").focus(function(){
					$(this).blur();
				});
			}
			// flash mediaplayer implementation /////////////////////
			$(".mediaplayer").each(function(i) {
				var oNode = $(this);
				var sId = oNode.attr("id");
//				trace("sId "+" "+sId);
				var sTargetId = sId+"_target";
				var mTarget = oNode.prepend("<div id=\""+sTargetId+"\"></div>");
	//			trace("mTarget "+" "+mTarget.css({border:"4px solid red"}).height("100%"));
				//
				var sFile = "";//"../data/showreel/Unox_Evert_30.flv";
				var sImg = "";//"data/showreel/Unox_Evert.jpg";
				var iPlW = 0;//418
				var iPlH = 0;//240
				var mA = oNode.find("a:eq(0)");
				var mI = mA.find("img:eq(0)");
				if (mA.length==1&&mI.length==1) {
					sFile = mA.attr("href");
					sImg = mI.attr("src");
					iPlW = parseInt(mI.attr("width"));
					iPlH = parseInt(mI.attr("height"));
					trace("sFile "+" "+sFile);
					trace("sImg "+" "+sImg);
					mA.remove();
				}
				//
				var oParams = {
					 allowfullscreen:	true
					,wmode:				"transparent"
					,enablejs:			true
				};
				var oAttrib = {
					 name: sTargetId
				};
				var oFlVars = {
					 config: oSettings.base+"mediaplayer.xml"
				};
				if (sFile!=""&&sImg!="") {
					oFlVars.file = "../../../../"+sFile;//"../../../uploads/studios.flv";
					oFlVars.image = sImg;//sCBase+"uploads/studiospreview.jpg";
				}
				//
				swfobject.embedSWF(oSettings.base+"style/player.swf", sTargetId, "100%", "100%", "9.0.0", oSettings.base+"style/expressInstall.swf", oFlVars, oParams, oAttrib);
				$("#"+sTargetId).focus(function(){
					$(this).blur();
				});
				if (iPlW>0) oNode.width(iPlW);
				if (iPlH>0) oNode.height(iPlH);
			});
		}
	}
	//
	// shiftRow
	shiftRow = function(oDiv,e) {
		var aLi = oDiv.find("li");
		var iLiNum = aLi.length;
		var iLiW = oDiv.find("li:eq(0)").width();
		var bPrNx = $(e.currentTarget).hasClass("prev");
		var iPos = Math.min((iLiNum-5)*iLiW, oDiv.scrollLeft() + (bPrNx?-1:1)*iLiW*4);
		oDiv.animate({ scrollLeft: iPos }, 500);
		//trace("iPos "+iPos+" "+oDiv.find("li:last").text());
	}
	//
	// showReel
	showReel = function(el) {
		var mAnchor = $(el);
		var mLi = mAnchor.parent();
		var sTitle = mAnchor.attr("title");
		var sText = mLi.find("input[name=text]").val();
		var sImg = mLi.find("img").attr("src");
		var sFlv = mLi.find("input[name=flv]").val();
		var bSnd = sFlv.split(".").pop()=="mp3";
		//
		var iHgth = $("div.columnfull").height();
		trace("iHgth: "+iHgth);
		//
		$("#showdata,#showdata>div.bg").height(iHgth);
		$("#showdata h2").text(sTitle);//$("#col1>h2").
		$("#showdata p").html(sText);//$("#col2>p").
		//
		if (mPlayer&&mPlayer.sendEvent) { // does not init immediately
			mPlayer.sendEvent("LOAD", bSnd?{type:"sound", image:sImg, file:sFlv}:{type:"video", file:"../../../../"+sFlv});
			mPlayer.sendEvent("PLAY");
		} else {
			fnPlayerQue = function(){showReel(el)};
		}
		//
		$("#showdata p>span.props").remove();//$("#col2>span.props").
		var oProps = mLi.find("span.props").clone();
		oProps.find("img").each(function(){
			var sSrc = $(this).attr("src");
			$(this).attr("src",sSrc.replace("prop_","bprop_"));
			$(this).attr("align","right");
		});
		$("#showdata p").prepend(oProps);//$("#col2").
		if ($.browser.msie) $("#showdata").show();
		else $("#showdata").fadeIn("fast");
	}
	//
	// setShowreelWidth
	setShowreelWidth = function() {
		var aUl = $("#page_7 ul.showreels");
		var iLW = aUl.find(">li:eq(0)").width();
		aUl.each(function(el){
			$(this).width($(this).find(">li:visible").length*iLW);
		})
	}
	//
	// showEntry
	showEntry = function(sId) {
		$("div.post").hide();
		$("#"+sId).show();
	}
	//
	// rnd
	function rnd(i) {
		return Math.round(Math.random()*i);
	}
	//
	///////////////////
	//
	// setup google maps
	setupGm = function() {
		var aMap = $("#gmap");
		//if (aMap.length>0) {
		//	var sKey;
		//	switch (location.host) {
		//		case "ron":						sKey = "ABQIAAAADFK1FVTrJNrqerZlJIFONhQ0dGgIQ04ngFRW14exF9h0SF3bJBR68O2u_wGCq9IQ-eUnSp0YQv3RGg"; break;
		//		case "www.sjeiti.com":			sKey = "ABQIAAAADFK1FVTrJNrqerZlJIFONhS0aD71HV8NwIPFeBsFsluOsBnskRS2j09yKbxb_x8QKoaFTkswQjkm0A"; break;
		//		case "www.fcwalvisch.nl":		sKey = "ABQIAAAADFK1FVTrJNrqerZlJIFONhRsS0H1E2UGQ22KaVyz1sFTr7vJ9BQMIxOLhqJLDahBETa2yY-q5e9Fng"; break;
		//		case "www2.fcwalvisch.com":		sKey = "ABQIAAAADFK1FVTrJNrqerZlJIFONhQkcu6xYPzIRDSjdwhEL480S7zQhBRcBiem6zxiyqyBNvqli7fflkLOmA"; break;
		//		case "www.fcwalvisch.com":		sKey = "ABQIAAAADFK1FVTrJNrqerZlJIFONhSBB0hcvV6y4nJhfoo0IqLVpy1D2hRubl1FBpQvok8rbrXkINAFBt1R-g"; break;
		//		case "sjeiti":					sKey = "ABQIAAAADFK1FVTrJNrqerZlJIFONhTt_jnGbtSPvKfXX6JFTnLzhcFsWRS4z1SXzgFycB17VLdCJWunZUEVYg"; break;
		//		default:						sKey = "ABQIAAAADFK1FVTrJNrqerZlJIFONhQ0dGgIQ04ngFRW14exF9h0SF3bJBR68O2u_wGCq9IQ-eUnSp0YQv3RGg"; break;
		//	}
		//	$.getScript( "http://maps.google.com/maps?file=api&amp;v=2&amp;key="+sKey,loadGm);
		//}
		var aMap = $("#gmap");
		aMap.each(function(i){
			if (GBrowserIsCompatible()) {
				//http://maps.google.nl/maps/ms?ie=UTF8&hl=en&msa=0&msid=115583994351870215156.0004595c037f757593025&ll=52.335739,4.927757&spn=0.000936,0.002414&t=h&z=19
				//var sLink = "http://maps.google.nl/maps?f=q&hl=en&geocode=&q=H.J.E.+Wenckebachweg+68&sll=52.335739,4.927757&sspn=0.000869,0.002004&ie=UTF8&ll=52.335588,4.927347&spn=0.006949,0.016029&t=h&z=16&iwloc=addr";
				var oPos = new GLatLng(oSettings.fLong,oSettings.fLat);

				var oMap = new GMap2(document.getElementById("gmap"));
				oMap.setCenter(oPos, 15);
				oMap.enableContinuousZoom();
				oMap.enableScrollWheelZoom();

				oMap.addControl(new GLargeMapControl());

				oGmDir = new GDirections(oMap, document.getElementById("gdir"));

				var mIcon = new GIcon();
				mIcon.image  = oSettings.base+"style/googlemapsicon.png";
				mIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
				mIcon.iconSize = new GSize(28, 32);
				mIcon.shadowSize = new GSize(60, 30);
				mIcon.iconAnchor = new GPoint(14, 31);
				mIcon.infoWindowAnchor = new GPoint(14,32);

				var oMarker = new GMarker(oPos, mIcon);
//				GEvent.addListener(oMarker, "click", function() {
//					var sNfo = "<form id=\"gmpopup\" action=\"javascript:$.fcwalvisch.gmDir()\">";
//					sNfo += "	directions from: <input id=\"gmFrom\" type=\"text\" value=\"\" /><br/>";
//					sNfo += "	avoid highways: <input id=\"gmNoHigh\" type=\"checkbox\" /><br/>";
//					sNfo += "	<input type=\"submit\" value=\"show directions\" />";
//					sNfo += "</form>";
//					oMarker.openInfoWindowHtml(sNfo);
//				});
				oMap.addOverlay(oMarker);
			}
		});
	}
	//
	///////////////////
	//
	// createCookie
	function createCookie(name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = 	name+"="+value+expires+"; path=/";
	}
	// readCookie
	function readCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}
	// eraseCookie
	function eraseCookie(name) {
		createCookie(name,"",-1);
	}
	//
	///////////////////
	//
	// trace
	function trace(o,v) {
		if (window.console&&window.console.log) {//(v||oSettings.debug)&&
			if (typeof(o)=="string")	window.console.log(o);
			else						for (var prop in o) window.console.log(prop+":\t"+String(o[prop]).split("\n")[0]);
		}
	}
})(jQuery);

function playerReady(obj) {
	$.fcwalvisch.playerReady(obj);
};