// Javascript functions for lookibox with AJAX

// request object
var arrHttpRequestLookibox = new Array();

// Ob die contents gecached werden sollen
var caching = true;

// cache array
var arrCache = new Array();

// Last call
var activeUrl;

var collection_platid

/**
 * Reloads content for lookibox
 *
 * @param paramsJson Contains all neccessary parameters in json String Format
 */
function makeRequestLookibox(params)
{
	// url erstellen
	url = '/ajax/' + params.view + '.php' + params.urlParams

	activeUrl = url;
	document.getElementById(params.targetDiv).innerHTML = '<div style="position: relative;">' + document.getElementById(params.targetDiv).innerHTML + '<div class="lookibox_ajaxtabs_loader_overlay"><img src="/gfx/ajax/ajax-loader.gif" title="Loading..." alt="Loading..."></div></div>';

	if (arrCache[url] == null)
	{
		// HttpRequest Objekt erstellen
		if (window.XMLHttpRequest) // Mozilla, Safari, Opera, IE7
	    {
		    arrHttpRequestLookibox[url] = new XMLHttpRequest();
	    }
		else if (window.ActiveXObject) // IE6, IE5
	    {
		    try
			{
				arrHttpRequestLookibox = new ActiveXObject("Microsoft.XMLHTTP");
	    	}
	    	catch (e)
	    	{
	        	arrHttpRequestLookibox = new ActiveXObject("Msxml2.XMLHTTP");
	    	}
		}

		// --- Get variablen auslesen -------------------------------------------------------------
		get_variable();

		// --- debuggen ? -------------------------------------------------------------------------
		if (window.$_GET["debug"] != undefined)
		{
			debug = '&debug=' + window.$_GET["debug"];
		}
		else
		{
			debug = '';
		}

		// Callback Function
		arrHttpRequestLookibox[url].onreadystatechange = new Function('getResponseLookibox("' + url + '", "' + params.targetDiv + '")');

		// Response ausführen
		arrHttpRequestLookibox[url].open('GET', url + debug, true);

		// Method, url, Async = true / Sync = false
		arrHttpRequestLookibox[url].send(null); // Start request
	}
	else
	{
		// Inhalt ausm cache lesen
		document.getElementById(params.targetDiv).innerHTML = arrCache[url];

		// --- eventuelle Skript Tags ausführen ---------------------------------------------------
		evalScript(arrCache[url]);
	}
}

function hide_col_buttons(id)
{
	if (document.getElementById("col_buttons_" + id) != null)
	{
		document.getElementById("col_buttons_" + id).style.display="none";
	}
}

function makeRequestCollection(params)
{
	// url erstellen
	url = '/ajax/collection.php?' + params.urlParams;
	get_variable();

	if (params.c_do == "w")
	{
		var first = "w";
		var second = "c";
		var first_in = "wishlist";
		var second_in = "collection";
	}
	else
	{
		var first = "c";
		var second = "w";
		var first_in = "collection";
		var second_in = "wishlist";
	}

	if(params.middle == "true")
	{
		if (document.getElementById("c_" + params.targetDiv) != null)
		{
			document.getElementById("c_" + params.targetDiv).innerHTML = "<div style=\"text-align:center;\"><img src=\"/gfx/looki/collection/sammlung.gif\"><br>" + col_text_1 + "</div>";
		}

		var middle = "&middle=true";
	}
	else
		var middle = "";

	if (params.update == "true")
		update = "&update=true";
	else
		update = "";


	if(collection_platid != "")
		var plat = "&platform_id=" + collection_platid;
	else
		var plat = "";

	if (params.market != true)
		var market = "&market=false";
	else
		var market = "&market=true";

	if (document.getElementById(first + "_" + params.targetDiv) != null)
	{
		if (params.middle != "true")
		{
			document.getElementById(first + "_" + params.targetDiv).innerHTML = '<img src="/branding/looki/gfx/de/btn/' + first_in + '_inactive_n.gif">';
		}

		if (window.XMLHttpRequest) // Mozilla, Safari, Opera, IE7
	    {
		    arrHttpRequestLookibox[first + "_" + params.targetDiv] = new XMLHttpRequest();
	    }
		else if (window.ActiveXObject) // IE6, IE5
	    {
		    try
			{
				arrHttpRequestLookibox = new ActiveXObject("Microsoft.XMLHTTP");
	    	}
	    	catch (e)
	    	{
	        	arrHttpRequestLookibox = new ActiveXObject("Msxml2.XMLHTTP");
	    	}
		}

		// Callback Function
		arrHttpRequestLookibox[first + "_" + params.targetDiv].onreadystatechange = new Function('getResponseCollection("' + first + '_' + params.targetDiv + '", "' + first + '_' + params.targetDiv + '")');

		// Response ausführen
		if (params.c_do == first)
			arrHttpRequestLookibox[first + "_" + params.targetDiv].open('GET', url + "&button=" + first + "&do=" + first + plat + market + middle + update, true);
		else
			arrHttpRequestLookibox[first + "_" + params.targetDiv].open('GET', url + "&button=" + first, true);

		// Method, url, Async = true / Sync = false
		arrHttpRequestLookibox[first + "_" + params.targetDiv].send(null); // Start request
	}

	if (document.getElementById(second + "_" + params.targetDiv) != null)
	{
		document.getElementById(second + "_" + params.targetDiv).innerHTML = '<img src="/branding/looki/gfx/de/btn/' + second_in + '_inactive_n.gif">';

		if (window.XMLHttpRequest) // Mozilla, Safari, Opera, IE7
	    {
		    arrHttpRequestLookibox[second + "_" + params.targetDiv] = new XMLHttpRequest();
	    }
		else if (window.ActiveXObject) // IE6, IE5
	    {
		    try
			{
				arrHttpRequestLookibox = new ActiveXObject("Microsoft.XMLHTTP");
	    	}
	    	catch (e)
	    	{
	        	arrHttpRequestLookibox = new ActiveXObject("Msxml2.XMLHTTP");
	    	}
		}

		// Callback Function
		arrHttpRequestLookibox[second + "_" + params.targetDiv].onreadystatechange = new Function('getResponseCollection("' + second + '_' + params.targetDiv + '", "' + second + '_' + params.targetDiv + '")');

		// Response ausführen
		if (params.c_do == second)
			arrHttpRequestLookibox[second + "_" + params.targetDiv].open('GET', url + "&button=" + second + "&do=" + second + params.extra, true);
		else
			arrHttpRequestLookibox[second + "_" + params.targetDiv].open('GET', url + "&button=" + second, true);

		// Method, url, Async = true / Sync = false
		arrHttpRequestLookibox[second + "_" + params.targetDiv].send(null); // Start request
	}
}

function getResponseCollection(url, targetDivLookibox)
{
	if (arrHttpRequestLookibox[url].readyState == 4 && arrHttpRequestLookibox[url].status == 200)
    {
    	response = arrHttpRequestLookibox[url].responseText;

   		// http response inhalt dem target div zuweisen
   		if (document.getElementById(targetDivLookibox) != null)
   		{
			document.getElementById(targetDivLookibox).innerHTML = response;
		}

		// --- eventuelle Skript Tags ausführen ---------------------------------------------------
		evalScript(response);
    }
}

	////*******
 	function colPopPlat(platform_id)
 	{
 		collection_platid = platform_id;

		for (var i = 0; i <= 100; i++)
		{
			if (document.getElementById("plat_" + i + "_a") != null)
			{
				document.getElementById("plat_" + i + "_a").style.display="none";
			}

			if (document.getElementById("plat_" + i + "_i") != null)
			{
				document.getElementById("plat_" + i + "_i").style.display="";
			}
		}

		if (document.getElementById("plat_" + platform_id + "_i") != null)
		{
			document.getElementById("plat_" + platform_id + "_i").style.display="none";
		}
		if (document.getElementById("plat_" + platform_id + "_a") != null)
		{
			document.getElementById("plat_" + platform_id + "_a").style.display="";
		}
 	}

	function colPopShow(id)
	{
		document.getElementById("popup_" + id).style.display="";
	}

	function colPopHide(id)
	{
		document.getElementById("popup_" + id).style.display="none";
	}
	////*******

/**
 * Sets response as new content of targetDiv.
 */
function getResponseLookibox(url, targetDivLookibox)
{
	if (arrHttpRequestLookibox[url].readyState == 4 && arrHttpRequestLookibox[url].status == 200)
    {
    	response = arrHttpRequestLookibox[url].responseText;

		// Nur Inhalt zuweisen, wenns auch noch der last call ist
    	if (activeUrl == url)
    	{
    		// http response inhalt dem target div zuweisen
			var elem = document.getElementById(targetDivLookibox);
			if(elem)
			{
			  //make sure that it is a valid match on id
			  if(elem.attributes['id'].value != targetDivLookibox)
			  {
			    //otherwise find the correct element
			    for(var i=1;i<document.all[targetDivLookibox].length;i++)
			    {
			      if(document.all[targetDivLookibox][i].attributes['id'].value == targetDivLookibox)
			      {
			        elem = document.all[targetDivLookibox][i];
			        break;
			      }
			    }
			  }
			}
    		elem.innerHTML = response;
		}

		// Response im cache speichern
		if (caching && response != null)
		{
			arrCache[url] = response;
			arrHttpRequestLookibox[url] = null;
		}

		// --- eventuelle Skript Tags ausführen ---------------------------------------------------
		evalScript(response);
    }
}

// --- set active tab -----------------------------------------------------------------------------
function setActiveTab(id)
{
	var splitters = id.split('_');
	var subMenu = id + "_sub";
	var dividerId = splitters[1];

	var i=0;
	while( document.getElementById( splitters[0] + '_' + i ) )
	{
		if( document.getElementById( splitters[0] + '_' + i ) )
		{
			document.getElementById( splitters[0] + '_' + i ).className = 'lookibox_tabmenu_inner_inactive';
		}

		if (document.getElementById('lookibox_tabmenu_inner_divider_' + i))
		{
			document.getElementById('lookibox_tabmenu_inner_divider_' + i).src = '/gfx/v4/global/box/lookibox/divider_inactive.gif';
		}
		i++;
	}

	if( document.getElementById(id) )
	{
		document.getElementById(id).className = 'lookibox_tabmenu_inner_active';

		setActiveSubMenu(subMenu);
	}

	if (document.getElementById('lookibox_tabmenu_inner_divider_' + dividerId))
	{
		document.getElementById('lookibox_tabmenu_inner_divider_' + dividerId).src = '/gfx/v4/global/box/lookibox/divider_active.gif';
	}
	if (document.getElementById('lookibox_tabmenu_inner_divider_' + (dividerId - 1)))
	{
		document.getElementById('lookibox_tabmenu_inner_divider_' + (dividerId - 1)).src = '/gfx/v4/global/box/lookibox/divider_active.gif';
	}
}

// --- set active tab -----------------------------------------------------------------------------
function setActiveSubTab(subid, deactivateAll)
{
	var splitters = subid.split('_');

	var i=0;
	while( document.getElementById( splitters[0] + '_' + i ) )
	{
		if( document.getElementById( splitters[0] + '_' + i ) )
		{
			document.getElementById( splitters[0] + '_' + i ).className = 'lookibox_subtabmenu_inner_inactive';
		}

		i++;
	}

	if( document.getElementById(subid) && deactivateAll == 'false')
	{
		document.getElementById(subid).className = 'lookibox_subtabmenu_inner_active';
	}
}

// --- hide all submenus and show given submenu ---------------------------------------------------
function setActiveSubMenu(subMenuId)
{
	var id = "";

	for(i=0;i<=10;i++)
	{
		id = subMenuId.substr(0,subMenuId.length - 5) + i + "_sub";

		if( document.getElementById( id ) )
		{
			document.getElementById( id ).className = 'hideMenu';
		}
	}

	if( document.getElementById( subMenuId ) )
	{
		//alert(subMenuId);
		document.getElementById( subMenuId).className = 'showMenu';
	}


}
