var flashCount = 0;
var flashColor = 0;
var flashActiv = false;
var obj2Note = false;

function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function

function noteObject(objectNumber) {
	
	if (document.getElementById('noteCheckbox_'+objectNumber)) {
		if(document.getElementById('noteCheckbox_'+objectNumber).type == 'checkbox') {
			
		  if (document.getElementsByName("noteCounter").length > 1) // more than one counter on page
		  {
		  	for(i=0;i<document.getElementsByName("noteCounter").length;i++)
		  	{
		  		document.getElementsByName("noteCounter")[i].src = "/xmlProcessing/noticelist.php?objnr="+objectNumber+"&option="+((document.getElementById('noteCheckbox_'+objectNumber).checked) ? "add" : "delete")+"&i="+Math.round(Math.random() * 100000);
		  	}
		  }
		  else if (document.getElementsByName("noteCounter").length == 1)
		  {
				if (document.getElementById('noteCheckbox_'+objectNumber).checked) {
				  document.noteCounter.src = "/xmlProcessing/noticelist.php?objnr="+objectNumber+"&option="+((objectNumber != '') ? 'add' : '')+"&i="+Math.round(Math.random() * 100000);
			  } else {
				  document.noteCounter.src = "/xmlProcessing/noticelist.php?objnr="+objectNumber+"&option="+((objectNumber != '') ? 'delete' : '')+"&i="+Math.round(Math.random() * 100000);
				}
		  }
	  } else {
	    var imageSrc = document.getElementById('noteCheckbox_'+objectNumber).src;
			if (imageSrc.indexOf('noteunset') > 1) {
				if (document.noteCounter)
			  	document.noteCounter.src = "/xmlProcessing/noticelist.php?objnr="+objectNumber+"&option="+((objectNumber != '') ? 'add' : '')+"&i="+Math.round(Math.random() * 100000);
		    document.getElementById('noteCheckbox_'+objectNumber).src = '/images/noteset.gif';
		  } else {
		  	if (document.noteCounter)
			  	document.noteCounter.src = "/xmlProcessing/noticelist.php?objnr="+objectNumber+"&option="+((objectNumber != '') ? 'delete' : '')+"&i="+Math.round(Math.random() * 100000);
			  document.getElementById('noteCheckbox_'+objectNumber).src = '/images/noteunset.gif';
			}	  
	  }
	}
	

	// refresh noticeList, if exists
	if (document.getElementById && document.getElementById("noticeList")) {
		if (document.getElementById("noticeList").style.visibility == 'visible')
			showNotes();
	}
	else if (document.all && document.all.noticeList)
	{
		if (document.all.noticeList.style.visibility == 'visible')
			showNotes();
	}		
	
}

/*
function noteObject2(objectNumber, handleMethod, showMethod, refreshLocation)
{	
	// second version because of direkt note without marker
	if (document.getElementById('noticeOverview') || document.getElementById('noticeOverviewNew'))
	{		
		if (objectNumber.length > 0) obj2Note = objectNumber;
		else obj2Note = false;
		
		// get current notice id
		var notice_id = 0;
		if (parseInt(document.cookie.search(/notice_id=.+/)) >= 0)
		{
			  notice_id = document.cookie.substring(document.cookie.search(/notice_id=.+/)) + ';';
		    notice_id = parseInt(notice_id.substring(10, notice_id.search(/;/)));
		}
		
		//if (notice_id > 0)
		{
			// get notice list
			
			// initialize http request
			if (window.ActiveXObject) 
			{
				xmlDoc = new ActiveXObject("Microsoft.XMLHTTP"); // Mircosoft
				xmlDoc.onreadystatechange = processOverview ;
			}
			else 
			{
				xmlDoc = new XMLHttpRequest(); // Others
				xmlDoc.onload = processOverview ;
			}
			
			// with random number because of caching
			//var requestXML = "/xmlRequest/xmlRequest2.php?method=notice&xml=&xsl=notice.xsl&output=html&note=" + notice_id + "&" + Math.round(Math.random()*100000);
			if (typeof showMethod == 'undefined') showMethod = 'xml';
			if (typeof handleMethod != 'undefined') requestMethod = handleMethod;
			else
			{
				requestMethod = 'add';			
				if (document.getElementById('object_' + objectNumber) && document.getElementById('object_' + objectNumber).checked == false)
				{ 
					requestMethod = 'delete';				
				}
			}
			var requestXML = "/xmlProcessing/noticelist.php?objnr="+objectNumber+"&type=" + showMethod +"&note=" + notice_id + "&option=" + requestMethod + "&i="+Math.round(Math.random() * 100000);
	
			// local request
			xmlDoc.open("GET", requestXML, true);
			xmlDoc.setRequestHeader( "Content-type", "text/html;charset=UTF-8" );
			xmlDoc.send( null );	
			if (typeof refreshLocation != 'undefinded' && refreshLocation == true) document.location.reload(true);
			
		}		
		
		
	}
	
}
*/
function noteObject_old(objectNumber, handleMethod, showMethod, refreshLocation)
{	
	// second version because of direkt note without marker
	//if (document.getElementById('noticeOverview') || document.getElementById('noticeOverviewNew'))
	{		
		var requestMethod = '';
		if (objectNumber.length > 0) obj2Note = objectNumber;
		else obj2Note = false;
		
		// get current notice id
		var notice_id = 0;
		if (parseInt(document.cookie.search(/notice_id=.+/)) >= 0)
		{
			notice_id = document.cookie.substring(document.cookie.search(/notice_id=.+/)) + ';';
		    notice_id = parseInt(notice_id.substring(10, notice_id.search(/;/)));
		}
		
		// with random number because of caching
		//var requestXML = "/xmlRequest/xmlRequest2.php?method=notice&xml=&xsl=notice.xsl&output=html&note=" + notice_id + "&" + Math.round(Math.random()*100000);
		if (typeof showMethod == 'undefined') showMethod = 'xml';
		if (typeof handleMethod != 'undefined') requestMethod = handleMethod;
		else
		{
			requestMethod = 'add';			
			if (document.getElementById('object_' + objectNumber) && document.getElementById('object_' + objectNumber).checked == false)
			{ 
				requestMethod = 'delete';				
			}
		}
		var requestXML = "/xmlProcessing/noticelist.php?objnr=" + objectNumber + "&type=" + showMethod +"&note=" + notice_id + "&option=" + ((objectNumber != '') ? requestMethod : '' )+ "&i="+Math.round(Math.random() * 100000);		
		var htmlhead = document.getElementsByTagName("head")[0];
		var script_id = "noticeList";

		if(document.getElementById(script_id)) {
			htmlhead.removeChild(document.getElementById(script_id));
		}

		var updatescript = document.createElement("script");
		updatescript.id = script_id;
		updatescript.src = requestXML;
		htmlhead.appendChild(updatescript);		
		if (typeof refreshLocation != 'undefinded' && refreshLocation == true) document.location.reload(true);
	}
}

function noteObject2(objectNumber, handleMethod, showMethod, refreshLocation)
{				
	var requestMethod = '';
	if (objectNumber.length > 0) obj2Note = objectNumber;
	else obj2Note = false;
	
	// get current notice id
	var notice_id = 0;
	if (parseInt(document.cookie.search(/notice_id=.+/)) >= 0)
	{
		notice_id = document.cookie.substring(document.cookie.search(/notice_id=.+/)) + ';';
	    notice_id = parseInt(notice_id.substring(10, notice_id.search(/;/)));
	}
	
	if (typeof showMethod == 'undefined') showMethod = 'xml';
	if (typeof handleMethod != 'undefined') requestMethod = handleMethod;
	else
	{
		requestMethod = 'add';			
		if (document.getElementById('object_' + objectNumber) && document.getElementById('object_' + objectNumber).checked == false)
		{ 
			requestMethod = 'delete';				
		}
	}
	var requestXML = "/xmlProcessing/noticelist3.php?objnr=" + objectNumber + "&type=" + showMethod +"&note=" + notice_id + "&option=" + ((objectNumber != '') ? requestMethod : '' )+ "&i="+Math.round(Math.random() * 100000);			
	var htmlhead = document.getElementsByTagName("head")[0];
	var script_id = "noticeList";

	if(document.getElementById(script_id)) {
		htmlhead.removeChild(document.getElementById(script_id));
	}

	var updatescript = document.createElement("script");
	updatescript.id = script_id;
	updatescript.src = requestXML;
	htmlhead.appendChild(updatescript);		
	//if (typeof refreshLocation != 'undefinded' && refreshLocation == true) document.location.reload(true);	
}

function processOverview()
{
	// modifiy contents of "hidden" div tag
	if (xmlDoc.readyState == 4) {
		if (document.getElementById("noticeOverview"))
		{
			document.getElementById("noticeOverview").innerHTML = xmlDoc.responseText;
			document.getElementById("noticeOverview").style.visibility = 'visible';
			document.getElementById("noticeOverview").style.display = 'block';
	  }
		if (document.getElementById("noticeOverviewNew"))
		{
			document.getElementById("noticeOverviewNew").innerHTML = xmlDoc.responseText;
			document.getElementById("noticeOverviewNew").style.visibility = 'visible';
			document.getElementById("noticeOverviewNew").style.display = 'block';
	  }	  
		if (obj2Note)
			flashActiv = window.setInterval("flash()", 300);
	}
}

function flash()
{
	if (document.getElementById("noticeOverview"))
	{
		if (flashColor == 1)
	  {
			document.getElementById("noticeOverview").style.backgroundColor = '#FFFF00';
			flashColor = 0;
		}
		else
		{
			document.getElementById("noticeOverview").style.backgroundColor = '#FFFFFF';
			flashColor = 1;
		}
		flashCount = flashCount + 1;
	 
	
		if (flashCount >= 6)
		{
			window.clearInterval(flashActiv);
			document.getElementById("noticeOverview").style.backgroundColor = '#FFFFFF';
			flashCount = 0;
		}
	
	}
	
	if (document.getElementById("noticeOverviewNew"))
	{
		if (flashColor == 1)
	    {
			document.getElementById("noticeOverviewNew").style.backgroundColor = '#FFFF00';
			flashColor = 0;
		}
		else
		{
			document.getElementById("noticeOverviewNew").style.backgroundColor = '#FFFFFF';
			flashColor = 1;
		}
		flashCount = flashCount + 1;
	 
	
		if (flashCount >= 6)
		{
			window.clearInterval(flashActiv);
			document.getElementById("noticeOverviewNew").style.backgroundColor = '#FFFFFF';
			flashCount = 0;
		}
	
	}	
	
}

function deleteObjects() {
	if (allCheckboxes = document.getElementsByName('noteCheckbox[]').length) {
		objectNumbers = new Array();
		for(i=0; i < allCheckboxes; i++) {
			objectNumber = document.getElementsByName('noteCheckbox[]')[i].id.replace('noteCheckbox_', '');
			objectNumbers.push(objectNumber);
			if (document.getElementsByName('noteCheckbox[]')[i].checked) {
			  document.getElementsByName('noteCheckbox[]')[i].checked = false;
			}
    }
    document.noteCounter.src = "/xmlProcessing/noticelist.php?objnr="+objectNumbers.join(',')+"&option=delete&i="+Math.round(Math.random() * 100000);
    
    if(document.noteCounter.complete) location.reload();
  }	
}

var notePossible = navigator.cookieEnabled;

function requestObject(objectNumber) {
	if (document.forms['multiRequest']) {
		if (document.forms['multiRequest'].elements['multiple']) {
			var allMultiple = new Array();
			currentObjects = document.forms['multiRequest'].elements['multiple'].value.split(',').join(' ');
			pos = currentObjects.indexOf(objectNumber);
			if (pos > -1) {
				currentObjects = currentObjects.replace(objectNumber, '');
		  } else {
		  	currentObjects = (currentObjects == '') ? (currentObjects + objectNumber) : (currentObjects + ' ' + objectNumber);
		  }
			currentObjects = trim(currentObjects); 
			allMultiple = currentObjects.split(' ');
			allMultiple.sort();
			document.forms['multiRequest'].elements['multiple'].value = allMultiple.join(','); 
			document.forms['multiRequest'].elements['multiCount'].value = (currentObjects.length) ? String(allMultiple.length) : '0';
	  }
  }
}

function markAll(mark) {
	if (allCheckboxes = document.getElementsByName('requestCheckbox[]').length) {
		for(i=0; i < allCheckboxes; i++) {
			objectNumber = document.getElementsByName('requestCheckbox[]')[i].id.replace('requestCheckbox_', '');
			
			if (mark != document.getElementsByName('requestCheckbox[]')[i].checked) {
				requestObject(objectNumber);
	 	  }
	 	  
		  document.getElementsByName('requestCheckbox[]')[i].checked = mark;
		}
  } else alert("In Ihrer Merkliste befinden sich keine Objekte.\n\nSie m�zun㢨st im Katalog oder in den unterschiedlichen Suchen Objekte in Ihre Merkliste einf�die Sie dann hier anfragen k�n.");
}

function requestCheck() {
	var check = true;
	var errors = new Array();
		
	if (document.forms['multiRequest']) {
		if (document.forms['multiRequest'].elements['multiCount'].value < 1) 
		  errors.push("Keine Objekte ausgew㧬t");
		if (document.forms['multiRequest'].elements['name'].value.length < 1) 
		  errors.push("Bitte geben Sie Ihren Namen an");
		if (document.forms['multiRequest'].elements['phone'].value.length < 1 &&
		    document.forms['multiRequest'].elements['fax'].value.length < 1 &&
		    document.forms['multiRequest'].elements['mail'].value.length < 1) 
		  errors.push("Bitte geben Sie zumindest eine Kontaktm�chkeit (Telefon, Fax oder E-Mail) an");
		if ((errors.length == 0) && (document.forms['multiRequest'].elements['phone'].value.length < 1 &&
		    document.forms['multiRequest'].elements['fax'].value.length < 1)) {
		  if (!confirm("Bitte bedenken Sie, das nicht alle Vermieter die M�chkeit haben nur an eine E-Mail zu antworten.\n Eventuell geben Sie noch zus㳺lich eine andere Kontaktm�chkeit an.\n\n Trotzdem senden?"))
		    check = false;
		}
  }
  
  if (errors.length > 0) {
  	alert('Es sind folgende Fehler aufgetreten:\n' + '- ' + errors.join('\n- '));
  	check = false;
  }  
	
	return check;
}

function OpenAdvise(url) {
		AdviceWindow = window.open(url, "Advice", "width=500,height=280,scrollbars=yes");
	 	AdviceWindow.focus();
 }
 
function addObjectOld(objectNumber, smooveIn) 
{		
	var opacityValue = 0;
	if (document.getElementById('multiple')) 
	{		
		var allMultiple = new Array();
		currentObjects = document.getElementById('multiple').value.split(',').join(' ');
		alert(currentObjects);
		pos = currentObjects.indexOf(objectNumber);
		if (pos > -1) {
			currentObjects = currentObjects.replace(objectNumber, '');			
			if (smooveIn === true) opacity('image_' + objectNumber, 100, 0 , 1000);
	  } else {
	  	currentObjects = (currentObjects == '') ? (currentObjects + objectNumber) : (currentObjects + ' ' + objectNumber);
	  	opacityValue = (smooveIn === false) ? 100 : 0;
	  	document.getElementById('requestImages').innerHTML += '<img style="opacity: ' + opacityValue + '; margin: 2px;" src="' + ((languageCode == 'de') ? 'http://images.tourist-online.de' : '') + '/files/photos/small/' + objectNumber + '_00.jpg" alt="' + objectNumber + '" title="' + Translations[languageCode]['remove'] + ' ' + objectNumber + '" id="image_' + objectNumber + '" onClick="removeObject(' + objectNumber + ')">';
	  	if (smooveIn === true) opacity('image_' + objectNumber, 1, 100 , 1000);
	  }
		currentObjects = trim(currentObjects); 
		allMultiple = currentObjects.split(' ');
		allMultiple.sort();
		document.getElementById('multiple').value = allMultiple.join(','); 
		document.getElementById('multipleCount').innerHTML = (currentObjects.length) ? String(allMultiple.length) : '0';
   }   
}


function addObject(objectNumber, smooveIn)
{
	// add given objectNumber to multiple area/field
	var opacityValue = (!smooveIn) ? 100 : 0;
	if (document.getElementById('multiple')) // if field exists
	{		
		currentObjects = document.getElementById('multiple').value.replace(/^,/, '').split(',');
		if (currentObjects.join(' ').indexOf(objectNumber) < 0)
		{
			currentObjects.push(objectNumber); // add objectNumber to currentObjects array
			// add image tag
	  	document.getElementById('requestImages').innerHTML += '<img style="opacity: ' + opacityValue + '; margin: 2px;" src="' + ((languageCode == 'de') ? 'http://images.tourist-online.de' : '') + '/files/photos/small/' + objectNumber + '_00.jpg" alt="' + objectNumber + '" title="' + Translations[languageCode]['remove'] + ' ' + objectNumber + '" id="image_' + objectNumber + '" onClick="removeObject(\'' + objectNumber + '\')">';
	  	if (smooveIn) opacity('image_' + objectNumber, 1, 100, 500);			
		}
		document.getElementById('multiple').value = currentObjects.sort().join(',').replace(/^,/, '').replace(/,$/, '');
		document.getElementById('multipleCount').innerHTML = (document.getElementById('multiple').value) ? String(document.getElementById('multiple').value.split(',').length) : '0';
		
	}	
}

function delObject(objectNumber, smooveIn)
{
	// add given objectNumber to multiple area/field
	if (document.getElementById('multiple')) // if field exists
	{		
		currentObjects = document.getElementById('multiple').value.replace(/^,/, '').split(',');
		if (currentObjects.join(' ').indexOf(objectNumber) >= 0)
		{
			currentObjects = currentObjects.join(' ').replace(objectNumber, '').replace('  ', ' ').replace(/^ /, '').replace(/ $/, '').split(' ');
			// remove image tag
			if (smooveIn) {
				opacity('image_' + objectNumber, 100, 0, 500);
			}
			else // if smove not needed delete image tag directly
			{
				document.getElementById('requestImages').innerHTML = document.getElementById('requestImages').innerHTML.replace(eval('/<img([^<]*)id="?' + 'image_' + objectNumber + '"?([^>]*)>/gi'), '');    	
			}
		}
		document.getElementById('multiple').value = currentObjects.sort().join(',').replace(/^,/, '').replace(/,$/, '');
		document.getElementById('multipleCount').innerHTML = (document.getElementById('multiple').value) ? String(document.getElementById('multiple').value.split(',').length) : '0';
	}	
}


function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }        
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
    if (opacity == 0) // opacity zero reached, also delete image tag
    {    	
    	document.getElementById('requestImages').innerHTML = document.getElementById('requestImages').innerHTML.replace(eval('/<img([^<]*)id="?' + id + '"?([^>]*)>/gi'), '');    	
    }
} 

function addImages()
{	
	if (document.getElementById('requestImages'))
	{
		var objects = availableObjects.replace("'",'').split(',');	
		var o = 0;
		for (o = 0; o < objects.length - 1; o++)
		{		
			document.getElementById('request_' + objects[o]).checked = true;
			addObject(objects[o], false);
		}
	}
}

function removeObject(objectNumber)
{
	document.getElementById('request_' + objectNumber).checked = false;
	//addObject(objectNumber, true);
	delObject(objectNumber, true);
}

function advise()
{
	OpenAdvise('/adviseFriend.php?objnr=' + document.getElementById('multiple').value.split(',').join('|'));
}


function deleteAll() {	
	var notice_id = 0;
	if (parseInt(document.cookie.search(/notice_id=.+/)) >= 0)
	{
		notice_id = document.cookie.substring(document.cookie.search(/notice_id=.+/)) + ';';
	    notice_id = parseInt(notice_id.substring(10, notice_id.search(/;/)));
	}
	var requestXML = "/xmlProcessing/noticelist3.php?option=deleteAll&type=refresh&note=" + notice_id + "&i="+Math.round(Math.random() * 100000);			
	var htmlhead = document.getElementsByTagName("head")[0];
	var script_id = "noticeList";

	if(document.getElementById(script_id)) {
		htmlhead.removeChild(document.getElementById(script_id));
	}

	var updatescript = document.createElement("script");
	updatescript.id = script_id;
	updatescript.src = requestXML;
	htmlhead.appendChild(updatescript);	
}