//it should be global for event handlers
var swfArray = new Array();
var attached_handler = false;
	
function video_popup(section, direction)
{
	var req = null; 
	var details = new Array();
	var enable_time = false;
	var helper_time = false;
	var alternate_div_time = false;
	var ua = navigator.userAgent.toLowerCase();
	var isMac = (ua.indexOf('macintosh') != -1 || ua.indexOf('mac os x') != -1 ? true : false);
	var isIE = (ua.indexOf('msie') > -1 ? true : false);
	
	//initialize the array
	if(direction !== true)
		execute ("1", videoPopUpParse, details, section, true, videoPopUpPreLoad);
	else
	{
		var values = new Array();
		values['id'] = section;
		execute ("2", videoPopUpParse, details, values, '');
	}

function videoPopUpParse(responseText, responseStatus, responseXML) {
	var reply = "";//content to put into shadowbox div
	var width = '';//width of the shadowbox div
	var height = '';//height of the shadowbox div
	var title = '';//caption
	swfArray = new Array(); //reset swfArray
	swfArray["flashvars"] = {}	

	if (responseStatus == 200) {
		response  = responseXML;

			if (response.firstChild.hasChildNodes())
			{	
				for (var i=0; i< response.firstChild.childNodes.length; i++)
				{					
					if(response.firstChild.childNodes[i].nodeName == "response" || response.firstChild.childNodes[i].nodeName == "width" || response.firstChild.childNodes[i].nodeName == "height" || 
						response.firstChild.childNodes[i].nodeName == "title" || response.firstChild.childNodes[i].nodeName == "divid" || response.firstChild.childNodes[i].nodeName == "flashbg" || 
						response.firstChild.childNodes[i].nodeName == "swfsrc" || response.firstChild.childNodes[i].nodeName == "nlink" || response.firstChild.childNodes[i].nodeName == "plink" || 
						response.firstChild.childNodes[i].nodeName.substring(0,4) == "var_" || response.firstChild.childNodes[i].nodeName == "img_title" || response.firstChild.childNodes[i].nodeName == "alternate_div")
					{
						for(j=0; j< response.firstChild.childNodes[i].childNodes.length; j++) 
						{
							if(response.firstChild.childNodes[i].childNodes[j].nodeName == "xdata") 
							{
								if(response.firstChild.childNodes[i].childNodes[j].firstChild != null)
								{
									if(response.firstChild.childNodes[i].nodeName == "width")
									{
										width = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;
										swfArray['width'] = width;//swf width
									}
									else if(response.firstChild.childNodes[i].nodeName == "height")
									{
										height = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;
										swfArray['height'] = height;//swf height
									}
									else if(response.firstChild.childNodes[i].nodeName == "title")
										title = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;
									else if(response.firstChild.childNodes[i].nodeName == "divid")
										swfArray['id'] = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;
									else if(response.firstChild.childNodes[i].nodeName == "flashbg")
										swfArray['bg'] = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;//swf bgColor
									else if(response.firstChild.childNodes[i].nodeName == "swfsrc")
										swfArray['src'] = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;//swf path
									else if(response.firstChild.childNodes[i].nodeName == "nlink")
										swfArray['nLink'] = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;//next item link
									else if(response.firstChild.childNodes[i].nodeName == "plink")
										swfArray['pLink'] = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;//previous item link
									else if(response.firstChild.childNodes[i].nodeName == "img_title")
										swfArray['img_title'] = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;//item numbering
									else if(response.firstChild.childNodes[i].nodeName == "alternate_div")
										swfArray['alternate_div'] = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;//alternate div
									else if(response.firstChild.childNodes[i].nodeName.substring(0,4) == "var_") {
										swfArray['flashvars'][response.firstChild.childNodes[i].nodeName.substring(4)] = response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;
									}
									else
										reply += response.firstChild.childNodes[i].childNodes[j].firstChild.nodeValue;//content of the shadowbox div
								}
							}
						}
					} 
				}
				title = (title !='' && title != undefined ? title : '');//if there is no caption set it to empty so caption div wont be displayed
				if(reply !== '' && width !== '' && height != '')
					change_div(reply, width, height, title);//start shadowbox function
				else
					Shadowbox.close();//close shadowbox function
			}
		}
}

function videoPopUpPreLoad() {
	return false;
}

function change_div(content, width, height, title)
{
	if(!skinWidthPadding)//some skins needs extra width
		skinWidthPadding = 0;
	//getActualHeight(content);
	//run the shadowbox function in html mode
	Shadowbox.open({
        content:    content,
        player:     "html",
		height:     parseInt(height),
        width:      parseInt(width) + skinWidthPadding,
		title:		title
    },
	{});

	if(swfArray['pLink'] !== undefined &&  swfArray['nLink'] !== undefined)
		enableNextPrev();//set the next & previous links
	else
	{
		disableNextPrev();
		activateKeyDown(false);//remove event handlers
	}
		
	if(swfArray['id'] !== undefined &&  swfArray['src'] !== undefined &&  swfArray['src'] !== width &&  swfArray['src'] !== height)
		helper();//if there is a swf file to show run helper function
	
	if(swfArray['alternate_div'] !== undefined)
		useAlternateDiv();
	else
	{
		if(document.getElementById('alternate_div'))
			document.getElementById('alternate_div').style.display = 'none';
	}
	
	if(swfArray['img_title'] == undefined && document.getElementById('img_title'))
		document.getElementById('img_title').style.display = 'none';
		
}
	function useAlternateDiv()
	{
		//check if alternate_div is written to the body
		if(!document.getElementById('alternate_div'))
			alternate_div_time = setTimeout(function() { useAlternateDiv(); }, 3000);
		else
		{
			clearTimeout(alternate_div_time);
			document.getElementById('alternate_div').innerHTML = swfArray['alternate_div'];
			document.getElementById('alternate_div').style.display = 'block';
		}
	}
	
	function helper()
	{
		//check if the swf div is written to the body
		if(document.getElementById(swfArray['id']) == null)
			helper_time = setTimeout(function() { helper(); }, 3000);
		else
		{
			clearTimeout(helper_time);
			swfDiv();//embed swf with swfObject method
		}
	}
	
	function enableNextPrev()
	{
		//check if next & previous links are written to the body
		if(document.getElementById('shadowbox_nav_next').style.display !== 'none' || document.getElementById('shadowbox').style.display === 'none')
			enable_time = setTimeout(function() { enableNextPrev(); }, 3000);
		else
		{
			clearTimeout(enable_time);
			document.getElementById('shadowbox_nav_next').style.display = '';//display next link
			document.getElementById('shadowbox_nav_previous').style.display = '';//display previous link
			document.getElementById('shadowbox_nav_next').onclick = function(){video_popup(swfArray['nLink']);};//set links externally
			document.getElementById('shadowbox_nav_previous').onclick = function(){video_popup(swfArray['pLink']);};//set links externally
			if(swfArray['img_title'] !== undefined && img_numbering == 1)//check if skin includes image numbering
			{
				document.getElementById('img_title').style.display = '';
				document.getElementById('img_title').innerHTML = swfArray['img_title'];
			}
			
			if(activated === true && (isMac || isIE))
				document.getElementById('shadowbox').focus();//ie 6 and mac looses focus
		
			if(!attached_handler)
				activateKeyDown(true);//start event handlers
		}
	}
	
	function disableNextPrev()
	{
		if(document.getElementById('shadowbox_nav_next'))
		{
			document.getElementById('shadowbox_nav_next').style.display = 'none';//disable next link
			document.getElementById('shadowbox_nav_previous').style.display = 'none';//disable previous link
		}
	}
	
	function swfDiv()
	{
		//set swf object parameters
		var params = {};
		params.quality = "high";
		//params.scale = "noscale";
		params.wmode = "transparent";
		//params.scale = "noborder";
		params.menu = "menu";
		params.oop = "false";
		var attributes = false;
		//embed swf
		swfobject.embedSWF(swfArray['src'], swfArray['id'], swfArray['width'], swfArray['height'], "9.0.0", '', swfArray["flashvars"], params, attributes);
	}
	
	this.activateKeyDown = function(on)//this function is global, we need to access it outside of the function too.
	{
		if(on === true)
		{
			if(window.addEventListener)
				document.addEventListener('keydown', getKeyCode, false);//add keydown event handler for FF
			else if(document.attachEvent)
				document.attachEvent('onkeydown', getKeyCode);//add keydown event handler for ie
				
			attached_handler = true;
		}
		else
		{
			if(attached_handler)
			{
				if(window.addEventListener)
					document.removeEventListener('keydown', getKeyCode, false);//remove keydown event handler for FF
				else if(document.attachEvent)
					document.detachEvent('onkeydown', getKeyCode);//remove keydown event handler for ie
			
				attached_handler = false;
			}
		}
	};
	
	function getKeyCode(e)
	{
		if(activated === true && attached_handler === true)
		{
			code = (window.event) ? event.keyCode : e.keyCode;
			if(code == 37)//left arrow
				video_popup(swfArray['pLink']);
			else if(code == 39)//right arrow
				video_popup(swfArray['nLink']);
			else if(code == 32)//space
				video_popup(swfArray['nLink']);
		}
		else
			activateKeyDown(false);//remove event handlers
	}
}

function flashCloseImageViewer()
{
	if(activated === true)
		Shadowbox.close();
}