//--------------------------------
/*
*	AJAX Merkzettel
*/  
//--------------------------------

//--------------------------------
// config vars 
var MerkzettelPhPUri          = "/2011/content/html/merkzettel-ajaxrequest.php";
var MerkzettelPrintPhPUri     = "/2011/content/html/merkzettel-print.php";
var MerkzettelSmallPhPUri     = "/2011/content/html/merkzettel-small-ajaxrequest.php";
//--------------------------------

	
// global script vars 
var MerkzettelTimout      = 10000; // millisekunden
var MerkzettelAjaxReq     = null;
var MerkzettelTimoutId    = 0; 
var sid = "";
InitMerkzettel();


// Init Merkzettel vars 
function InitMerkzettel()
{
	// Merkzettel
	if (document.layers)
		document.captureEvents(Event.KEYPRESS);
	 document.onkeypress=KeyCheck;

	//Our XmlHttpRequest object
	MerkzettelAjaxReq = getXmlHttpRequestObjectSFinder();
	if (!MerkzettelAjaxReq)
		alert('Init Merkzettel error 1');

//	LoadMerkzettelData('?c=content_small','de');

	
}
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObjectSFinder()
{
	http_request = false;
	if (window.XMLHttpRequest)	
	 { // Mozilla, Safari,...
       http_request = new XMLHttpRequest();
       if (http_request.overrideMimeType)
           http_request.overrideMimeType('text/xml');
	} 
    else if (window.ActiveXObject) 
    { // IE
	
    	try 
        {
       		http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e) 
       
        {
          try
          {
	         http_request = new ActiveXObject("Microsoft.XMLHTTP");
          }catch (e) 
          {
          	
          }
        }
     }
     return(http_request);
}

function RequestTimeout() 
{
   http_request.abort();
   SetInnnerHtml("id_kinmind","Timeouterror!","block");
}

// start php request 
function LoadMerkzettelData(param,lang)
{
	if (lang ==undefined) 
		alert("lang undefined param=",param);
		
	if (MerkzettelAjaxReq && (MerkzettelAjaxReq.readyState==4 || MerkzettelAjaxReq.readyState==0)) 
	{
	    MerkzettelTimoutId = setTimeout("RequestTimeout()",MerkzettelTimout);
		if (param == '?c=content_small')	
		  url = MerkzettelSmallPhPUri;
		else
		  url = MerkzettelPhPUri;

		if(typeof sid != 'undefined' && sid !='') 
		{
			if (param != '')
				param += '&';
			else	
				param += '?';
			param += sid;	
		}

		if (param != '')
			param += '&lang=' + lang;
		else	
			param += '?lang=' + lang;
			
		MerkzettelAjaxReq.open("GET",url + param,true);
		
		MerkzettelAjaxReq.onreadystatechange = handleMerkzettelRequest; 
		MerkzettelAjaxReq.send(null);
	}		
}
// get date from php script 
function handleMerkzettelRequest() 
{
	var found_start = false;
	if (MerkzettelAjaxReq && MerkzettelAjaxReq.readyState==4)
	{
		if (MerkzettelTimoutId) 
			clearTimeout(MerkzettelTimoutId);
		
		//xml = MerkzettelAjaxReq.responseXML;
		//alert(MerkzettelAjaxReq.responseXML);	
		//alert(MerkzettelAjaxReq.responseText);
		if (window.DOMParser)
			 xml = MerkzettelAjaxReq.responseXML;
		else // Internet Explorer
		  {
			xml = new ActiveXObject("Microsoft.XMLDOM");
			xml.async="false";
			xml.loadXML(MerkzettelAjaxReq.responseText);
		  } 

 	    var mode = xml.getElementsByTagName("mode")[0].firstChild.nodeValue;
		var data = xml.getElementsByTagName("data")[0].firstChild.nodeValue;
		var mz_count = xml.getElementsByTagName("mz_count")[0].firstChild.nodeValue;
		var lang     = xml.getElementsByTagName("lang")[0].firstChild.nodeValue;
			
		SetInnnerHtml("id_mz_count",mz_count,"inline");	
		
	   	sid = xml.getElementsByTagName("sid")[0].firstChild.nodeValue;

		switch (mode)
		{
			case 'content_small':
				var content  = xml.getElementsByTagName("content")[0].firstChild.nodeValue;
				SetInnnerHtml("id_mz_small",content,"block");
				evalScript(content);
				break;
			case 'content':
			case 'show_mz':
				var content  = xml.getElementsByTagName("content")[0].firstChild.nodeValue;

				SetInnnerHtml("mz_content",content,"block");
				if (eval==1)
					evalScript(content);
				
				document.getElementById('id_mz_abriss_middle').style.height = xml.getElementsByTagName("mz_height")[0].firstChild.nodeValue;
				//if (middle)
					//middle.style.height = xml.getElementsByTagName("height")[0].firstChild.nodeValue;
			 
				mzSetStatus();	
				break;
			case 'get_content_item':
				//alert(MerkzettelAjaxReq.responseText);
				var artikel_detail  = xml.getElementsByTagName("artikel_detail")[0].firstChild.nodeValue;
				var artikel_img     = xml.getElementsByTagName("artikel_img")[0].firstChild.nodeValue;
				var select_size     = xml.getElementsByTagName("select_size")[0].firstChild.nodeValue;
				var select_width    = xml.getElementsByTagName("select_width")[0].firstChild.nodeValue;
				
				SetInnnerHtml("id_mz_text",artikel_detail,"block");
				SetInnnerHtml("id_mz_img",artikel_img,"block");
				SetInnnerHtml("id_mz_width",select_width,"block");
				SetInnnerHtml("id_mz_size",select_size,"block");
				SetInnnerHtml("id_mz_price","&nbsp;","block");
				SetInnnerHtml("id_mz_error_box","&nbsp;","block");
				
				
				document.getElementById('id_mz_abriss_middle').height = '100px';
				

				mzSetStatus();
				break;
			case 'get_price':
				var price = xml.getElementsByTagName("price")[0].firstChild.nodeValue;
				SetInnnerHtml("id_mz_price",price,"block");
				break;
			case 'get_size':
				var size = xml.getElementsByTagName("select_size")[0].firstChild.nodeValue;
				SetInnnerHtml("id_mz_size",size,"block");
				mzSetStatus();
			case 'get_error':
				var value = xml.getElementsByTagName("err_msg")[0].firstChild.nodeValue;
				SetInnnerHtml("id_mz_error_box",value,"block");
				break;
			case 'add_mz':
				var value = xml.getElementsByTagName("add_mz_msg")[0].firstChild.nodeValue;
				alert(value);
				SetInnnerHtml("id_mz_error_box",'',"block");
				LoadMerkzettelData('?c=content_small',lang);
				break;
		}
	}
}

function evalScript(scripts)
{ 
try
  { 
	if	(scripts != '')
    { 
		var script = "";
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
                                   if (scripts !== null) script += arguments[1] + '\n';
                                    return '';});
		window.setTimeout(script, 0);
    }
    return false;
}
  catch(e)
  { 
  alert(e)
  }
}

function SetInnnerHtml(id,value,display)
{
	var element  = document.getElementById(id);
	if (element)
	{
		element.style.display = display;
		element.innerHTML     = value;
	}
//	else
	//	alert("missing id : " + id);
}

function KeyCheck(e)
{
	var evt = e || window.event;
//	alert(evt.keyCode);
	if (evt.keyCode==27)// ESC  Merkzettel schließen
		MzClose();
}
// Merkzettel öffnen aus der Kollektion 
function MzOpen(art_no,lang)
{
	var element  = document.getElementById('mz_content');
	if (element)
	{
		LoadMerkzettelData("?c=content&art_no=" + art_no,lang);
		KeepInMindId = 'mz_content';
		element.style.display = "block";
	}
//	else
	//	alert("missing id : mz_content");

}

// Merkzettel anzeigen aus top menu
function MzShow(art_no,lang)
{
	var element  = document.getElementById('mz_content');
	if (element)
	{
		LoadMerkzettelData("?c=show_mz&art_no=" + art_no,lang);
		KeepInMindId = 'mz_content';
		element.style.display = "block";
	}
}

// Merkzettel schließen
function MzClose()
{
	if (KeepInMindId)
	{
		var element = document.getElementById(KeepInMindId);
		if (element)
		{
			KeepInMindId = 0;
			SetInnnerHtml("id_mz_text","&nbsp;","block");
			SetInnnerHtml("id_mz_img","&nbsp;","block");
			SetInnnerHtml("id_mz_farbvarianten","","block");
			SetInnnerHtml("id_mz_width","","block");
			SetInnnerHtml("id_mz_size","","block");
			SetInnnerHtml("id_mz_price","&nbsp;","block");
			SetInnnerHtml("id_mz_error_box","&nbsp;","block");
			element.style.display = "none";
		}
		else
			alert("missing id : " + KeepInMindId);
	}
}

// auf Farbvariante geklickt=> Bild und Daten nachladen
function mzLoadContentItemData(param,lang)
{
	LoadMerkzettelData('?c=get_content_item&art_no=' + param,lang);
}

// auf Farbvariante geklickt=> Bild und Daten nachladen
function mzLoadContentItemDataSize(artnr,size,lang)
{
	LoadMerkzettelData('?c=show_mz&art_no=' + artnr + '&art_size='+size,lang);
}
// Status Formular setzen
function mzSetStatus()
{
	var width_element  = document.getElementById('id_shoe_width');
	var size_element  = document.getElementById('id_shoe_size');
	
	if (width_element)
	{
		if (width_element.value == -1) 
			document.getElementById('id_shoe_size').disabled = true;
		else
			document.getElementById('id_shoe_size').disabled = false;

		document.getElementById('id_shoe_size').value = -1;
		SetInnnerHtml("id_mz_price","&nbsp;","block");
	}
	
	if (size_element && size_element.value == -1) 
		SetInnnerHtml("id_mz_price","&nbsp;","block");
}
// Selectbox neue Weite gewählt
function mzNewWidth(element,lang)
{
	if (element.value != -1) 
		LoadMerkzettelData("?c=get_size&art_no=" + document.getElementById('id_shoe_width').value,lang) ;

	mzSetStatus();
}
// Selectbox neue Größe gewählt
function mzNewSize(element,lang)
{
	if (element.value != -1) 
		LoadMerkzettelData("?c=get_price&art_no=" + document.getElementById('id_shoe_width').value + "&artgr=" + element.value,lang) ;
	else
	{
		var size_element  = document.getElementById('id_shoe_size');
		if (size_element && size_element.value == -1) 
			SetInnnerHtml("id_mz_price","&nbsp;","block");
	}		
}

// Artikel auf den Merkzettel 
function MzAdd(lang)
{
	var width_element = document.getElementById('id_shoe_width');
	var size_element  = document.getElementById('id_shoe_size');
	if (width_element.value == -1) 
		LoadMerkzettelData("?c=get_error&err_no=1",lang);
	else if (size_element.value == -1) 	
		LoadMerkzettelData("?c=get_error&err_no=2",lang);
	else
	{
		LoadMerkzettelData("?c=add_mz&art_no=" + width_element.value + "&artgr=" + size_element.value,lang);
	}
}

// Merkzettel Print Popup
function MzPrint(lang,sid)
{ 
//	window.open(MerkzettelPrintPhPUri+lang+".php"+sid); 
	window.open(MerkzettelPrintPhPUri + '?lang='+lang); 
}

