WccWall = {
    site_version : "wcc1",
    wsudp : false,
	event_height : 85,
	display_limit : null,
	display_rate : 1000,
	display_rates : new Array(1000),
	auto_refresh : false,
	refresh_rate : 5,
	events : new Array(),
	event_timer : false,
	load_timer : false,
    mrps : new Array(),
    mrp_timer : false,
    mrp_check : 0,
    mrp_interval : 0,
	message_timer : false,
	css_flag : "odd",
	unique_id : 1,
	from_swf : 0,
    run_timer_id : 0,
    run_time : (1000 * 60) * 5,
    elapsed : 0,
    start_time : 0,

	start : function ()
	{
        WccWall.runTimer();
		WccWall.showFrames();

		if (WccWall.auto_refresh && WccWall.elapsed < WccWall.run_time)
		{
			WccWall.setLoadTimer();
	       	WccWall.setEventTimer();

            if ( WccWall.wsudp )
                WccWall.setMrpTimer();
		}
	},

	stop : function ()
	{
		WccWall.clearEventTimer();
		WccWall.clearLoadTimer();

        if ( WccWall.wsudp )
            WccWall.clearMrpTimer();

        if (WccWall.run_timer_id > 0)
        {
            clearInterval(WccWall.run_timer_id);
            WccWall.run_timer_id = 0;
        }
	},

    runTimer : function ()
    {
        if (WccWall.start_time == 0)
            WccWall.start_time = new Date().getTime();

        var cur_time = new Date().getTime();
        WccWall.elapsed = (cur_time - WccWall.start_time);

        if (WccWall.elapsed > WccWall.run_time)
        {
            WccWall.stop();
            if (WccWall.run_timer_id > 0)
            {
                clearInterval(WccWall.run_timer_id);
                WccWall.run_timer_id = 0;
            }
        }

        if (WccWall.run_timer_id == 0 && WccWall.elapsed < WccWall.run_time)
            WccWall.run_timer_id = setInterval( "WccWall.runTimer();", 500 );
    },

	setWallHeight : function ()
	{},

	displayEvent : function ()
	{
		WccWall.clearEventTimer();

		if (!$("#new_alert").is(":visible"))
		{
	    	var encoded_event = WccWall.events.shift();

			if (encoded_event != null && encoded_event != "")
			{
				var unique_id = "wccwall_event_" + WccWall.unique_id;
				WccWall.unique_id++;
				var event_wall = document.getElementById( "wccwall" );
				var new_event = document.createElement( "div" );
				new_event.className = "wccwall_event_" + WccWall.switchCssFlag();
				new_event.id = unique_id;
		        new_event.innerHTML = base64_Decode(encoded_event);
				new_event.style.display = "none";
		        event_wall.insertBefore(new_event, event_wall.firstChild);

		        WccWall.updateTimestamps();

				$("#"+new_event.id).fadeIn(900, WccWall.removeLastEvent());
			}
		}

		if ( WccWall.events.length > 0 || WccWall.mrps.length > 0 )
		{
	       	WccWall.start();
		}
		else
		{
			WccWall.showFrames();
		}
	},

	displayMrp : function ()
	{
	    if (WccWall.wsudp)
        {
            WccWall.clearMrpTimer();

        	var encoded_mrp = WccWall.mrps.shift();

    		if (encoded_mrp != null && encoded_mrp != "")
    		{
    			var unique_id = "most_recent_pictures_event_" + WccWall.unique_id;
    			WccWall.unique_id++;
    			var mrp_wall = document.getElementById( "most_recent_pictures" );
    			var new_event = document.createElement( "div" );
    			new_event.className = "most_recent_pictures_event_" + WccWall.switchCssFlag();
    			new_event.id = unique_id;
    	        new_event.innerHTML = base64_Decode(encoded_mrp);
    			new_event.style.display = "none";
    	        mrp_wall.insertBefore(new_event, mrp_wall.firstChild);

    			$("#"+new_event.id).fadeIn(900, WccWall.removeLastMrp());
    		}

            WccWall.setMrpTimer();
        }
	},

	showFrames : function ()
	{
		setTimeout("$('iframe.wccwall_frame').show();", 200);
	},

	loadEvents : function ()
	{
		if (WccWall.auto_refresh)
		{
			WccWall.clearLoadTimer();
			WccWall.updateTimestamps();
			var events_ajax = new oAjax("/xml/loadevents.php", WccWall.loadEvents_handler);
			var params = "limit=" + WccWall.display_limit + "&from_swf=" + WccWall.from_swf + "&st=" + WccWall.site_version;

            if ( WccWall.wsudp )
                params += "&wsudp=lsu";

			events_ajax.update(params, "GET");

    		if (WccWall.wsudp)
    		{
    		    if (WccWall.mrp_check >= WccWall.mrp_interval)
                {
        			var mrps_ajax = new oAjax("/xml/loadevents.php", WccWall.loadMrps_handler);
        			var params = "limit=" + WccWall.display_limit + "&from_swf=" + WccWall.from_swf + "&st=" + WccWall.site_version + "&wsudp=mrp";
        			mrps_ajax.update(params, "GET");
                }
                else
                    WccWall.mrp_check++;
    		}
		}
    },

	loadEvents_handler : function (r,s)
	{
		try
		{
			if (s==200)
			{
				if (r != "[null]")
				{
					var new_events = eval(r);

					if (typeof new_events == "object" && new_events.length > 0)
					{
						WccWall.events = WccWall.events.concat(new_events);
					}
				}
			}
		}
		catch(e)
		{}

       	WccWall.start();
	},

    loadMrps_handler : function (r,s)
    {
		try
		{
			if (s==200)
			{
				if (r != "[null]")
				{
					var new_mrps = eval(r);

					if (typeof new_mrps == "object" && new_mrps.length > 0)
					{
						WccWall.mrps = WccWall.mrps.concat(new_mrps);
					}
				}

                WccWall.mrp_check = 0;
			}
		}
		catch(e)
		{}

       	WccWall.start();
    },

	setEventTimer : function ()
	{
		if (!WccWall.event_timer && WccWall.events.length > 0)
		{
			if (WccWall.display_rates.length > 1)
			{
				var display_rate_index = $P.mt_rand(0, WccWall.display_rates.length-1);
				WccWall.display_rate = WccWall.display_rates[display_rate_index];
			}

			WccWall.event_timer = setTimeout("WccWall.displayEvent();", WccWall.display_rate);
		}
	},

    setMrpTimer : function ()
    {
		if (!WccWall.mrp_timer && WccWall.mrps.length > 0)
		{
			if (WccWall.display_rates.length > 1)
			{
				var display_rate_index = $P.mt_rand(0, WccWall.display_rates.length-1);
				WccWall.display_rate = WccWall.display_rates[display_rate_index];
			}

			WccWall.mrp_timer = setTimeout("WccWall.displayMrp();", WccWall.display_rate);
		}
    },

	clearEventTimer : function ()
	{
    	if (WccWall.event_timer)
		{
			clearTimeout(WccWall.event_timer);
			WccWall.event_timer = false;
		}
	},

	clearMrpTimer : function ()
	{
    	if (WccWall.mrp_timer)
		{
			clearTimeout(WccWall.mrp_timer);
			WccWall.mrp_timer = false;
		}
	},

	setLoadTimer : function ()
	{
		if (!WccWall.load_timer)
		{
			WccWall.load_timer = setTimeout("WccWall.loadEvents();", WccWall.refresh_rate*1000);
		}
	},

	clearLoadTimer : function ()
	{
    	if (WccWall.load_timer)
		{
			clearTimeout(WccWall.load_timer);
			WccWall.load_timer = false;
		}
	},

	addMobileAlert : function (model_id, model_username)
	{
		Members.close_new_alert();
		WccWall.hideWallMessage();
		WccWall.stop();
		$("#id_model_add_alert").html(model_username);
    	Members.load_new_alert(model_id, model_username, WccWall.start());
	},

	addFavorites : function (model_id, model_username)
	{
		Members.close_new_alert();
        var ajax = new oAjax("/members/ajax/addfavorites.php", WccWall.addFavorites_handler);
		var params = "model_id="+model_id+"&model_username="+model_username;
		ajax.update(params, "GET");
	},

	addFavorites_handler : function (r,s)
	{
    	if (s == 200)
		{
			$("#wccwall_message").html("Model "+r+" was added to your list of favorites ...");
			$("#wccwall_submessage").html("To view your list of favorites; click <a class=\"wccwall_a_link\" href=\"/members/index.php?"+$P.base64_encode("show=myFavorites")+"\">here</a>.");
			$("#wccwall_message_container").show("slow");

			WccWall.message_timer = setTimeout("WccWall.hideWallMessage();", 15*1000);
		}
	},

	hideWallMessage : function ()
	{
		if (WccWall.message_timer != null)
		{
			clearTimeout(WccWall.message_timer);
			WccWall.message_timer = null;
		}

		if ($("#wccwall_message_container").is(":visible"))
		{
			$("#wccwall_message_container").hide("fast");
		}
	},

	loadJs : function( js_file, js_id )
	{
        // Create the script tag
        script_obj = document.createElement( "script" );

        // Add script object attributes
        script_obj.setAttribute( "type", "text/javascript" );
        script_obj.setAttribute( "src", js_file + '&noCacheIE=' + (new Date()).getTime());
        script_obj.setAttribute( "id", js_id );

        // Create the script tag which will send the request to the server returning the next set of models
        head_obj = document.getElementsByTagName("head").item(0);
        head_obj.appendChild( script_obj );
		return true;
	},

	unloadJs : function (js_id)
	{
	    try
	    {
	        // Destroy the service script tag
			script_obj = document.getElementById(js_id);
	        head_obj = document.getElementsByTagName("head").item(0);
	        head_obj.removeChild( script_obj );
	        script_obj = null;
	    }
	    catch (e)
	    {}
	},

	addEvent : function( elem, event, func )
	{
		if (elem.addEventListener)
	    {
			return elem.addEventListener(event, func, false)
		}
	    else if (elem.attachEvent)
	    {
			return elem.attachEvent('on'+event, func)
		}
	    else
	    {
			return false
		}
	},

	reloadModelImage : function (img_elem, img_url)
	{
		var pattern = /showpic.php\?image=/g;
		if (img_url.match(pattern) != null)
		{
	        var tmp_image = new Image();
	        tmp_image.src = img_url;
	        img_elem.src = tmp_image.src;
		}
	},

	removeLastEvent : function ()
	{
		var eventElements = new Array();
		var wall_events = document.getElementById("wccwall");

		var els = wall_events.getElementsByTagName("div");
		var elsLen = els.length;
		var pattern_odd = new RegExp('(^|\\\\s)wccwall_event_odd(\\\\s|$)');
		var pattern_even = new RegExp('(^|\\\\s)wccwall_event_even(\\\\s|$)');

		for (i = 0, e = 0; i < elsLen; i++)
		{
			if ( pattern_odd.test(els[i].className) || pattern_even.test(els[i].className))
			{
				eventElements[e] = els[i];
				e++;
			}
		}

		var lastEvent = eventElements.pop();
      	try
		{
        	lastEvent.parentNode.removeChild(lastEvent);
      	}
      	catch (ex) { }

	},

	removeLastMrp : function ()
	{
		var eventElements = new Array();
		var mrp_events = document.getElementById("most_recent_pictures");

		var els = mrp_events.getElementsByTagName("div");
		var elsLen = els.length;
		var pattern_odd = new RegExp('(^|\\\\s)most_recent_pictures_event_odd(\\\\s|$)');
		var pattern_even = new RegExp('(^|\\\\s)most_recent_pictures_event_even(\\\\s|$)');

		for (i = 0, e = 0; i < elsLen; i++)
		{
			if ( pattern_odd.test(els[i].className) || pattern_even.test(els[i].className))
			{
				eventElements[e] = els[i];
				e++;
			}
		}

		var lastEvent = eventElements.pop();
      	try
		{
        	lastEvent.parentNode.removeChild(lastEvent);
      	}
      	catch (ex) { }

	},

	updateTimestamps : function ()
	{
        var span_timestamps = document.getElementById("wccwall").getElementsByTagName("span");

		if (span_timestamps.length > 0)
		{
			for (s = 0; s < span_timestamps.length; s++)
			{
				if (span_timestamps[s].className == "wccwall_timestamp")
				{
					timestamp =	span_timestamps[s].innerHTML;
					try
					{
						document.getElementById("wccwall_timestamp_"+timestamp).innerHTML = niceTime(timestamp, false);
					}
					catch (e){}
				}
			}
		}

        if ( WccWall.wsudp && document.getElementById("most_recent_pictures") !== null )
        {
            var span_timestamps = document.getElementById("most_recent_pictures").getElementsByTagName("span");

    		if (span_timestamps.length > 0)
    		{
    			for (s = 0; s < span_timestamps.length; s++)
    			{
    				if (span_timestamps[s].className == "wccwall_timestamp")
    				{
    					timestamp =	span_timestamps[s].innerHTML;
    					try
    					{
    						document.getElementById("wccwall_timestamp_"+timestamp).innerHTML = niceTime(timestamp, false);
    					}
    					catch (e){}
    				}
    			}
    		}
        }
	},

	switchCssFlag : function ()
	{
		if (WccWall.css_flag == "odd")
			WccWall.css_flag = "even";
		else
			WccWall.css_flag = "odd";

		return (WccWall.css_flag);
	}
}
