/*
 * Datei:   js/common.js
 * Autor:   Thomas Schlicker
 * Version: 05/2010	
 */


var ns = (document.layers);
var ie = (document.all);
var w3 = (document.getElementById && !ie);
var http_request = false;
var http_request_2 = false;

function initRequest() {

	http_request = false;
	try {
		http_request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(Error) {

		try {
			http_request = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch(Error) {
			http_request = new XMLHttpRequest();
		}
	}
	if(http_request)
		return http_request;
	else
		return false;
}
function initRequest2() {

	http_request_2 = false;
	try {
		http_request_2 = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(Error) {

		try {
			http_request_2 = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch(Error) {
			http_request_2 = new XMLHttpRequest();
		}
	}
	if(http_request_2)
		return http_request_2;
	else
		return false;
}

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 '';
            });
            if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
        }
        return false;
    }
    catch(e) { alert(e)}
}

function getPosition(element) {
	
	var elem = element, tagname = "", x = 0, y = 0;
	while ( (typeof(elem) == "object") && (typeof(elem.tagName) != "undefined" )) {
		
		y += elem.offsetTop;     
		x += elem.offsetLeft;    
		tagname = elem.tagName.toUpperCase();
		
		if (tagname == "BODY")
			elem = 0;
			
		if (typeof(elem) == "object")
			if (typeof(elem.offsetParent) == "object")
				elem = elem.offsetParent;
	}

	position = new Object();
	position.x = x;
	position.y = y;
  
	return position;
}

/* PAGER */
var param;
function page(p,pa,pp,id) {

	param = pa;
	if(!initRequest())
		return false;

	switch(param) {
		
		case "homeproduct":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_homeproduct.php?p="+p, true);
								break;
							
		case "teamproduct":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_teamproduct.php?p="+p, true);
								break;
							
		case "productlist":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_productlist.php?p="+p+"&pp="+pp, true);
								break;
								
		case "homeclearance":	http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_homeclearance.php?p="+p, true);
								break;
							
		case "teamteamsales":	http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_teamteamsales.php?p="+p, true);
								break;
							
		case "teamclearance":	http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_teamclearance.php?p="+p, true);
								break;
								
		case "homespotlight":	http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_homespotlight.php?p="+p, true);
								break;
							
		case "teamspotlight":	http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_teamspotlight.php?p="+p, true);
								break;
								
		case "homedeals":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_homedeals.php?p="+p, true);
								break;
								
		case "homestock":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_homestock.php?p="+p, true);
								break;
							
		case "weaponlist":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_weaponlist.php?p="+p, true);
								break;
							
		case "equiplist":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_equiplist.php?p="+p, true);
								break;
		
		case "accessory":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_accessorylist.php?p="+p, true);
								break;
		
		case "accessory_marke":	http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_accessorylist.php?p="+p+"&c=marken&id="+id, true);
								break;
								
		case "accessory_thema":	http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_accessorylist.php?p="+p+"&cthemen=&id="+id, true);
								break;
		
		case "accessory_kat":	http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_accessorylist.php?p="+p+"&c=kategorien&id="+id, true);
								break;
							
		case "notelist":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_notelist.php?p="+p, true);
								break;
							
		case "basketlist":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_basketlist.php?p="+p, true);
								break;
							
		case "historylist":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_historylist.php?p="+p, true);
								break;
								
		case "historylistbonus":http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_historylistbonus.php?p="+p, true);
								break;
							
		case "marklist":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_marklist.php?p="+p+"&id="+id, true);
								break;
							
		case "categorylist":	http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_categorylist.php?p="+p+"&id="+id, true);
								break;
							
		case "topiclist":		http_request.onreadystatechange = handlePager;
								http_request.open("GET", "actions/ajax_topiclist.php?p="+p+"&id="+id, true);
								break;
	}
	http_request.send(null);
}
function handlePager() {

  	if (http_request.readyState == 4) {
  	
		if (http_request.status == 200) {
		
			switch(param) {
			
				case "homeproduct":
				case "teamproduct":		document.getElementById("productlist-home").innerHTML = http_request.responseText;
										break;
									
				case "productlist":		document.getElementById("productlist").innerHTML = http_request.responseText;
										break;
										
				case "teamteamsales":	document.getElementById("teamsaleslist-home").innerHTML = http_request.responseText;
										break;
									
				case "homeclearance":
				case "teamclearance":	document.getElementById("clearancelist-home").innerHTML = http_request.responseText;
										break;
										
				case "homespotlight":	document.getElementById("spotlightlist-home").innerHTML = http_request.responseText;
										break;

				case "teamspotlight":	document.getElementById("spotlightlist-team").innerHTML = http_request.responseText;
										break;

										
				case "homedeals":		document.getElementById("deallist-home").innerHTML = http_request.responseText;
										break;
										
				case "homestock":		document.getElementById("stocklist-home").innerHTML = http_request.responseText;
										break;
									
				case "weaponlist":		document.getElementById("weaponlist").innerHTML = http_request.responseText;
										break;
									
				case "equiplist":		document.getElementById("equiplist").innerHTML = http_request.responseText;
										break;
						
				case "accessory":
				case "accessory_marke":	
				case "accessory_thema":	
				case "accessory_kat":	document.getElementById("accessorylist").innerHTML = http_request.responseText;
										break;
									
				case "notelist":		document.getElementById("notelist").innerHTML = http_request.responseText;
										break;
									
				case "basketlist":		document.getElementById("basketlist-user").innerHTML = http_request.responseText;
										break;
									
				case "historylist":		document.getElementById("history-user").innerHTML = http_request.responseText;
										break;
										
				case "historylistbonus":document.getElementById("historybonus-user").innerHTML = http_request.responseText;
										break;
									
				case "marklist":		document.getElementById("marklist-2").innerHTML = http_request.responseText;
										break;
									
				case "categorylist":	document.getElementById("categorylist-2").innerHTML = http_request.responseText;
										break;
									
				case "topiclist":		document.getElementById("topiclist").innerHTML = http_request.responseText;
										break;		
			}
			evalScript(http_request.responseText);
    	} 
	}
}

/* AJAX FUNCTIONS */
function saveNewsletter(e,uid) {

	if(!initRequest())
		return false;
		
	http_request.open("GET", "actions/savenewsletter.php?uid="+uid+"&value="+e.checked, true);
	http_request.send(null);
}
function saveNote(e,uid) {

	if(!initRequest())
		return false;
		
	http_request.open("GET", "actions/savenote.php?uid="+uid+"&value="+e.checked, true);
	http_request.send(null);
}

/* BASKET */
function showBasket(c) {

	if(!initRequest())
		return false;
	
	http_request.onreadystatechange = handleBasket;
	http_request.open("GET", "actions/getbasketlayer.php?c="+c, true);
	http_request.send(null);
		
	var top = 198;
	var left = 600;
	var element = document.getElementById('servicenavi');
	var p = getPosition(element);
	top = p.y;
	left = p.x - 422;
	document.getElementById("basket-layer").style.top = top +"px";
	document.getElementById("basket-layer").style.left = left +"px";
		
	document.getElementById("basket-layer").style.display = "block";
	
	window.scrollTo(100, 100);
}
function closeBasket() {
	document.getElementById("basket-layer").style.display = "none";
}
function handleBasket() {
  	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			document.getElementById("basket-layer-body").innerHTML = http_request.responseText;
    	} 
	}
}
function addBasket() {
	
	var number = document.formproduct.number.value;
	var articleid = document.formproduct.articlenumber.value;
	
	if(!initRequest())
		return false;
	
	http_request.open("GET", "actions/addbasket.php?id="+articleid+"&number="+number, true);
	http_request.send(null);
	
	var new_number = parseInt(document.getElementById("cart-number").innerHTML) + number;
	//updateBasketNumber(new_number);
}
function editBasketNumber(e,id,number) {
	e.innerHTML = '<input type="text" name="number" value="'+number+'" size="1" autocomplete="off" class="basket-layer-number" onblur="confirmBasketNumber(this,\''+id+'\')" />';
}
function updateBasketNumber(number) {
	document.getElementById("cart-number").innerHTML = number + " Artikel";
}
function confirmBasketNumber(e,id) {

	if(!initRequest())
		return false;
	
	http_request.open("GET", "actions/savebasketnumber.php?id="+id+"&number="+e.value, true);
	http_request.send(null);
	
	showBasket();
}
function closeFancybox() {
	$.fancybox.close();
}
function showBasketFancy(c,session) {
	$.fancybox.close();
	//showBasket(c);
	checkout(session);
}

/* LOGIN */
function login(uid) {

	if(uid) {
		document.location.href = "index.php?c=account";
	}
	else {
		
		var top = 198;
		var left = 800;
		var element = document.getElementById('servicenavi');
		var c = getPosition(element);
		top = c.y;
		left = c.x - 262;
		document.getElementById("login-layer").style.top = top +"px";
		document.getElementById("login-layer").style.left = left +"px";
		
		document.getElementById("basket-layer").style.display = "none";
		//document.getElementById("pwd").innerHTML = "";
		document.getElementById("login-layer").style.display = "block";
	}
}
function checkLogin(userError) {

	if(userError) {
		
		var top = 198;
		var left = 800;
		var element = document.getElementById('servicenavi');
		var c = getPosition(element);
		top = c.y;
		left = c.x - 262;
		document.getElementById("login-layer").style.top = top +"px";
		document.getElementById("login-layer").style.left = left +"px";
		
		document.getElementById("login-error").innerHTML = userError;
		//document.getElementById("pwd").innerHTML = "";
		document.getElementById("login-error").style.display = "block";
		document.getElementById("login-layer").style.display = "block";
		
	}
	else {
		document.getElementById("login-error").style.display = "none";
		//document.getElementById("user").innerHTML = "";
		//document.getElementById("pwd").innerHTML = "";
	}
}
function closeLogin() {
	document.getElementById("login-layer").style.display = "none";
	document.getElementById("login-error").style.display = "none";
	document.getElementById("login-error").innerHTML = "";
	//document.getElementById("pwd").innerHTML = "";
}

/* CHECKOUT */
function checkout(uid) {

	if(uid) {
		document.location.href = "index.php?c=checkout";
	}
	else {
		
		var top = 198;
		var left = 800;
		var element = document.getElementById('servicenavi');
		var c = getPosition(element);
		top = c.y;
		left = c.x - 262;
		document.getElementById("login-layer").style.top = top +"px";
		document.getElementById("login-layer").style.left = left +"px";
		
		document.getElementById("basket-layer").style.display = "none";
		document.getElementById("login-layer").style.display = "block";
	}
}
var val = 0;
var act = 0;
var code
function checkBonus(v) {
	
	if(!initRequest())
		return false;
	
	if(v) {
		act = 3;
		code = "";
	}
	else {
		act = 0;
		code = document.getElementById("id-bonus-code").value;
	}
	val = v;
	
	http_request.onreadystatechange = handlecheckBonus;
	http_request.open("GET", "actions/checkbonus.php?code="+code, true);
	http_request.send(null);
}
function handlecheckBonus() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			
			if(act < 3) {
				
				if(http_request.responseText == "true") 
					act = 1;
				else 
					act = 2;	
			}
			
			if(!initRequest2())
				return false;
			
			http_request_2.onreadystatechange = handleBonus;
			http_request_2.open("GET", "actions/bonus.php?code="+code, true);
			http_request_2.send(null);
		} 
	}
}
function handleBonus() {
	if (http_request_2.readyState == 4) {
		if (http_request_2.status == 200) {
			
			if(act == 1) {
				
				document.getElementById("id-bonus-error").style.display = "none";
				document.getElementById("id-bonus-msg").innerHTML = "Ihr Gutschein wurde verrechnet.";
				document.getElementById("bonus-link").href = "javascript: checkBonus(1)";
				document.getElementById("bonus-link").innerHTML = "&gt;&gt; Gutschein entfernen";
			}
			else if(act == 2) {
					
				document.getElementById("id-bonus-code").value = "";
				document.getElementById("bonus-link").href = "javascript: checkBonus(0)";
				document.getElementById("bonus-link").innerHTML = "&gt;&gt; Jetzt verrechnen";
				document.getElementById("id-bonus-error").style.display = "block";
			}
			else  if(act == 3) {
				
				document.getElementById("id-bonus-error").style.display = "none";
				document.getElementById("id-bonus-code").value = "";
				document.getElementById("bonus-link").href = "javascript: checkBonus(0)";
				document.getElementById("bonus-link").innerHTML = "&gt;&gt; Jetzt verrechnen";
				document.getElementById("id-bonus-msg").innerHTML = "Wenn Sie einen Gutschein haben, geben Sie bitte den Code ein und klicken auf verrechnen.";
			}
			
			document.getElementById("checkout-footer").innerHTML = http_request_2.responseText;
    	}
    } 
}

/* ACCOUNT */
function handleBlock(block) {
	
	if(document.getElementById(block).style.display == 'block') {
		document.getElementById('arrow-'+block).src = "images/icon-arrow-1.gif";
		document.getElementById(block).style.display = "none";
	}
	else {
		document.getElementById('arrow-'+block).src = "images/icon-arrow-2.gif";
		document.getElementById(block).style.display = "block";
	}
}
function initBlock(block) {
	
	if(block) {
		document.getElementById('arrow-'+block).src = "images/icon-arrow-2.gif";
		document.getElementById(block).style.display = "block";
	}
}
var bestellid;
var rechnungsflag;
function showHistoryDetails(id,flag) {
	
	if(!initRequest())
		return false;
	
	bestellid = id
	rechnungsflag = flag;
	if(rechnungsflag > 0)
		bestellid = bestellid+"-2";

	http_request.onreadystatechange = handleHistoryDetails;
	http_request.open("GET", "actions/gethistorydetails.php?id="+id+"&rechnung="+flag, true);
	http_request.send(null);
}
function showHistoryDetailsTest(id,flag) {
	
	if(!initRequest())
		return false;
	
	bestellid = id
	http_request.onreadystatechange = handleHistoryDetails;
	http_request.open("GET", "actions/gethistorydetails_test.php?id="+id, true);
	http_request.send(null);
}

function handleHistoryDetails() {
  	if (http_request.readyState == 4) {
		if(http_request.status == 200) {
			if(document.getElementById(bestellid).innerHTML != '') {
				document.getElementById('arrow-history-'+bestellid).src = "images/icon-arrow-1.gif";
				document.getElementById(bestellid).innerHTML = '';
			}
			else {
				document.getElementById('arrow-history-'+bestellid).src = "images/icon-arrow-2.gif";
				document.getElementById(bestellid).innerHTML = http_request.responseText;
				evalScript(http_request.responseText);
			}	
    		} 
	}
}

/* History BO */
function showHistoryDetailsBo(id,flag) {
	
	if(!initRequest())
		return false;
	
	bestellid = id
	rechnungsflag = flag;
	if(rechnungsflag > 0)
		bestellid = bestellid+"-2";

	http_request.onreadystatechange = handleHistoryDetailsBo;
	http_request.open("GET", "gethistorydetailsBo.php?id="+id+"&rechnung="+flag, true);
	http_request.send(null);
}
function handleHistoryDetailsBo() {
  	if (http_request.readyState == 4) {
		if(http_request.status == 200) {
			if(document.getElementById(bestellid).innerHTML != '') {
				document.getElementById(bestellid).innerHTML = '';
			}
			else {
				document.getElementById(bestellid).innerHTML = http_request.responseText;
				evalScript(http_request.responseText);
			}	
    		} 
	}
}


/* IMAGE */
function changeImage(img) {
	document.articleimage.src = img;
	document.getElementById('productimage').href = img;
}
function showImage(e) {
	document.getElementById("image-layer-body").innerHTML = '<img src="'+e.src+'" name="articleimage" alt="" />';
	document.getElementById("image-layer").style.display = "block";
}
function closeImage() {
	document.getElementById("image-layer-body").innerHTML = "";
	document.getElementById("image-layer").style.display = "none";
}
function changeTeamImg(img) {
	document.teamimage.src = img;
	document.getElementById('teamimage').href = img;
}

/* PRODUCT */
function changeArticle(e) {

	document.location.href = "index.php?c=product&id="+e.value;
}


/* jQuery framework */
$(document).ready( function() {
	
	/* toggle */
	jQuery('div.title.toggle').click(
		function() {
			if(jQuery(this).hasClass('open'))
				jQuery(this).removeClass('open')
			else
				jQuery(this).addClass('open')
			jQuery(this).next().toggle();
			jQuery(this).next().next().toggle();
		}
	);
});
