
/* 	***************************************************************************
	AJAX
	*************************************************************************** */
	

var xmlhttp;
var queue = new Array();





function addAjaxReqest(url, parsefunc, mymethod, postparam)
{
	queueLength = queue.length;
	queue[queueLength] = new Array();
	queue[queueLength][0] = url;
	queue[queueLength][1] = parsefunc;
	queue[queueLength][2] = mymethod;
	queue[queueLength][3] = postparam;
	queueLength = queue.length;
	
	if(queueLength==1) {
		getXMLData(queue[0][0], queue[0][1], queue[0][2], queue[0][3]);
	}
}

function getXMLData(url, parsefunc, mymethod, postparam)
{
	
	if(xmlhhtp = getXMLHttpObject() == false) {
		//alert("Fehler beim Anlegen des XMLHttpObject");
		alert("Ein technischer Fehler ist aufgetreten! Bitte laden Sie Ihre Seite neu.");
		return;
	}
	
	if(mymethod == 'POST') {
		xmlhttp.open("POST", url , true);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		this.parsefunc = parsefunc;
		xmlhttp.onreadystatechange = handleHttpState;
		
		xmlhttp.send(postparam);
		
	}else{
		xmlhttp.open("GET", url , true);
		
		this.parsefunc = parsefunc;
		xmlhttp.onreadystatechange = handleHttpState;
		
		xmlhttp.send(null);
	}
	
}
 
function getXMLHttpObject()
{

	try 
	{ 
	// Firefox, Opera 8.0+, Safari
	xmlhttp = new XMLHttpRequest(); 
	} 
	catch (error) 
	{ 
    try 
	  { 
	  // Internet Explorer
	  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
	  } 
	  catch (error) 
	  { 
	    try 
	    { 
	    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
	    } 
	    catch (error) 
	    { 
	    return false; 
	    } 
	  } 
	}
}

function handleHttpState()
{
	if (xmlhttp.readyState == 4)
	{ 
	
	try 
	{ 
		if ( xmlhttp.status == 200) {
			// daten erfolgreich geladen: starte Verarbeitung
			parseData(parsefunc);
		} else {
			// fehler
			//alert("Fehler beim Abrufen der XML Daten");
			xmlhttp.abort();
		}
		
		/* Warteschlange abarbeiten */
		queueLength = queue.length;
		if(queueLength > 1 ) {
			queue.shift(); //Erstes Element entfernen, den Rest eine Position nach vorne rŸcken
			getXMLData(queue[0][0], queue[0][1], queue[0][2], queue[0][3]);
		}else{
			queue.shift();
		}
	}
	catch (error) 
	{ 
	   // Abfangen von (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status] im FireFox
	}
		
	}
}



function parseData(parsefunc)
{

	if(parsefunc == 'getLiveResult' || parsefunc == 'getICPN' ){
		
		//
		// LIVE SEARCH TOGGLE // AKQUI PRODUKT
		//
		
		var xmlDocument = xmlhttp.responseXML;
		var result = '';
		var resultcounter = 0;
		
		for(var i=0; i< xmlDocument.getElementsByTagName("Table").length; i++)
		{
			var base = xmlDocument.getElementsByTagName("Table")[i];
			var ParticipantID = base.getElementsByTagName("ParticipantID")[0].childNodes[0].nodeValue;
			var PartFullName = base.getElementsByTagName("PartFullName")[0].childNodes[0].nodeValue;
			var RoleDesc = base.getElementsByTagName("RoleDesc")[0].childNodes[0].nodeValue;
			var Title = base.getElementsByTagName("Title")[0].childNodes[0].nodeValue;
			var ICPN = base.getElementsByTagName("ICPN")[0].childNodes[0].nodeValue;
			
			
			
			if( parsefunc == 'getICPN') {
				var AkquiCat = base.getElementsByTagName("cat")[0].childNodes[0].nodeValue;
				//oBjArtists = new Array();
				//var oBjArtists=[ParticipantID,PartFullName,RoleDesc];
				//var aCount=$('artistCount').value;
				var oBjArtists = '';
				
				var func="javascript: editAkqui('"+ICPN+"','addProduct','"+oBjArtists+"','"+AkquiCat+"'); void(0);";
	
				result += '<span><a href="'+func+'">'+PartFullName+' - '+Title+' <\/a><\/span>'+RoleDesc+'<br class="clearfloat"/>';
			}
			else if (parsefunc == 'getLiveResult'){
				result += (RoleDesc!='Produkt')?'<span><a href="'+abs_path+ParticipantID+'">'+PartFullName+'<\/a><\/span> '+RoleDesc+'<br /><div class="stopfloat"><\/div>':'';
				result += (RoleDesc=='Produkt')?'<span><a href="'+abs_path+'produkt/'+ICPN+'">'+Title+' ('+PartFullName+')<\/a><\/span> '+RoleDesc+'<br /><div class="stopfloat"><\/div>':'';
			}
			resultcounter++; if(resultcounter==10) break;

		}
		
		if(parsefunc == 'getLiveResult'){
			document.getElementById("liveresult").innerHTML = result;
			if(xmlDocument.getElementsByTagName("Table").length>0) document.getElementById("liveresult").className = "an";
		}
		else if(parsefunc == 'getICPN'){
			document.getElementById("artistresults").innerHTML = result;
			if(xmlDocument.getElementsByTagName("Table").length>0) document.getElementById("artistresultblock").className = "an";
		}
	
	
	} else if(parsefunc == 'getArtistID' || parsefunc == 'getPreferencesArtistID'){
		
		//
		// FARMER EINGABEHILFE // LIEBLINGSKUENSTLER 
		//
		
		var xmlDocument = xmlhttp.responseXML;
		var result = '';
		var resultcounter = 0;
		
		for(var i=0; i< xmlDocument.getElementsByTagName("Table").length; i++)
		{
			var base = xmlDocument.getElementsByTagName("Table")[i];
			var ParticipantID = base.getElementsByTagName("ParticipantID")[0].childNodes[0].nodeValue;
			//var PartName = base.getElementsByTagName("PartName")[0].childNodes[0].nodeValue;
			var PartFullName = base.getElementsByTagName("PartFullName")[0].childNodes[0].nodeValue;
			var RoleDesc = base.getElementsByTagName("RoleDesc")[0].childNodes[0].nodeValue;
			
			
			if( parsefunc == 'getPreferencesArtistID') {
						oBjArtists = new Array();
						var oBjArtists=[ParticipantID,PartFullName,RoleDesc];
				
						var uID=$("userId").value;
						var aCount=$('artistCount').value;
						
						

			var func=(aCount==10)? "javascript: alert('Maximal 10 Artists erlaubt');" : "javascript: editPreference("+uID+",'addArtist','','"+oBjArtists+"'); void(0);";
			
			result += (RoleDesc!='Produkt')?'<span><a href="'+func+'">'+PartFullName+'<\/a><\/span>'+RoleDesc+'<br class="clearfloat"/>':'';
			}
			else if (parsefunc == 'getArtistID' ){
			result += (RoleDesc!='Produkt') ? '<span><a href="javascript: document.getElementById(\'ArtistID\').value='+ParticipantID+'; document.getElementById(\'ArtistName\').value=\''+PartFullName+'\'; void(0);">'+PartFullName+'<\/a><br /><\/div>':'';		
			}
			resultcounter++; if(resultcounter==20) break;

		}
		if( parsefunc == 'getPreferencesArtistID') {
			document.getElementById("artistresults").innerHTML = result;
			if(xmlDocument.getElementsByTagName("Table").length>0) document.getElementById("artistresultblock").className = "an";
		}
		else if (parsefunc == 'getArtistID')
		{	
			document.getElementById("liveresult").innerHTML = result;
			if(xmlDocument.getElementsByTagName("Table").length>0) document.getElementById("liveresult").style.display = "block";
		}	

	
	}else if(parsefunc == 'rateContent'){
	
		//
		// CONTENT RATING
		//
		
		var xmlDocument = xmlhttp.responseXML;
		var bewertungen = xmlDocument.getElementsByTagName("bewertungen")[0].childNodes[0].nodeValue;
		var stars = xmlDocument.getElementsByTagName("stars")[0].childNodes[0].nodeValue;
		var result = '<div id="ratemess">Inhalt bewertet!</div>';
		for(i=1; i<=5; i++){
			result += '<img src="'+abs_path+'img_style/icon_ratingstar_empty.gif" alt="" width="21" height="21" id="star__'+i+'" />';
		}
		result += '<br />';
		result += bewertungen+' Bewertungen<br />';
		document.getElementById("rateblock").innerHTML = result;
		var hinweis = 'Vielen Dank f&uuml;r Ihre Mitwirkung!<br />';
		document.getElementById("ratenote").innerHTML = hinweis;
		
		rateEMI.drawStars(stars, true);
		
	}else if(parsefunc == 'getNewReleases' || parsefunc == 'getPopularVideos' || parsefunc == 'getArtistVideos' || parsefunc == 'getArtistProducts'){
		
		//
		// GET CONTENT STUFF
		//
		
		// COMMON HEADER
		
		var xmlDocument = xmlhttp.responseXML;
		var offset = xmlDocument.getElementsByTagName("offset")[0].childNodes[0].nodeValue;
		var blocksize = xmlDocument.getElementsByTagName("blocksize")[0].childNodes[0].nodeValue;
		var pageblock = xmlDocument.getElementsByTagName("pageblock")[0].childNodes[0].nodeValue;
		var itemanzahl = xmlDocument.getElementsByTagName("itemanzahl")[0].childNodes[0].nodeValue;
		var elementId = xmlDocument.getElementsByTagName("elementId")[0].childNodes[0].nodeValue;
		var funcname = xmlDocument.getElementsByTagName("funcname")[0].childNodes[0].nodeValue;
		var result= '';
		for(var i=0; i< xmlDocument.getElementsByTagName("item").length; i++)
		{
		
		
			if(parsefunc == 'getNewReleases' || parsefunc == 'getArtistProducts'){
			
				//
				// NEW RELEASES
				//
				
				var base = xmlDocument.getElementsByTagName("item")[i];
			
				var myProductDetail = base.getElementsByTagName("myProductDetail")[0].childNodes[0].nodeValue;
				var myCoverLink = base.getElementsByTagName("myCoverLink")[0].childNodes[0].nodeValue;
				var myCoverWidth = base.getElementsByTagName("myCoverWidth")[0].childNodes[0].nodeValue;
				var myCoverHeight = base.getElementsByTagName("myCoverHeight")[0].childNodes[0].nodeValue;
				var myCoverValign = base.getElementsByTagName("myCoverValign")[0].childNodes[0].nodeValue;
				var myArtist = base.getElementsByTagName("myArtist")[0].childNodes[0].nodeValue;
				var myProduct = base.getElementsByTagName("myProduct")[0].childNodes[0].nodeValue;
				var myProductTypeCat = base.getElementsByTagName("myProductTypeCat")[0].childNodes[0].nodeValue;
				var myProductType = base.getElementsByTagName("myProductType")[0].childNodes[0].nodeValue;
				var myReleaseDate = base.getElementsByTagName("myReleaseDate")[0].childNodes[0].nodeValue;
				var myBuyLink = base.getElementsByTagName("myBuyLink")[0].childNodes[0].nodeValue;
				var myComposer = base.getElementsByTagName("myComposer")[0].childNodes[0].nodeValue;
				if(myComposer!='' && myComposer!='none') { myComposer = '('+myComposer+')<br />'; } else { myComposer = ''; }
				//myArtist = Url.decode(myArtist); myArtist = myArtist.replace(/_/g, " ");
				//myProduct = Url.decode(myProduct); myProduct = myProduct.replace(/_/g, " ");
							
				result += '<div class="productabstract">';
				if(myCoverLink!='none') result += '<div class="bild umflusslinks" style="width: 100px; height: 100px;"><a href="'+myProductDetail+'"><img src="'+myCoverLink+'" alt="" border="" width="'+myCoverWidth+'" height="'+myCoverHeight+'" style="position: relative; top: '+myCoverValign+'px;" /><\/a><\/div>';
				result += '<h5 class="artist">'+myArtist+'<\/h5>';
				result += '<h4><a href="'+myProductDetail+'">'+myProduct+'<\/a><\/h4>';
				result += '<div class="textblock">'+myComposer+myProductTypeCat+' / '+myProductType+'<br />V&Ouml;: '+myReleaseDate+'<br /><a href="'+myBuyLink+'" title="Musik Kaufen" class="musikkaufen"><span>Musik Kaufen<\/span><\/a><\/div>';
				result += '<div class="stopfloat"><\/div>';
				result += '<\/div> <!-- ende abstract -->';
			
			}else if(parsefunc == 'getPopularVideos' || parsefunc == 'getArtistVideos'){
				
				//
				// POPULAR VIDEOS // ARTIST VIDEOS
				//
				
				var base = xmlDocument.getElementsByTagName("item")[i];
			
				var myArtist = base.getElementsByTagName("myArtist")[0].childNodes[0].nodeValue;
				var myTitle = base.getElementsByTagName("myTitle")[0].childNodes[0].nodeValue;
				var myPreviewLink = base.getElementsByTagName("myPreviewLink")[0].childNodes[0].nodeValue;
				var myPreviewWidth = base.getElementsByTagName("myPreviewWidth")[0].childNodes[0].nodeValue;
				var myPreviewHeight = base.getElementsByTagName("myPreviewHeight")[0].childNodes[0].nodeValue;
				var myPreviewValign = base.getElementsByTagName("myPreviewValign")[0].childNodes[0].nodeValue;
				var myReleaseDate = base.getElementsByTagName("myReleaseDate")[0].childNodes[0].nodeValue;
				var myVideoDetail = base.getElementsByTagName("myVideoDetail")[0].childNodes[0].nodeValue;
				var myProductDetail = base.getElementsByTagName("myProductDetail")[0].childNodes[0].nodeValue;
				var myBuyLink = base.getElementsByTagName("myBuyLink")[0].childNodes[0].nodeValue;
				var myICPN = base.getElementsByTagName("myICPN")[0].childNodes[0].nodeValue;
				
				var myRank = Number(offset)+i+1;
				myRank = myRank<10?('0'+myRank):myRank;
	
				//myArtist = Url.decode(myArtist); myArtist = myArtist.replace(/_/g, " ");
				//myProduct = Url.decode(myProduct); myProduct = myProduct.replace(/_/g, " ");
			
				result += '<div class="productabstract">';
				result += (parsefunc == 'getPopularVideos')?'<div class="rank umflusslinks">'+myRank+'<\/div>':'';
				result += '<div class="bild umflusslinks" style="width: 100px; height: 80px;"><a href="'+myVideoDetail+'"><img src="'+myPreviewLink+'" alt="" border="" width="'+myPreviewWidth+'" height="'+myPreviewHeight+'" style="position: relative; top: '+myPreviewValign+'px;" /><\/a><\/div>';
				result += '<h5 class="artist">'+myArtist+'<\/h5>';
				result += '<h4><a href="'+myVideoDetail+'">'+myTitle+'<\/a><\/h4>';
				result += '<div class="textblock">Video / '+myReleaseDate;
				result += (myBuyLink!='none')?'<br /><a href="'+myBuyLink+'" title="Musik Kaufen" class="musikkaufen"><span>Musik Kaufen<\/span><\/a>':'';
				result += '<\/div>';
				result += '<div class="stopfloat"><\/div>';
				result += '<\/div> <!-- ende productabstract -->';
			
			}
					
				
		} // End for
		
		// COMMON FOOTER
		
		var loadIdName = "load"+elementId;
		document.getElementById(loadIdName).style.visibility = "hidden";
		
		var elementIdName = "produkte"+elementId;
		document.getElementById(elementIdName).innerHTML = result;
		document.getElementById(elementIdName).style.visibility = "visible";
		
		var seitenanzahl = Math.ceil(itemanzahl / blocksize);
		
		if(seitenanzahl>1) { paginator(funcname,elementId,offset,blocksize,itemanzahl,pageblock); }
		
		var hashIDName = "c"+elementId;					
		//window.location.hash = hashIDName;


	}else if(parsefunc == 'postComment'){
		//
		// POST COMMENT
		//
		var xmlDocument = xmlhttp.responseXML;
		var Feedback = xmlDocument.getElementsByTagName("Feedback")[0].childNodes[0].nodeValue;
		var Success = xmlDocument.getElementsByTagName("Success")[0].childNodes[0].nodeValue;
		document.getElementById('feedback').innerHTML = '<span>'+Feedback+'<\/span>';
		document.getElementById('feedback').style.display = "block";
		if(Success=='yes') {
			document.getElementById('postComment').innerHTML = '<input type="button" name="eintragen" value="Eintragen" class="imgbtn disabled" \/>';
			document.getElementById('message').value = '';
			document.getElementById('feedback').className = 'feedback';
			getComments(0);
			window.location.hash = 'kommentare';
		}else{
			document.getElementById('feedback').className = 'alert';
			window.location.hash = 'feedback';
		}
	}else if(parsefunc == 'saveComment'){
		//
		// SAVE COMMENT
		//
		var xmlDocument = xmlhttp.responseXML;
		var Feedback = xmlDocument.getElementsByTagName("Feedback")[0].childNodes[0].nodeValue;
		var Success = xmlDocument.getElementsByTagName("Success")[0].childNodes[0].nodeValue;
		var Offset = xmlDocument.getElementsByTagName("Offset")[0].childNodes[0].nodeValue;
		document.getElementById('feedback').innerHTML = '<span>'+Feedback+'<\/span>';
		document.getElementById('feedback').style.display = "block";
		if(Success=='no') {
			document.getElementById('feedback').className = 'alert';
			window.location.hash = 'feedback';
		}else{
			var DivID = 'comment'+Success;
			var FormDivID = 'edit'+Success;
			var FormID = 'kommentaredit'+Success;
			var MessageID = 'message'+Success;
			
			document.getElementById(DivID).style.display = "none";
			document.getElementById(FormDivID).style.display = "none";
			
			document.getElementById(MessageID).value = '';
			document.getElementById('feedback').className = 'feedback';
			getComments(Offset);
		}
	}else if(parsefunc == 'deleteComment'){
		//
		// DELETE COMMENT
		//
		var xmlDocument = xmlhttp.responseXML;
		var Feedback = xmlDocument.getElementsByTagName("Feedback")[0].childNodes[0].nodeValue;
		var Success = xmlDocument.getElementsByTagName("Success")[0].childNodes[0].nodeValue;
		var Offset = xmlDocument.getElementsByTagName("Offset")[0].childNodes[0].nodeValue;
		document.getElementById('feedback').innerHTML = '<span>'+Feedback+'<\/span>';
		document.getElementById('feedback').style.display = "block";
		if(Success=='yes') {
			document.getElementById('feedback').className = 'feedback';
			getComments(Offset);
			window.location.hash = 'kommentare';
		}else{
			document.getElementById('feedback').className = 'alert';
			window.location.hash = 'feedback';
		}
	}else if(parsefunc == 'editComment'){
		//
		// EDIT COMMENT
		//
		var xmlDocument = xmlhttp.responseXML;
		var Feedback = xmlDocument.getElementsByTagName("Feedback")[0].childNodes[0].nodeValue;
		var Success = xmlDocument.getElementsByTagName("Success")[0].childNodes[0].nodeValue;
		var Offset = xmlDocument.getElementsByTagName("Offset")[0].childNodes[0].nodeValue;
		if(Success=='no') {
			document.getElementById('feedback').innerHTML = '<span>'+Feedback+'<\/span>';
			document.getElementById('feedback').style.display = "block";
			document.getElementById('feedback').className = 'alert';
			window.location.hash = 'feedback';
		}else{
			var DivID = 'comment'+Success;
			var FormDivID = 'edit'+Success;
			var FormID = 'kommentaredit'+Success;
			var MessageID = 'message'+Success;
			
			document.getElementById(DivID).style.display = "none";
			var result= '';
			result += '<form id="'+FormID+'" name="'+FormID+'" action="" method="post">';
			result += '<textarea name="'+MessageID+'" id="'+MessageID+'" rows="12" cols="59" class="ganz klein">'+Feedback+'</textarea><br />';
			result += '<input type="button" name="speichern" value="Speichern" class="imgbtn linksfluss" title="&Auml;nderung speichern" onClick="saveComment('+Success+','+Offset+');" />';
			result += '<input type="button" name="abbrechen" value="Abbrechen" class="imgbtn" title="Abbrechen" onClick="document.getElementById(\''+FormDivID+'\').style.display = \'none\'; document.getElementById(\''+DivID+'\').style.display = \'block\';" />';
			result += '<div class="stopfloat"><\/div>';
			result += '</form>';
			document.getElementById(FormDivID).innerHTML = result;
			document.getElementById(FormDivID).style.display = "block";
		}
	}else if(parsefunc == 'getComments'){
		//
		// GET COMMENTS
		//
		var xmlDocument = xmlhttp.responseXML;
		var offset = xmlDocument.getElementsByTagName("Offset")[0].childNodes[0].nodeValue;
		var blocksize = xmlDocument.getElementsByTagName("Blocksize")[0].childNodes[0].nodeValue;
		var itemanzahl = xmlDocument.getElementsByTagName("Itemanzahl")[0].childNodes[0].nodeValue;
		var result= '';
		for(var i=0; i< xmlDocument.getElementsByTagName("Comment").length; i++)
		{
		
		var base = xmlDocument.getElementsByTagName("Comment")[i];
		var ComId = base.getElementsByTagName("ComId")[0].childNodes[0].nodeValue;
		var UserId = base.getElementsByTagName("UserId")[0].childNodes[0].nodeValue;
		var ContentId = base.getElementsByTagName("ContentId")[0].childNodes[0].nodeValue;
		var CommentText = base.getElementsByTagName("CommentText")[0].childNodes[0].nodeValue;
		//CommentText = Url.decode(CommentText); CommentText = CommentText.replace(/_/g, " ");
		var Author = base.getElementsByTagName("Author")[0].childNodes[0].nodeValue;
		var AuthorRight = base.getElementsByTagName("AuthorRight")[0].childNodes[0].nodeValue;
		var EditLink = base.getElementsByTagName("EditLink")[0].childNodes[0].nodeValue;
		var Uhrzeit = base.getElementsByTagName("Time")[0].childNodes[0].nodeValue;
		var DateD = base.getElementsByTagName("DateD")[0].childNodes[0].nodeValue;
		var DateM = base.getElementsByTagName("DateM")[0].childNodes[0].nodeValue;
		var DateY = base.getElementsByTagName("DateY")[0].childNodes[0].nodeValue;
		var ClassAdd = (AuthorRight=='admin')?' admin':'';
		var EditAdd = (EditLink!='x')?EditLink:'';
		
		var DivID = 'comment'+ComId ;
		var FormDivID = 'edit'+ComId ;
		
		result += '<div class="comment">';
		result += '<div class="autor'+ClassAdd+'">';
		result += '<div class="datum"><span class="tag">'+DateD+'<\/span> <span class="monat">'+DateM+'<\/span> <span class="jahr">'+DateY+'<\/span><\/div>';
		result += '<p><b>'+Author+'</b> schreibt um '+Uhrzeit+':<br />'+EditAdd+'<\/p>';
		result += '<div class="stopfloat"><\/div>';
		result += '<\/div>';
		result += '<div id="'+DivID+'"><p>'+CommentText+'<\/p><\/div>';
		result += '<div id="'+FormDivID+'" style="display: none;"><\/div>';
		result += '<\/div>';
		
		} // End for
		
		document.getElementById('kommentare').innerHTML = result;
		document.getElementById('loadkommentare').style.visibility = "hidden";
		document.getElementById('kommentare').style.visibility = "visible";
		
		var seitenanzahl = Math.ceil(itemanzahl / blocksize);
		
		if(seitenanzahl>1) { 
			paginator('getComments','kommentare',offset,blocksize,itemanzahl,7); 
		}else{
			document.getElementById('pagerkommentare').style.display = "none";
		}
		
		if(offset>0) window.location.hash = 'kommentare';
		
	}
}

/* 	***************************************************************************
	PREFERENCES FUNCTIONS
	*************************************************************************** */
var preferencesAjaxUrl='vip_preferences_ajax.php';

function toggleSearchPreference(){
	document.getElementById("artistresultblock").className = "aus";
	getXMLData(abs_path+'toggleIDsearch', 'getPreferencesArtistID', 'POST','suchbegriff='+Url.encode(document.getElementById("artistsearch").value)+'');
}

//function to rebuild  block via AJAX after DELETE or NEW Artist
function rebuildBlockArtist(uId) {
		var opt='rebuildBlock';
		xmlhttp = getxmlhttp ();
		xmlhttp.open("GET", this.preferencesAjaxUrl+'?opt='+opt+'&uId='+uId+'&c='+Math.random()); // random gegen IE6 cache problem
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {				
				 if(xmlhttp.responseText!=""){
					var response=xmlhttp.responseText;
					//show new sort position
					$('artistWrapper').innerHTML=response;
				}				
			}
		}
		xmlhttp.send(null);

}

/*
*  @variable int uID=User ID
*  @variable string p = case options 
*  @variable int artistId = artist ID = Participant Id
*  @variable string opt = used for various (delete and activate) 
*	 - delete: deletedCount, count of all artists in list (form number)
*	 - activate: form number
*/
function editPreference(uId,p,artistId,opt) {
	//xmlhttp = getXMLHttpObject ();
	xmlhttp = getxmlhttp();
	switch (p) {
		case 'city':
		
			var insertCity=document.getElementById('lieblingsstadt').value;
			//var selectCity=document.getElementById('stadtauswahlhilfe').value;
			//var c=(selectCity!='') ? selectCity : insertCity;
			
			var c= Url.encode(insertCity);	
			//var c= insertCity;	
			var vars='city='+c;
			var fav='MEINE LIEBLINGSSTADT';
		break;
		case 'genre' :
			var select=document.getElementById('lieblingsgenre');
			var genreId=select.value;
			var genreDesc=select.options[select.selectedIndex] .text;
			var vars='genreId='+genreId+'&genreD='+genreDesc;
			var fav='MEIN LIEBLINGSGENRE';
		break;
		case 'addArtist':
				
				var artistInfo=opt.split(',')
				var partId=artistInfo[0];
				var PartFullName=Url.encode(artistInfo[1]);
				var RoleDesc=artistInfo[2];
				var StatusFlag=1;
			
				var vars='partId='+partId+'&PartFullName='+PartFullName+'&RoleDesc='+RoleDesc+'&statusFlag='+StatusFlag;
			//var vars='partId=1&partName=Lafee&PartFullName=LafeeSuperStar&RoleDesc=Artist&statusFlag=1';
				var count=$('artistCount').value;
		break;
		case 'deleteArtist':
			var count=$('artistCount').value;
			var vars='partId='+artistId+'&deletedCount='+opt;

		break;
		case 'activateArtist':
			var flag=($('artistActivatedFlag_'+opt).value==1) ? 0:1;
			var flagImg=(flag==1) ? '../img_style/extranet/icon_extra_activated.gif' : '../img_style/extranet/icon_extra_deactivated.gif'  ;
			var vars='partId='+artistId+'&statusFlag='+flag;
			
		break;
		
		case 'presse':
			var vars='gList=';
			objForm = document.forms["presseaboform"];
			for(i=0;i<objForm.elements.length;i++){
				if(objForm.elements[i].type == "checkbox" && objForm.elements[i].checked == true){
					vars=vars+objForm.elements[i].value+',';
				}
 			}	
 			vars=vars+'0';
		break;

	}


	xmlhttp.open("GET", this.preferencesAjaxUrl+'?opt='+p+'&'+vars+'&uId='+uId+'&c='+Math.random()); // random gegen IE6 cache problem
	xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {				
				 //if(xmlhttp.responseText!=""){
				response=xmlhttp.responseText;

				if(p=='genre' || p=='city' ) {	
										
					//$('headline'+p).innerHTML='<h3>'+fav+' - '+response+'</h3>'
					$('headline'+p).innerHTML=response!=''?response:'keine';
				
				}
				else if(p=='presse' ) {	
										
					document.getElementById("presse_feedback").className = "an";
					document.getElementById("presse_feedback").innerHTML=response;
				
				}
				else {	
					if(p=='addArtist') {
						if(response!='max_limit' && response!='artist_in_list') {
						count++;
						$('artistitem_'+count).innerHTML=response;
						$('artistCount').value=count;
						document.getElementById("artistresultblock").className = "aus";
						document.getElementById("artistresults").innerHTML='';
						}
						else if (response=='artist_in_list'){
							alert('Dieser Lieblingskuenstler ist bereits gespeichert!')
						}
					}
					else if (p=='deleteArtist') {
						//count=;
						$('artistCount').value=count-1;
						rebuildBlockArtist(uId);
						if($("artistresultblock").className == "an") {
						$("artistresultblock").className = "aus";
						$("artistresults").innerHTML='';
						}
					
					}
					else if (p=='activateArtist') {
					$('artistFlagImg_'+opt).src=flagImg;
					$('artistActivatedFlag_'+opt).value=flag;

					}
				}
				//}				
			}
		}
		xmlhttp.send(null);
}

/* 	***************************************************************************
	END PREFERENCES FUNCTIONS
	*************************************************************************** */
	
/* 	***************************************************************************
	AKQUI FUNCTIONS
	*************************************************************************** */
var akquiAjaxUrl='vip_akqui_ajax.php';

function toggleSearchProduct(cat){
	cat = (cat=='1')?'1':'0';
	document.getElementById("artistresultblock").className = "aus";
	if(document.getElementById("artistsearch").value.length>12) getXMLData(abs_path+'toggleICPNsearch', 'getICPN', 'POST','suchbegriff='+Url.encode(document.getElementById("artistsearch").value)+'&cat='+cat+'');
}

//function to rebuild  block via AJAX after DELETE or NEW Artist
function rebuildBlockProduct(ICPN,cat) {
		cat = (cat=='1')?'1':'0';
		var opt='rebuildBlock';
		xmlhttp = getxmlhttp ();
		xmlhttp.open("GET", this.akquiAjaxUrl+'?akqui_cat='+cat+'&opt='+opt+'&ICPN='+ICPN+'&c='+Math.random()); // random gegen IE6 cache problem
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {				
				 if(xmlhttp.responseText!=""){
					var response=xmlhttp.responseText;
					//show new sort position
					$('artistWrapper').innerHTML=response;
				}				
			}
		}
		xmlhttp.send(null);

}


//function to rebuild  block via AJAX after DELETE or NEW Artist
function sortProduct(AkquiId,mysort,cat) {
		var opt='sortProduct';
		xmlhttp = getxmlhttp ();
		xmlhttp.open("GET", this.akquiAjaxUrl+'?AkquiId='+AkquiId+'&opt='+opt+'&mysort='+mysort+'&akqui_cat='+cat+'&c='+Math.random()); // random gegen IE6 cache problem
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {				
				 if(xmlhttp.responseText!=""){
					var response=xmlhttp.responseText;
					//show new sort position
					$('artistWrapper').innerHTML=response;
				}				
			}
		}
		xmlhttp.send(null);

}


/*
*  @variable int ICPN = ICPN des Produkts
*  @variable string p = case options 
*  @variable string opt = used for various (delete and activate) 
*/
function editAkqui(ICPN,p,opt,cat) {
	//xmlhttp = getXMLHttpObject ();
	cat = (cat=='1')?'1':'0';
	xmlhttp = getxmlhttp();
	switch (p) {
		case 'addProduct':
			var vars='statusFlag=1';
			var count=$('productCount').value;
		break;
		case 'deleteProduct':
			var count=$('productCount').value;
			var vars='deletedCount='+opt;

		break;
		case 'activateProduct':
			var flag=($('productActivatedFlag_'+ICPN).value==1) ? 0:1;
			var flagImg=(flag==1) ? '../img_style/extranet/icon_extra_activated.gif' : '../img_style/extranet/icon_extra_deactivated.gif'  ;
			var vars='statusFlag='+flag;
			
		break;
	}


	xmlhttp.open("GET", this.akquiAjaxUrl+'?akqui_cat='+cat+'&opt='+p+'&'+vars+'&ICPN='+ICPN+'&c='+Math.random()); // random gegen IE6 cache problem
	xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {				
				 //if(xmlhttp.responseText!=""){
				response=xmlhttp.responseText;

					if(p=='addProduct') {
					
						if(response!='product_unknown' && response!='product_in_list') {
						//alert(response);
						//count++;
						//$('artistitem_'+count).innerHTML=response;
						//$('artistCount').value=count;
						rebuildBlockProduct(ICPN,cat);
							if($("artistresultblock").className == "an") {
								$("artistresultblock").className = "aus";
								$("artistresults").innerHTML='';
							}
						}
						else if (response=='product_in_list'){
							alert('Dieses Produkt ist bereits gespeichert!');
						}
						else if (response=='product_unknown'){
							alert('Diese ICPN ist unbekannt!');
						}
						clearInput();
					}
					else if (p=='deleteProduct') {
						//count=;
						//$('artistCount').value=count-1;
						rebuildBlockProduct(ICPN,cat);
						if($("artistresultblock").className == "an") {
							$("artistresultblock").className = "aus";
							$("artistresults").innerHTML='';
						}
					
					}
					else if (p=='activateProduct') {
						//
						//alert(response);
						
						var responseArray=response.split(',')
						var myicpn=responseArray[0];
						var myflag=responseArray[1];
						$('productFlagImg_'+myicpn).src=flagImg;
						$('productActivatedFlag_'+myicpn).value=myflag;
					}
				
				//}				
			}
		}
		xmlhttp.send(null);
}

/* 	***************************************************************************
	END AKQUI FUNCTIONS
	*************************************************************************** */

/* 	***************************************************************************
	VIDEO PLAYLIST FUNCTIONS
	*************************************************************************** */
	
//Function to create an XMLHttp Object.
function getXMLHttpNewObject (){
		//Create a boolean variable to check for a valid microsoft active X instance.
		var xmlhttp = false;
		
		//Check if we are using internet explorer.
		try {
			//If the javascript version is greater than 5.
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			//If not, then use the older active x object.
			try {
				//If we are using internet explorer.
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				//Else we must be using a non-internet explorer browser.
				xmlhttp = false;
			}
		}
		
		//If we are using a non-internet explorer browser, create a javascript instance of the object.
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
			xmlhttp = new XMLHttpRequest();
		}
		
		return xmlhttp;
}

var t = null;
function toggleSearchVideo(player,timing){
	if(t) { document.clearTimeout(t); }
	document.t = setTimeout("searchVideo('"+player+"')", timing);
}

function searchVideo(player){
	var serverPage='admin_videoplaylist_ajax.php';
	var sendparams = "";
	var suchbegriff = Url.encode(document.getElementById("artistsearch").value);
		
	if(suchbegriff.length>0){
		sendparams = 'func=getVideos&suchbegriff='+suchbegriff+'';
	}else{
		document.getElementById("artistresultblock").className = "aus";
	}
	
	if(sendparams!=''){
		xmlhttp = getXMLHttpNewObject();
		xmlhttp.open("POST", serverPage, true); // random gegen IE6 cache problem
		xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {				
				if(xmlhttp.responseText!=""){
					if(xmlhttp.responseText=="error"){
						alert("An error occurred!");
					}else{
						var newcontent = document.getElementById("artistresults");
						newcontent.innerHTML = xmlhttp.responseText;
						document.getElementById("artistresultblock").className = "an";
					}
				}else{
					document.getElementById("artistresultblock").className = "aus";
				}
				//alert(xmlhttp.responseText);
			}
		}
		
		xmlhttp.send(sendparams+'&player='+player+'&c='+Math.random());
	}
	
}

function editPlaylist(player,ID,action,option){
	var serverPage='admin_videoplaylist_ajax.php';
	document.getElementById("artistresultblock").className = "aus";
	var sendparams = "";
	
	if(action=='add'){
		sendparams = 'func=addVideo&assetid='+ID+'&bemerkung='+option+'';
	}
	else if(action=='delete'){
		sendparams = 'func=deleteVideo&itemid='+ID+'';
	}
	else if(action=='sort'){
		sendparams = 'func=sortVideo&itemid='+ID+'&order='+option+'';
	}
	else if(action=='activate'){
		sendparams = 'func=activateVideo&itemid='+ID+'';
	}
	
	if(sendparams!=''){
		xmlhttp = getXMLHttpNewObject();
		xmlhttp.open("POST", serverPage, true); // random gegen IE6 cache problem
		xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {				
				if(xmlhttp.responseText!=""){
					if(xmlhttp.responseText=="error"){
						alert("An error occurred!");
					}else{
						var newcontent = document.getElementById("artistWrapper");
						newcontent.innerHTML = xmlhttp.responseText;
						var note = document.getElementById("savenote");
						note.style.display = "block";
					}
				}	
				//alert(xmlhttp.responseText);
			}
		}
		
		xmlhttp.send(sendparams+'&player='+player+'&c='+Math.random());
	}
	
}
	
	
/* 	***************************************************************************
	END PLAYLIST FUNCTIONS
	*************************************************************************** */


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

//
// PAGINATOR
//

function paginator(funcname,elementId,myoffset,myblocksize,itemanzahl,pageblock) {
	//var elementId = elementId;
	//var funcname = funcname;
	var pagerId = "pager"+elementId;
	var blocksize = Number(myblocksize);
	var offset = Number(myoffset);
	var this_page = (offset / blocksize) + 1;
	var item_anzahl = Number(itemanzahl);
	var seiten_anzahl = Math.ceil(item_anzahl / blocksize);
	var page_block = Number(pageblock);
	
	//var debug = 'elementId: '+elementId+'\n funcname: '+funcname+'\n pagerId: '+pagerId+'\n blocksize: '+blocksize+'\n offset: '+offset+'\n this_page: '+this_page+'\n item_anzahl: '+item_anzahl+'\n seiten_anzahl: '+seiten_anzahl+'\n page_block: '+page_block+'\n';
	//alert(debug);
						
	var anfang = 0;
	var prev = ((this_page-1) * blocksize)-blocksize;
						
	var next = ((this_page-1) * blocksize)+blocksize;
	var end = ((seiten_anzahl-1) * blocksize);
						
						
	var myPager= '';
	myPager += '<div class="paginator">';
					
	// Anfang Link
	myPager += this_page<2?'<span class="start">&laquo;&laquo;<\/span>':'';
	myPager += this_page>1?'<a href="javascript:'+funcname+'('+anfang+');" class="prev" title="Zum Anfang">&laquo;&laquo;<\/a>':'';
	// Prev Link
	myPager += this_page<2?'<span class="start">&laquo;VORHERIGE<\/span>':'';
	myPager += this_page>1?'<a href="javascript:'+funcname+'('+prev+');" class="prev">&laquo;VORHERIGE<\/a>':'';
						
	var show_pages = seiten_anzahl;
	if(show_pages > page_block) { show_pages = page_block; }
					
	var page_block_start = this_page - (Math.ceil(page_block/2) - 1);
			
	if(page_block_start < 1) { page_block_start = 1; }
							
							
	if (page_block_start + (show_pages - 1) > seiten_anzahl) { page_block_start = seiten_anzahl - (show_pages - 1); }
						
	myPager += page_block_start > 1?'<span class="break">...<\/span>':'';
	

	
	for(var x = page_block_start; x < (page_block_start + show_pages); x++) {
		var myNum = (x - 1) * blocksize;
		myPager += this_page==x?'<span class="thispage">'+x+'<\/span>':'';
		myPager += this_page!=x?'<a href="javascript:'+funcname+'('+myNum+');">'+x+'<\/a>':'';
	}
						
	myPager += page_block_start + (show_pages - 1) < seiten_anzahl?'<span class="break">...<\/span>':'';
			
	// Next Link
	myPager += this_page==seiten_anzahl?'<span class="end">N&Auml;CHSTE&raquo;<\/span>':'';
	myPager += this_page<seiten_anzahl?'<a href="javascript:'+funcname+'('+next+');" class="next">N&Auml;CHSTE&raquo;<\/a>':'';
	// Ende Link
	myPager += this_page==seiten_anzahl?'<span class="end">&raquo;&raquo;<\/span>':'';
	myPager += this_page<seiten_anzahl?'<a href="javascript:'+funcname+'('+end+');" class="next" title="Zum Ende">&raquo;&raquo;<\/a>':'';
						
	myPager += '<\/div">';
	myPager += '<div class="results">('+item_anzahl+' Eintr&auml;ge)<\/div>';
					
	document.getElementById(pagerId).innerHTML = myPager;
	document.getElementById(pagerId).className = 'pages';	
	document.getElementById(pagerId).style.display = "block";				
}
					
/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/**
*
*  URL encode / decode
*  http://www.webtoolkit.info/
*
**/

var Url = {

	// public method for url encoding
	encode : function (string) {
		return escape(this._utf8_encode(string));
	},

	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},

	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n < string.length; n++) {

			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}

		}

		return utftext;
	},

	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}

		}

		return string;
	}

}
