/*global 
unescape, escape, 
window, document, navigator,
console
 */

// debug functionality
function log(msg, type){
	var debugEnabled = false;
	// enable for firebug / chrome / ... with user Agent
	if(((navigator.userAgent == "ZOOSP") || (navigator.userAgent == "ZOODEBUG")) && typeof console == 'object'){
		debugEnabled = true;
	}
	
	if(debugEnabled && typeof msg == "string"){
		switch(type){
			case "error":console.error(msg);break;
			case "info" :console.info(msg);break;
			case "warn" :console.warn(msg);break;
			case "log":console.log(msg);break;
			case "debug":console.debug(msg);break;
			default :console.log(msg);break;
		}
	}
}

//suppress ALERT-Window
function alert(message){
	log(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");
}

// Cookie interaction
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)===' '){
			c = c.substring(1,c.length);
		}
		if (c.indexOf(nameEQ) === 0){
			return c.substring(nameEQ.length,c.length);
		}
	}
	return null;
}

// old Naming in JSPs - remove here and in DB (empathy scripts use CID)
function getCookie(name){
	readCookie(name);
}

function newCustomer(){
	if (!readCookie('cid')){
		return 1;
	}
	return 0;
}

// generate parametrised AD-Server call
function getZoohippo(siteId, protocoll){
	log("getZoohippo", "info");
	if (siteId && protocoll != ''){
		document.write(unescape("%3Cscript src='" + protocoll + "://pictures.zooplus.com/zoohippo?id=" + siteId + "&nc=" + newCustomer() + "' type='text/javascript'%3E%3C/script%3E"));
	}
}

// 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 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;
	}
}

// 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,' ');
	}
}

// flexible Eventhandler (addEvent, removeEvent) made by John Resig - http://ejohn.org/projects/flexible-javascript-events/
function addEvent( obj, type, fn )
{
   if (obj.addEventListener) {
      obj.addEventListener( type, fn, false );
   }
   else if (obj.attachEvent) {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function() { obj["e"+type+fn]( window.event ); };
      obj.attachEvent( "on"+type, obj[type+fn] );
   }
}

function removeEvent( obj, type, fn )
{
   if (obj.removeEventListener) {
      obj.removeEventListener( type, fn, false );
   } else if (obj.detachEvent) {
      obj.detachEvent( "on"+type, obj[type+fn] );
      obj[type+fn] = null;
      obj["e"+type+fn] = null;
   }
}
/*
	Format given number according to given currency code and locale.
	For further reading, see http://en.wikipedia.org/wiki/Linguistic_issues_concerning_the_euro#Summary
	and http://id.wikipedia.org/wiki/ISO_4217
	@param currencyCode: ISO 4127 currency code
*/
function formatNumber(number, currencyCode, locale)
{	
	var currency;
	switch(currencyCode)
	{
		case "CZK"	: currency = 'K&#269;';break;
		case "GBP"	: currency = '&pound;';break;
		case "PLN"	: currency = 'z&#322;';break;
		case "EUR"	: currency = '&euro;';break;
		default		: currency = currencyCode;break;
	}
	
	if(currencyCode == 'GBP'){
		return currency + number;
	}
	else if(currencyCode == 'EUR'){
		switch(locale){
			case 'de_DE': return  number + ' ' + currency;
			case 'en_GB': return currency + number;
			case 'sk_SK': return number + ' ' + currency;
			case 'ie_IE': return currency + number;
			case 'nl_NL': return currency + ' ' + number;
			default: return number + ' ' + currency;
		
		}
	}
	else {
		return number + ' ' + currency;
	}
	
}