// JavaScript Document

/************Funktion zum Prüfen der E-Mail im Kontaktformular**********/
function EMail(s)
{
	 var a = false;
	 var res = false;
	 if(typeof(RegExp) == 'function')
	 {
	  var b = new RegExp('abc');
	  if(b.test('abc') == true){a = true;}
	  }
	
	 if(a == true)
	 {
	  reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
	                   '(\\@)([a-zA-Z0-9üöäÄÜÖ\\-\\.]+)'+
	                   '(\\.)([a-zA-Z]{2,4})$');
	  res = (reg.test(s));
	 }
	 else
	 {
	  res = (s.search('@') >= 1 &&
	         s.lastIndexOf('.') > s.search('@') &&
	         s.lastIndexOf('.') >= s.length-5)
	 }
	 return(res);
} 

/************Funktion zum Prüfen der Daten im Kontaktformular**********/
function chkFormular()
{  
  if(!EMail(document.form.mail.value))
  {
	  alert("Dies ist keine gültige E-Mail-Adresse!");
	  document.form.mail.focus();
	  return false;
  }
  
  
  if(document.form.mitteilung.value=="")
  {
	   alert("Geben Sie bitte eine Mitteilung ein!");
	   document.form.mitteilung.focus();
	   return false;
  }
}


function chkPhoneField()
{
    if(document.customer_form.phone.value == "")
    {
        var res = confirm('Für evtl. Rückfragen zu Ihrer Bestellung benötigen wir eine Telefonnummer unter der wir Sie tagsüber erreichen können. Die Angabe der Telefonnummer ist für Sie freiwillig.\nMöchten Sie Ihre Telefonnummer jetzt angeben?');
        
        if(res == true)
        {
            document.customer_form.phone.focus();
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return true;
    }
}


function CheckPopUp()
{
 if (typeof PopUpWin == "object"){
  if (!PopUpWin.closed){
   PopUpWin.close();
  }
 }
}


function show(page)
{ 
  CheckPopUp();
  PopUpWin = window.open(page,"Edit","height=400,width=150, top=150, left=733, dependent=yes,resizable=no");
}


function hideErrorMsg()
{
	document.getElementById("error").style.visibility = "hidden";
}


function checkradio(field)
{
    for (i=0; i<field.length; i++)
    {
            if(field[i].checked == true)
            {
                return field[i].value;
            }
    }
}


function change_payment_img(payment_method)
{
    if(payment_method == "paypal")
    {
        document.getElementById('payment_image').src = "images/logo_paypal.jpg";
    }
    else if(payment_method == "direct_debit")
    {
        document.getElementById('payment_image').src = "images/logo_direct_debit.jpg";
    }
    else if(payment_method == "direct_ebanking")
    {
        document.getElementById('payment_image').src = "images/logo_direct_ebanking.jpg";
    }
    else if(payment_method == "prepayment")
    {
        document.getElementById('payment_image').src = "images/logo_prepayment.jpg";
    }
}


function color_mixture(multicolor)
{
    var curr_img_src = document.getElementById("multicolor_image").src;
        
    if(multicolor == "yes")
    {
        document.getElementById("colors").style.display = "block";
        document.getElementById("alignment").style.display = "block";

        if(document.getElementById("asymmetric").checked == true)
        {
            document.getElementById("color_no").style.display = "block";
        }
        
        curr_img_src = curr_img_src.replace("unicolor.jpg", "multicolor_50_50.jpg");
        document.getElementById("multicolor_image").src = curr_img_src;
    }
    else
    {
        document.getElementById("colors").style.display = "none";
        document.getElementById("alignment").style.display = "none";
        document.getElementById("color_no").style.display = "none";
        
        if(curr_img_src.search(/_50_50.jpg/) != -1)
        {
            curr_img_src = curr_img_src.replace("multicolor_50_50.jpg", "unicolor.jpg");
        }
        else if(curr_img_src.search(/_asymmetric.jpg/) != -1)
        {
            curr_img_src = curr_img_src.replace("multicolor_asymmetric.jpg", "unicolor.jpg");
        }

        document.getElementById("multicolor_image").src = curr_img_src;
    }
}

function color_alignment(align)
{
    var curr_img_src = document.getElementById("multicolor_image").src;
    
    if(align == "asymmetric")
    {
        document.getElementById("color_no").style.display = "block";
        
        curr_img_src = curr_img_src.replace("multicolor_50_50.jpg", "multicolor_asymmetric.jpg");
        document.getElementById("multicolor_image").src = curr_img_src;
    }
    else
    {
       document.getElementById("color_no").style.display = "none";
       
        curr_img_src = curr_img_src.replace("multicolor_asymmetric.jpg", "multicolor_50_50.jpg");
        document.getElementById("multicolor_image").src = curr_img_src;
    }
}


function loadSecondSelect(obj)
{
    value = obj.options[obj.selectedIndex].value;
    
    loadLoading = true;

    loadHTTP = ajaxCreateRequestObject();
    loadHTTP.open('POST', loadURL, true);
    loadHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    loadHTTP.onreadystatechange = new Function('fx', 'loadReceive("'+encodeURIComponent(value)+'")');
    loadHTTP.send('select1='+encodeURIComponent(value));
    
    loadItem = obj.parentNode.getElementsByTagName('select')[1];
}


function loadReceive(value)
{
    value = decodeURIComponent(value);

    if(loadHTTP.readyState != 4)
        return;

    var response = unescape(loadHTTP.responseText);
    var results = new Array();
    results = response.split("\n");
    results.shift();
    
    loadLoading = false;
    
    loadItem.options.length = 0;

    while (results.length > 0)
    {
        var key   = results.shift();
        var value = results.shift();
        loadItem.options.add(new Option(value, key));
    }
}


function ajaxCreateRequestObject()
{
    var ro;
    var browser = navigator.appName;
    if (browser == "Microsoft Internet Explorer")
    {
        // for IE
        try
        {
            ro = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            ro = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    else
    {
        // for the rest
        ro = new XMLHttpRequest();
    }
    return ro;
}

/************Funktion zum Selektieren eines in MagicThumb geöffneten Elements**********/
function selectAndClose(value)
{
	var radioEl = getInputByValueAndType(value, "checkbox");
	if (!radioEl) return;
	radioEl.checked = true;
	
	jalousiebox.close();
}

function selectAndContinue(value)
{
	var radioEl = getInputByValueAndType(value, "radio");
	if (!radioEl) return;
	radioEl.checked = true;
	
	var form = getParentForm(radioEl);
	if (!form) return;
	form.submit();
}

function getInputByValueAndType(value, type)
{
	var inputEls = document.getElementsByTagName('input');
	for (var i = 0; i < inputEls.length; i++)
	{
		var inputEl = inputEls[i];
		if (type == inputEl.type && value == inputEl.value) {
			return inputEl;
		}
	}
	return null;
}

function getParentForm(el)
{
	var parentEl = el.parentNode;
	if (null == parentEl) return null;
	if (parentEl.tagName == "FORM") return parentEl;
	return getParentForm(parentEl);
}

/************Funktionen zum automatischen Anzeigen eines Scrollhinweises**********/
var scrollOnDemand = {

	// settings
	buffer: 100, // buffer in pixel
	parentId: 'main_left_bg', // id of parentEl for scrollbox
	topOffset: 20,
	leftOffset: 183,
	
	// private vars
	scrolling: false,
	direction: 0,

	// functions
	registerOnLoadEvent: function()
	{
		if (document.body) scrollOnDemand.init();
		else window.setTimeout("scrollOnDemand.registerOnLoadEvent();", 100);
	},
	
	init: function()
	{
		if (!this.exceedsWindow()) return;
		
		if (this.isIE())
		{
			//this.topOffset -= 10;
			this.leftOffset -= 10;
		}

		this.parentEl = document.getElementById(this.parentId);
		this.offsetTop = this.getOffsets(this.parentEl).y + this.topOffset;
		
		this.createHtml();
		if (this.isIE6())
		{
			window.onscroll = function() {
				scrollOnDemand.updateScrollBoxForIE6();
			};
		}
	},
	
	getOffsets: function(element)
	{
		var y = 0;
		var x = 0;
		do
		{
			y += element.offsetTop  || 0;
			x += element.offsetLeft || 0;
			element = element.offsetParent;
			if (element)
			{
				if (element.tagName == 'BODY')
					break;
			}
		} while (element);
		return {
			'x': x,
			'y': y
		};
	},
	
	exceedsWindow: function()
	{
		var docH = this.getDocumentHeight();
		var winH = this.getInnerHeight();
		return docH - this.buffer > winH;
	},
	
	getInnerHeight: function()
	{
		var h = document.body.clientHeight;
		if (document.body.offsetHeight == h && document.documentElement && document.documentElement.clientHeight)
		{
			h = document.documentElement.clientHeight;
		}
		return h;
	},
	
	getDocumentHeight: function()
	{
		var h = Math.max(
			Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
			Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
			Math.max(document.body.clientHeight, document.documentElement.clientHeight)
		);
		return h;
	},
	
	getScrollTop: function()
	{
		var t = 0;
		if (window.pageYOffset)
		{
			t = window.pageYOffset;
		}
		else if (document.body && document.body.scrollTop)
		{
			t = document.body.scrollTop;
		}
		else
		{
			t = document.documentElement.scrollTop;
		}
		return t;
	},
	
	getScrollMax: function()
	{
		var m = 0;
		if (window.scrollMaxY)
		{
			m = window.scrollMaxY;
		}
		else
		{
			m = document.documentElement.scrollHeight - document.documentElement.clientHeight;
        }
		return m;
	},
	
	isIE6: function()
	{
		return false /*@cc_on || @_jscript_version < 5.7 @*/;
	},
	
	isIE: function()
	{
		return navigator.userAgent.indexOf("MSIE") != -1;
	},
	
	createHtml: function()
	{
		var html  = '<a href="javascript:;" onmousedown="return scrollOnDemand.scrollUp();" onmouseup="return scrollOnDemand.scrollStop();" onmouseout="return scrollOnDemand.scrollStop();"><img src="images/scroll/scrollUp.gif"></a><br>';
			html += '<img src="images/scroll/scrollTitle.gif"><br>';
			html += '<a href="javascript:;" onmousedown="return scrollOnDemand.scrollDown();" onmouseup="return scrollOnDemand.scrollStop();" onmouseout="return scrollOnDemand.scrollStop();"><img src="images/scroll/scrollDown.gif"></a>';
		
		this.scrollEl = document.createElement('div');
		this.scrollEl.id			    = 'scrollBox'
		this.scrollEl.style.position	= this.isIE6() ? 'absolute' : 'fixed';
		this.scrollEl.style.zIndex		= '70';
		this.scrollEl.style.top			= this.offsetTop + 'px';
		this.scrollEl.style.marginLeft	= this.leftOffset + 'px';
		this.scrollEl.innerHTML = html;
		this.parentEl.appendChild(this.scrollEl);
	},
	
	scrollUp: function()
	{
		this.scrolling = true;
		this.direction = -10;
		this.scrollDo();
		return false;
	},
	
	scrollDown: function()
	{
		this.scrolling = true;
		this.direction = 10;
		this.scrollDo();
		return false;
	},
	
	scrollStop: function()
	{
		this.scrolling = false;
		this.direction = 0;
		return false;
	},
	
	scrollDo: function()
	{
		if (this.getScrollTop() <= 0 && this.direction < 0) return;
		if (this.getScrollTop() >= this.getScrollMax() && this.direction > 0) return;

		window.scrollBy(0, this.direction);
		if (this.scrolling) window.setTimeout("scrollOnDemand.scrollDo();", 1);
	},
	
	updateScrollBoxForIE6: function()
	{
		if (!this.scrollEl) return;
		this.scrollEl.style.top = (this.getScrollTop() + this.offsetTop) + 'px';
	}
		
};
window.onload = function() {
	scrollOnDemand.registerOnLoadEvent();
};
