/*global unescape, escape, window */

//suppress ALERT-Window
function alert(message){
	if(typeof console == 'object'){
		console.warn(message);
	}
}

// shipping_costs popup ... (move to Tools.js)
function shipping_costs(){
	window.open("/content/shippingcosts/?blank=true","Shipping","height=580,width=710,menubar=no,location=no,resizable=yes,scrollbars=yes,status=yes,toolbar=no,top=0");
}

// big product image ... (Tools.js)
function productImage(a) {
	var anewwindow;
	anewwindow	= window.open(a,"Detailansicht","width=430,height=470,resizable=NO");
}

function rebrowse(){window.location.reload();}

function getCookie (name) {
    var dcookie = document.cookie; 
    var cname = name + "=";
    var clen = dcookie.length;
    var cbegin = 0;
        while (cbegin < clen) {
        var vbegin = cbegin + cname.length;
            if (dcookie.substring(cbegin, vbegin) == cname) { 
            var vend = dcookie.indexOf (";", vbegin);
                if (vend == -1){ vend = clen;}
            return unescape(dcookie.substring(vbegin, vend));
            }
        cbegin = dcookie.indexOf(" ", cbegin) + 1;
            if (cbegin === 0) {break;}
        }
    return null;
}

function setCookie (name, value, expires) {
	if (!expires) {expires = new Date();}
	document.cookie = name + "=" + escape (value) +     //<-- save cookie value
	"; expires=" + expires.toGMTString() +  "; path=/"; //<-- set expiration date
}    

function displayCoupon(value) {
	var cooky = document.cookie,
		vstart = cooky.indexOf("ncc=")+4,
		vend   = cooky.indexOf(";", vstart);
		
    if (vend == -1){
        vend = cooky.length;}
    if (value === 0) {
        value = cooky.substring(vstart, vend);
    }

    if (value && value !== 0 && vstart > 3) {
		var elemnewc = document.getElementById('newcust');
	    elemnewc.width = 142;
	    elemnewc.height = 258;
	    elemnewc.src = "/images/coupons/" + value + "euro_gutschein.gif";
	    elemnewc.vspace = 10;
	} 
}

function showInfoOne() {
	window.open('http://www.zooplus.de/content/ds_main','Datenschutz','width=640,height=580,resizable,scrollbars');
}

// Function for deleting a default value in a text-field
function remove_defaultValue(target){
    target.value = "";
}

// multiple Items per page - change Active / change Values (eg hidden fields)
function changeDisplay(elemId, displayType){
	var elem;
	if(document.getElementById(elemId)){    
	   elem = document.getElementById(elemId);	
	}
	if(elem && displayType){
		elem.style.display = displayType;
	}
}
function changeValue(id, newValue){
	if(document.getElementById(id)){
		document.getElementById(id).value = newValue;
	}
}

// Get Last/First node with given Name (eg.: DIV)  inside of an Object 
function getFirstNode(obj, targetNodeName){
	var elemChild = obj.firstChild,
		firstDiv = null;

	//first Item
	if(elemChild.nodeName == targetNodeName){
		firstDiv = elemChild;
		return firstDiv;
	}
	
	//go throug the rest
	while (elemChild.nextSibling){
		if(elemChild.nextSibling.nodeName == targetNodeName){
			firstDiv = elemChild.nextSibling;
			return firstDiv;
		}
		else{
			elemChild = elemChild.nextSibling;
			// reached the last Node - get back to find the last Div
			if(elemChild.nextSibling === null){
				return null;
			}
		}
	}
	return firstDiv;
}

//get the last Child-node of an Object
function getLastNode(obj, targetNodeName){
	var elemChild = obj.lastChild,
		lastDiv = null;
	
	//first Item
	if(elemChild.nodeName == targetNodeName){
		lastDiv = elemChild;
		return lastDiv;
	}	
	
	//go throu the rest
	while (elemChild.previousSibling){
		if(elemChild.previousSibling.nodeName == targetNodeName){
			lastDiv = elemChild.previousSibling;
			return lastDiv;
		}
		else{
			elemChild = elemChild.previousSibling;
			// reached the last Node - get back to find the last Div
			if(elemChild.previousSibling === null){
				return null;
			}
		}
	}
	return lastDiv;
}

// change class - use carefully overrides classes... (use jQuery instead)
function classChange(styleChange, item) {
	item.className=styleChange;
}

// css selector modifier ... outdated (use jQuery instead)
function addClass(element, value) {
	if (!element.className) {
		element.className = value;
	} else {
		var clname = element.className;
		clname += " ";
		clname += value;
		element.className = clname;
	}
}
function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}