

(function(){
  
  var eventMatchers = {
    'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,
    'MouseEvents': /^(?:click|mouse(?:down|up|over|move|out))$/
  }
  var defaultOptions = {
    pointerX: 0,
    pointerY: 0,
    button: 0,
    ctrlKey: false,
    altKey: false,
    shiftKey: false,
    metaKey: false,
    bubbles: true,
    cancelable: true
  }
  
  Event.simulate = function(element, eventName) {
    var options = Object.extend(defaultOptions, arguments[2] || { });
    var oEvent, eventType = null;
    
    element = $(element);
    
    for (var name in eventMatchers) {
      if (eventMatchers[name].test(eventName)) { eventType = name; break; }
    }
 
    if (!eventType)
      throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported');
 
    if (document.createEvent) {
      oEvent = document.createEvent(eventType);
      if (eventType == 'HTMLEvents') {
        oEvent.initEvent(eventName, options.bubbles, options.cancelable);
      }
      else {
        oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView,
          options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY,
          options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element);
      }
      element.dispatchEvent(oEvent);
    }
    else {
      options.clientX = options.pointerX;
      options.clientY = options.pointerY;
      oEvent = Object.extend(document.createEventObject(), options);
      element.fireEvent('on' + eventName, oEvent);
    }
    return element;
  }
  
  Element.addMethods({ simulate: Event.simulate });
})()



function clearInput(id, defaultText) {
	if ($(id)) {
		Event.observe(id, 'focus', function(event){
			if (this.value == defaultText) {
				this.value = "";
			}
		});
	}
}

document.observe("dom:loaded", function() {
 	
	clearInput('nl_mail', "Deine E-Mailadresse");
	clearInput('comment_comment', "Deine Bewertung ...");
	clearInput('lady_name_search', "Suche nach Name");
	
	if ($('shortLogin')) {
		clearInput('login', "Benutzername");
		clearInput('password', "Passwort");
		$('shortLogin').onclick = function(){
			$('text_logger').hide();
			$('logger').show();
			return false;
		}
	}
});

document.observe("dom:loaded", function() {
	$$('a[rel=extern]').each(function(e){
  		e.onclick = function(){
        	window.open(this.href);
			return false;   
        }   
	});
}); 

document.observe("dom:loaded", function() {
	if ($('smilies')) {
		$$('#smilies img').each(function(img){
			img.onclick = function() {
				insert_smiley(this.alt);
			}
		});
	}
}); 

var slideBox;
document.observe("dom:loaded", function() {	
	if($('slideBox')) {
		 slideBox = new mpSlideBox("slideBox", {
            itemsClass:    "item",
            startPos:      "0",
            useItemsSizes: true,
            spacer:        0,
            direction:     "right-left"
        });
		
	}	
}); 




function insert_bb(type, text) {
	textarea = $('text_field');
	def = ""
	if (textarea.selectionStart < textarea.selectionEnd) {
		def = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd)		
	}
	
	input = window.prompt(text, def)
	if(input != "" && input != null) {
		insert_text("["+type+"]"+input+"[/"+type+"]")
	}
} 

var insert_url = function() {
	textarea = $('text_field');
	def = ""
	if (textarea.selectionStart < textarea.selectionEnd) {
		def = textarea.value.substring(textarea.selectionStart, textarea.selectionEnd)		
	}
	input1 = window.prompt("Gib einen Linknamen ein (optional)",def)
	input2 = window.prompt("Gib eine URL ein","")
	
	if(input1 != "" && input1 != null && input2 != "" && input2 != null) {
		if(input2 != "" && input2 != null && input2.indexOf("http://") == -1) {
			input2 = "http://" +input2
		}
		str = "[URL="+input2+"]"+input1+"[/URL]"
		insert_text(str)
		return	
	}else {
		if(input2 != "" && input2 != null && input2.indexOf("http://") == -1) {
			input2 = "http://" +input2
		}
		str = "[URL]"+input2+"[/URL]"
		if (input2 != "" && input2 != null) {
			insert_text(str)
		}
	}
}

var insert_smiley = function(str) {
	insert_text(" :" + str + ": ");	
}


var insert_text = function (strText) {
	objElem = $('text_field');
 	
 	if(document.selection){
 		objElem.focus();
 		document.selection.createRange().text=strText;
 		document.selection.createRange().select();
 	}
 	else if (objElem.selectionStart || objElem.selectionStart == '0') {
 		intStart = objElem.selectionStart;
 		intEnd = objElem.selectionEnd;
 		objElem.value = (objElem.value).substring(0, intStart) + strText + (objElem.value).substring(intEnd, objElem.value.length);
 		objElem.selectionStart=objElem.selectionEnd=intStart+strText.length;
 		objElem.focus();
 	}
 	else{
 		objElem.value += strText;
 	}
} 

/*
document.observe("dom:loaded", function() {
	if($('stadteil_map')) {
		
		// *	Stadtteile Preview Function
		 
		var map_districts = new Array("bremen", "bremen-nord", "oberneuland-horn-borgfeld", "walle", "schwachhausen-vahr", "groepelingen", "woltmershausen", "huchting", "city", "finndorf", "hemelingen-osterholz", "neustadt", "oberviehland", "bremer-umland");
		var images = new Array()
		var default_image = "bremen";
		var default_text = "Bremer Stadtplan";
		
		map_districts.each(function(district){
			images[district] = new Image();
			images[district].src = "/images/map/" + district + ".gif";
		});

		$$('map area').each(function(area){
	  		area.onmouseover = function(){
				document.images['stadtkarte'].src=images[this.alt].src
				$($$('#stadteil_map h4')[0]).update(this.title)
			}
			area.onmouseout = function(){
				var def = $('stadteil_map').className;
				document.images['stadtkarte'].src=images[def].src
				$($$('#stadteil_map h4')[0]).update(default_text)		
			}  
		});
		
		// * Wenn mouseover in den Stadtteilen, dann auch die Preview in der Karte aktivieren
		if($('stadtteil_overview')) {
			$$('#stadtteil_overview a.ladies').each(function(a){
				a.onmouseover = function () {
					$("map_"+a.name).simulate('mouseover');	
				}
				
				a.onmouseout = function () {
					var def = $('stadteil_map').className;
					document.images['stadtkarte'].src=images[def].src
					$($$('#stadteil_map h4')[0]).update(default_text)	
				}				
			});		
		}
	}
});
*/

var hideForm = function(id) {
	Effect.SwitchOff('form_failure');
	Effect.SwitchOff(id);
	/*
	 	$(id).hide();
		$('form_failure').hide();
	*/
	
}

var move_image = function (id, type) {
	new Ajax.Updater('images', '/sort-images', {
	  parameters: { "id": id, "type": type }
	});
} 

var hide_image = function (id) {
	new Ajax.Updater('images', '/hide-image', {
	  parameters: { "id": id}
	});
} 



Event.observe(window, 'load', function(){

		$$('#big_image a').each(function(a) {
			a.onclick=function() {
				return hs.expand(this, {slideshowGroup: 'sexy', align: 'center'})
			}	
		})
		
		
		$$('#slideBox .item .img a').each(function(a){
			a.onclick=function() {
				return hs.expand(this, {slideshowGroup: 'sexy', align: 'center'})
			}
		})

		hs.graphicsDir = '/images/highslide/';
		hs.transitions = ['expand', 'crossfade'];
		hs.outlineType = 'rounded-white';
		hs.fadeInOut = false;
		hs.dimmingOpacity = 0.90;
		
		hs.addSlideshow({
			slideshowGroup: 'sexy',
			interval: 3500,
			repeat: false,
			useControls: true,
			fixedControls: 'fit',
			overlayOptions: {
				opacity: .75,
				position: 'bottom center',
				hideOnMouseOut: true
			}
		});
	
});

Event.observe(window, 'load', function(){
	if($('holiday_opener')) {
		$('holiday_opener').simulate("click")
	}	        
})


Event.observe(window, 'load', function(){
	if($('lady_search')) {
		//alert('bau');
		new Ajax.Autocompleter(
			'lady_name_search',
			'lady_name_search_result',
			'/ladysearch', 
			{ 
				minChars: 2, 
				updateElement:function(li){
					url = li.getElementsBySelector('a')[0].href
					location.href = url
				} 
			} 
		);
	}	        
})


Event.observe(window, 'load', function(){
	if($('penchant_form')) {
		$$('#penchant_form .checkbox').each(function(a){
			a.onclick=function(){
				penchant_form_request();
				return false;
			}
		})		
		$('penchant_form').onchange = function () {
			penchant_form_request();
			return false;			
		} 	
	}	        
})



var penchant_form_request = function () {
	if ($('penchant_form').serialize() != "") {
		$('penchant_ladies').update("<img src='/images/preload.gif' id='preload'/>")
		window.setTimeout(function(){
			$('penchant_form').request({
				onFailure: function(){
				},
				onSuccess: function(t){
					$('penchant_ladies').update(t.responseText);
				}
			});
		}, 1200);
	}else {
		$('penchant_ladies').update('<h2 class="nobg center">passende Frauen</h2><p>  Leider wurden zu deiner Vorlieben Suche keine Frauen gefunden. Das hat erstmal nix zu bedeuten, nur war deine Serviceauswahl zu detalliert.  <br>  Gerade die speziellen Services sind sehr selten, vorallem in Kombination mit anderen speziellen.  <br>  Wenn du deine Suche ein bisschen veränderst,  solltest du schnell eine Auswahl an Frauen finden, die Dir zusagen.</p>')
	}	
}

Event.observe(window, 'load', function(){
	if($('platin_girls')) {
		$$('#platin_girls .girl').each(function(girl){
			girl.getElementsBySelector('a')[0].onmouseover=function(){
				girl.getElementsBySelector('span')[0].style.display = "block"
			}
			girl.getElementsBySelector('a')[0].onmouseout=function(){
				girl.getElementsBySelector('span')[0].style.display = "none"
			}
		})		
	}	        
});


var big_map = function() {
	var s = $('servicebox')
	var gm = $('googlemaps')
	var btn = $('big_maps_btn')
	var ll = null
	var depth = 1
	if (s.className == "big_box") {
		s.className = "big_box big_map"
		gm.style.width = "925px"
		gm.style.height = "450px"
		ll = new GLatLng(53.06659, 8.84468)
		depth = 12
		btn.innerHTML = "kleiner"	
	}
	else {
		s.className = "big_box"
		gm.style.width = "545px"
		gm.style.height = "325px"
		ll  = new GLatLng(53.066595164941, 8.84468078613281)
		depth = 11				
		btn.innerHTML = "größer"	
	}
	var map = new GMap2(gm);map.setCenter(ll, depth);map.addOverlay(myGroup);map.addControl(new GLargeMapControl());map.enableContinuousZoom();map.enableScrollWheelZoom();
}


function changeDate(date) {	
	if (date == "Invalid Date") {return false}	
	year = date.getFullYear();
	month = date.getMonth() + 1;
	day = date.getDate();
	if (month < 10) {month = "0" + month;}
	if (day < 10) {day = "0" + day;}
	$("lady[auto_delete_date]").value = year + '-' + month + '-' + day;
}

Event.observe(window, 'load', function(){
	if($("lady[auto_delete_date]")) {changeDate(new Date($F($("lady[auto_delete_date]"))))}	
});


edit_comment = function(id) {	
	$('edit'+id).hide()
	$('form'+id).style.display="block"
}


function resize(elem) {
  if (elem == undefined || elem == null) return false;
  max = 680;
  if (elem.width > elem.height) {
    if (elem.width > max) elem.width = max;
  } else {
    if (elem.height > max) elem.height = max;
  }
}

Event.observe(window, "load", function(){      
        $$('.post .content img').each(function(ele) {
                resize(ele);
        });
});


