/** SWFObject v1.5 blog.deconcept.com/swfobject/ (c)2007 Geoff Stearns, MIT License */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
var Dom=YAHOO.util.Dom;var $=Dom.get;var E=YAHOO.util.Event; 	
function typeOf(v){var s=typeof v;if(s==='object'){if(v){if(v instanceof Array){s='array';}}else{s='null';}}return s;}
Array.prototype.inArray=function(v){if(typeOf(v)=='array'){for(var i=0;i<v.length;i++){for(var a=0;a<this.length;a++){if(this[a]===v[i]){return true;}}}}else{for(var i=0;i<this.length;i++){if(this[i]===v){return true;}}}return false;};

var TGP = {
	Data:{},
	isIE6:false,
	isChrome:false,
	Init:{ 
		initThese:[],
		initFields:[],
		initData:{},
		init:function(){ 
			for(var i=0; i< this.initThese.length; i++){ 
				TGP[this.initThese[i]].init(); 
//				TGP.Init.initThese.push(""); 
			} 
			
			for(var a=0; a<this.initFields.length; a++){ 
				TGP.fields[this.initFields[a]] = new TGP.widget.FieldFlipper(this.initFields[a]); 
			} 
			if(/MSIE 6/i.test(navigator.userAgent)){ 
				TGP.isIE6 = true; 
			}
			if(/Chrome/i.test(navigator.userAgent) || /Safari/i.test(navigator.userAgent)){ 
				TGP.isChrome = true; 
			}
			E.addListener('TriggerMoreNavBox','click',TGP.Listeners.ShowMoreNavOptions); 
			
			E.addListener($('SearchQueryInput'),'focus',function(){ if(this.value=='Search'){ this.value=''; }});
			E.addListener($('SearchQueryInput'),'blur',function(){ if(this.value==''){ this.value='Search'; }});

			this.dataSource = new YAHOO.util.XHRDataSource("/shop/search/autocomplete");

	    // Use an XHRDataSource
	    // Set the responseType
	    this.dataSource.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
	    // Define the schema of the delimited results
	    this.dataSource.responseSchema = {
	        recordDelim: "\n",
	        fieldDelim: "\t"
	    };
	    // Enable caching
	    this.dataSource.maxCacheEntries = 5;

	    // Instantiate the AutoComplete
	    this.autoComplete = new YAHOO.widget.AutoComplete("SearchQueryInput", "AutoCompleteResults", this.dataSource);
	    this.autoComplete.queryQuestionMark = false; 
			this.autoComplete.generateRequest = function(sQuery) {
			    return "/" + sQuery;
			};
    this.autoComplete.itemSelectEvent.subscribe(function(sType, aArgs) { 
	  	var oData = aArgs[2];
			var name = oData[0]; 
			var id = oData[1]; 
			var slug = oData[2];
			window.location="/game/"+slug;
	  }); 

		}
	},
	ToolTips:function(){ 
	},
	Alert:function(sType,sHead,sMessage,aButtons){
		if(aButtons==undefined){ 
			aButtons = [{text:'OK',handler:function(){ this.hide();}}]; 
		}  
		var oOptions = { width: "325px", 
						effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25}, 
						fixedcenter:true,
						modal:true,
						close:false,
						visible:false,
						draggable:false
					   };
		if(sType!='' && sType!='none'){ 
			var rIcon; 
			switch(sType){ 
				case 'alarm':
					rIcon=YAHOO.widget.SimpleDialog.ICON_ALARM;
					break;
				case 'block':
					rIcon=YAHOO.widget.SimpleDialog.ICON_BLOCK;
					break;
				case 'help':
					rIcon=YAHOO.widget.SimpleDialog.ICON_HELP;
					break;
				case 'info':
					rIcon=YAHOO.widget.SimpleDialog.ICON_INFO;
					break;
				case 'tip':
					rIcon=YAHOO.widget.SimpleDialog.ICON_TIP;
					break;
				case 'warn':
					rIcon=YAHOO.widget.SimpleDialog.ICON_WARN;
					break;
			}
			oOptions.icon=rIcon;
		}
		var mySimpleDialog = new YAHOO.widget.SimpleDialog("VSAlert", oOptions);							
		mySimpleDialog.setHeader(sHead);
		mySimpleDialog.setBody(sMessage);
		mySimpleDialog.cfg.queueProperty("buttons", aButtons);
		mySimpleDialog.render(document.body);
		mySimpleDialog.show();   
	},
	urlencode:function(str) {
		return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
	},
	Listeners:{	
		ShowMoreNavOptions:function(){ 
			var aXY = Dom.getXY(this); 
			var width = parseInt(Dom.getStyle(this,'width')); 
			var height = parseInt(Dom.getStyle(this,'height')); 
			var targetlocationX = aXY[0]-90;
			var targetlocationY = aXY[1]+15;
			Dom.setStyle($('MoreNavBox'),'display',''); 
			Dom.setXY($('MoreNavBox'),[targetlocationX,targetlocationY]); 
			E.addListener('MoreNavBox','mouseleave',TGP.Listeners.HideMoreNavOptions); 
		},
		HideMoreNavOptions:function(){ 
			E.removeListener('MoreNavBox','mouseleave',TGP.Listeners.HideMoreNavOptions); 
			Dom.setStyle($('MoreNavBox'),'display','none'); 
		} 
	}
}


TGP.User = { 
	LoginForm:null,
	PostLoginJump:null,
	init:function(){ 
	},
	ShowLogin:function(goto){ 
		if(goto!=undefined){ 
			this.PostLoginCall = goto; 
		} 
		var oOptions = { width: "325px", 
						effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25}, 
						fixedcenter:true,
						modal:true,
						close:false,
						visible:false,
						draggable:false
					   };
					
		var aButtons = [{text:'Cancel',handler:function(){ this.hide();}},
										{text:'LOG IN',handler:function(){ 
												Dom.setStyle($('LoginFormDo'),'display','none'); 
												Dom.setStyle($('LoginFormWait'),'display',''); 
												TGP.User.DoLogin(); }}]; 

		var sMessage = '<div id="LoginFormDo"><div id="LoginError" style="display:none"></div><label for="loginemail">Your Email Address:</label><input type="text" name="email" id="loginemail" />'+
										'<label for="loginpassword">Your Password:</label><input type="password" name="password" id="loginpassword" />'+
										'<a href="/account/password">Forgot your password?</a></div>'+
										'<div id="LoginFormWait" style="display:none"><img src="/js/yui28/assets/skins/sam/ajax-loader.gif"> Signing You In</div>';
				
		this.LoginForm = new YAHOO.widget.SimpleDialog("VSAlert", oOptions);							
		this.LoginForm.setHeader("Sign In To The Games Place");
		this.LoginForm.setBody(sMessage);
		this.LoginForm.cfg.queueProperty("buttons", aButtons);
		this.LoginForm.render(document.body);
		this.LoginForm.show();   
	},
	DoLogin:function(){ 
		var e = $('loginemail').value; 
		var p = $('loginpassword').value; 
		var Txn = YAHOO.util.Connect.asyncRequest(	'POST', 
																				'/account/login', 
																				{success:this.Listeners.PostLogin,
																				failure:this.Listeners.LoginProblem }, 
																				'conduit=json&e='+e+'&p='+p); 

	} ,
	Listeners:{ 
		PostLogin:function(o){ 
					//	try{ 
				var R = YAHOO.lang.JSON.parse(o.responseText);
				if(R.ok){ 
					if(TGP.User.PostLoginJump!=null){ 
						$('LoginFormWait').innerHTML = 'You are logged in! Just a sec ...'; 
						TGP.User.PostLoginJump(); 
					} else { 
						TGP.User.LoginForm.hide(); 
						TGP.Alert('info','Logged in!','You are now logged into The Games Place. Carry on!'); 
					} 
				} else { 
					Dom.setStyle($('LoginError'),'display',''); 
					$('LoginError').innerHTML = R.msg; 
					Dom.setStyle($('LoginFormDo'),'display',''); 
					Dom.setStyle($('LoginFormWait'),'display','none'); 
				} 
			// } catch(err){ 
			// 	TGP.Alert('warn','Egad! There was a server problem','Our server is speaking nonsense, and we\'re not exactly sure what it just did. Try reloading this page and your cart will be up to date.'); 
			// }

		} ,
		LoginProblem:function(){ 
			Dom.setStyle($('LoginError'),'display',''); 
			$('LoginError').innerHTML = "Hrm, there seems to be a problem communicating with the server at the moment. If you're ready to check out, go ahead and just use your email address. We'll match it with your account so all your stuff is in the same place."; 
			Dom.setStyle($('LoginFormDo'),'display',''); 
			Dom.setStyle($('LoginFormWait'),'display','none'); 
		} 
	}
	
} 
E.onDOMReady(function(){ TGP.Init.init(); });