var sCopyTitle	 = null;
var oCurrToolTip = null;
var oToolTipPos	= null;


function showTooltip(obj, blShow)
{
	if (blShow)
	{
		sCopyTitle = obj.title;
		obj.title	= '';
		oCurrToolTip = document.createElement('span');
		oCurrToolTip.innerHTML	= sCopyTitle;
		oCurrToolTip.className	= 'tooltip';

		oToolTipPos = document.createElement('span');
		oToolTipPos.className	= 'tooltippos';
		oToolTipPos.appendChild(oCurrToolTip);

		obj.parentNode.insertBefore(oToolTipPos, obj);
	}
	else
	{
		obj.title	= sCopyTitle;
		sCopytitle = '';
		if (oToolTipPos != null)
		{
			obj.parentNode.removeChild(oToolTipPos);
			oToolTipPos = null;
		}
	}
}

function showBasketWnd(reloaded)
{
	if(shownewbasketmessage == 2)
	{
		if(reloaded == '1')
		{
			if (window.screen)
			{
				var aw = (screen.availWidth-100)/2;
				var ah = (screen.availHeight-100)/2;
			}else{
				var aw = 100; var ah = 100;
			}
			wnd = window.open(currenthomedir+"index.php?sid="+sid+"&cl=info&tpl=basket_popup_full.tpl", "pop"+popupIdent, "resizable=no,status=no,scrollbars=no,menubar=no,above=yes,width=190,height=195,left="+aw+",top="+ah);
			wnd.focus();
		}
		else
		{
			window.name = popupIdent;
			if (window.screen)
			{
				var aw = (screen.availWidth-100)/2;
				var ah = (screen.availHeight-100)/2;
			}else
			{
				var aw = 100; var ah = 100;
			}
			wnd = window.open(currenthomedir+"index.php?sid="+sid+"&lang="+shoplang+"&cl=info&tpl=basket_popup.tpl&_force_no_basket_cmp=1&skipSession=true", "pop"+popupIdent, "resizable=no,status=no,scrollbars=no,menubar=no,above=yes,width=190,height=195,left="+aw+",top="+ah);
			wnd.focus();
		}
	}
}


function setSellList( oInObj)
{
	//for module wlist
	var _wlist = document.getElementById("_wlist");
	if ( _wlist != null)
	{
		if (urlsign == '&')
			_wlist.href = _wlist.href + "&" + oInObj.name + "=" + oInObj.value;
		else
			_wlist.href = _wlist.href + urlsign + oInObj.name + urlsign + oInObj.value;
	}
	//for original selectlist
	var _wlist = document.getElementById("_slist");
	if ( _wlist != null)
	{
		if ( urlsign == '&')
			_wlist.href = _wlist.href + "&" + oInObj.name + "=" + oInObj.value;
		else
			_wlist.href = _wlist.href + urlsign + oInObj.name + urlsign + oInObj.value;
	}
}



function page_loaded(evt)
{
	if($('lgn_usr'))
	{
		if($F('lgn_usr') != '') $('lgn_usr').removeClassName('email');
		if($F('lgn_pwd') != '') $('lgn_pwd').removeClassName('passwort');
		if (navigator.userAgent.indexOf("AppleWebKit")!=-1 || navigator.userAgent.indexOf("Safari")!=-1)
		{
	//		$('lgn_usr').setAttribute("placeholder", "Benutzername");
	//		$('lgn_pwd').setAttribute("placeholder", "Passwort");
		}
		Event.observe($('lgn_usr'), 'blur', add_class_email, false);
		Event.observe($('lgn_usr'), 'focus', rm_class_email, false);
		Event.observe($('lgn_pwd'), 'blur', add_class_passwort, false);
		Event.observe($('lgn_pwd'), 'focus', rm_class_passwort, false);
	}

	if($('searchparamfield'))
	{
		Event.observe($('searchparamfield'), 'blur', add_class_searchparam, false);
		Event.observe($('searchparamfield'), 'focus', rm_class_searchparam, false);
	}
	if($('serviceboxrucksack'))
	{
		$('serviceboxrucksack').hide();
	}

	if(blSwitchToBasket)
	{
		if($('serviceboxrucksack'))
		{
			switchContent('rucksack');
		}
	}
	
	if($('i_order_remark'))
	{
		Event.observe($('i_order_remark'), 'blur', add_class_comment, false);
		Event.observe($('i_order_remark'), 'focus', rm_class_comment, false);
	}	

}

function rm_class_comment(evt)
{
	if($('i_order_remark'))
	{
		$('i_order_remark').removeClassName('commentbg');
	}
}

function add_class_comment(evt)
{
	if($('i_order_remark'))
	{
		if($F('i_order_remark') == '') $('i_order_remark').addClassName('commentbg');
	}
}


function rm_class_searchparam(evt)
{
	if($('searchparamfield'))
	{
		$('searchparamfield').removeClassName('searchparam');
	}
}

function add_class_searchparam(evt)
{
	if($('searchparamfield'))
	{
		if($F('searchparamfield') == '') $('searchparamfield').addClassName('searchparam');
	}
}


function rm_class_email(evt)
{
	if($('lgn_usr'))
	{
		$('lgn_usr').removeClassName('email');
	}
}

function add_class_email(evt)
{
	if($('lgn_usr'))
	{
		if($F('lgn_usr') == '') $('lgn_usr').addClassName('email');
	}
}

function rm_class_passwort(evt)
{
	if($('lgn_pwd'))
	{
		$('lgn_pwd').removeClassName('passwort');
	}
}

function add_class_passwort(evt)
{
	if($('lgn_pwd'))
	{
		if($F('lgn_pwd') == '') $('lgn_pwd').addClassName('passwort');
	}
}

function switchContent(what)
{
	if(what == 'rucksack')
	{
		if($('serviceboxrucksack').visible()) return false;
		$('linkrucksack').addClassName('on');
		$('linkkonto').removeClassName('on');
		new Effect.toggle('serviceboxuser', 'appear', { duration:0.3, queue: 'end'});
		new Effect.toggle('serviceboxrucksack','appear', { duration:0.3, queue: 'end'});
	}else
	{
		if($('serviceboxuser').visible()) return false;
		$('linkkonto').addClassName('on');
		$('linkrucksack').removeClassName('on');
		new Effect.toggle('serviceboxrucksack', 'appear', { duration:0.3, queue: 'end'});
		new Effect.toggle('serviceboxuser','appear', { duration:0.3, queue: 'end'});
	}
}

function checkHostname( hostname )
{
	if ( hostname.charAt(0) == '[' )
	{
		if ( hostname.charAt(hostname.length-1) != ']' )
			return false;
		var ipnr = hostname.substring( 1, hostname.length -1 );
		return checkIpnr( ipnr );
	}

	if ( hostname.charAt(0) == '#' )
	{
		var nr = hostname.substring( 1, hostname.length );
		return checkNr( nr );
	}

	return checkFqdn( hostname );
}

function checkEmailAdr( address )
{
	var status = true;
	var username = "";
	var hostname = "";

	if ( address.length < 8 )
		return false;

	var seperate = address.lastIndexOf("@");
	if ( seperate == -1 )
		return false;

	username = address.substring(0, seperate );
	if ( ! checkUsername( username, "<>()[],;:@\" " ) )
		return false;

	hostname = address.substring(seperate+1, address.length );
	if ( ! checkHostname( hostname ) )
		return false;

	return true;
}

function checkEmail( email, allowFullname )
{
	var existFullname = false;
	var status = true;
	var fullname = "";
	var adress = "";
	if ( email.length < 8 )
		return false;
	var emailBegin = email.indexOf("<");
	var emailEnd = email.lastIndexOf(">");

	if ( (emailBegin == -1) && (emailEnd == -1) )
		return checkEmailAdr( email );

	if ( ( (emailBegin == -1) && (emailEnd != -1) )
	|| ( (emailBegin != -1) && (emailEnd == -1) ) )
		return false;

	adress = email.substring( emailBegin+1, emailEnd );

	if ( ! checkEmailAdr( adress ) )
		return false;

	if ( email.length == adress.length + 2 )
		return true;
	else
		if ( ! allowFullname )
			return false;

	if ( emailEnd == email.length - 1 )
	{
		if ( emailBegin == 0 )
			return true;
		if ( email.charAt( emailBegin -1 ) != ' ' )
			return false;
		fullname = email.substring( 0, emailBegin-1 );
		return checkUsername ( fullname, "<>()[],;:@\"" );
	}

	return false ;
}

function isDigit( ch )
{
	if ( (ch >= '0') && (ch <= '9') )
		return true;
	else
		return false;
}

function isAlpha( ch )
{
	if ( ((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) )
		return true;
	else
		return false;
}

function isAlnum( ch )
{
	if ( isAlpha( ch ) || isDigit( ch ) )
		return true;
	else
		return false;
}

function notIn( str1, str2 )
{
	var i = 0;
	var j = str2.length;
	for( ; i<j; i++ )
	{
		var str3 =  str2.charAt(i);
		if( str1.indexOf( str3 ) != -1 )
			return false;
	}
	return true;
}


function checkUsername( username, mustBeQuoted )
{
	var i = 0;
	var j = username.length;
	if ( username.charAt(0) != '"' )
	{
		if ( (username.charAt(0) <  ' ') || (username.charAt(0) >  '~')
		|| !notIn( mustBeQuoted, username.charAt(0) ) )
			return false;
		for( i=1; i<j; i++ )
		{
			if ( ( (username.charAt(i) < ' ') || (username.charAt(i) >  '~')
			|| !notIn ( mustBeQuoted, username.charAt(i) ) )
			&& ( username.charAt(i-1) != '\\' ) )
				return false;
		}
	}
	else
	{
		if ( username.charAt( j-1 ) != '"' )
			return false;
		for( i=1; i<j-1; i++ )
		{
			if ( ( (username.charAt(i) == '\n') || (username.charAt(i) == '\r')
			|| (username.charAt(i) == '\"') )
			&& (username.charAt(i-1) != '\\') )
				return false;
		}
	}
	return true;
}


function checkNr ( nr )
{
	var i=0;
	var j=nr.length;

	if( j < 1 )
		return false;

	for( ; i<j; i++ )
		if( ( nr.charAt(i) < '0' ) || ( nr.charAt(i) > '9' ) )
			return false;

	return true;
}


function checkIpnr( ipnr )
{
	var iL=0;
	var iC=0;
	var i=0;
	var sNr = "";

	for( ; i< ipnr.length; i++ )
	{
		if ( ipnr.charAt(i) == '.' )
		{
			if ( !iL || (iL> 3) || parseInt( sNr,10 ) > 255 )
				return false;
			iC++;
			iL = 0;
			sNr = "";
			continue;
		}
		if ( isDigit ( ipnr.charAt(i) ) )
		{
			iL++;
			sNr = sNr + ipnr.charAt(i);
			continue;
		}
		return false;
	}

	if ( parseInt( sNr,10 ) > 255 )
		return false;
	if ( ( (iC==3) && (iL>=1) && (iL<=3) ) || ( (iC==4) && (!iL) )  )
		return true;
	else
		return false;
}


function checkFqdn( fqdn )
{
	var iL=0;
	var iC=0;
	var i=fqdn.length-1;

	if ( (fqdn.charAt(0) == '.') || (fqdn.charAt(0) == '-') )
		return false;
	if ( fqdn.charAt(i) == '.' )
		i=i-1;

	for( ; i>=0; i-- )
	{
		if ( fqdn.charAt(i) == '.' )
		{
			if ( iL < 2 && iC < 2 )
				return false;
			if ( fqdn.charAt(i-1) == '-' )
				return false;
			iC++;
			iL = 0;
			continue;
		}
		if ( isAlnum ( fqdn.charAt(i) ) )
		{
			iL++;
			continue;
		}
		if ( fqdn.charAt(i) == '-' )
		{
			if ( !iL )
			return false;
			iL++;
			continue;
		}
		return false;
	}

	if ( !iC || ( iL == 1 && iC < 2 ) || ( !iL && iC==1 ) ) {
		return false;
	}

	return true;

}




Event.observe(window, 'load', page_loaded, false);
