/* DingRequests.js version 0.6
*
*  Alle Requests und Callback - Funktionen der Seite
*
*  history: 07.11.2007  v0.1  Initialstand fuer Versionierung CMS
	          11.01.2008	v0.2  Asynchronous false fuer IE6
	          23.01.2008	v0.3  Jira DING-310 eingebaut -> Aenderung und Test von DASDING
	          01.02.2008	v0.4  Aenderung von DING 310 optimiert
            19.11.2008  v0.5  Playlist entferne
            09.12.2008  v0.6  webert   SubmenuItemIframe hinzugefuegt (fuer seiten mit src-wechsel des iframe-contents)
*   
*  copyright 2006-2008, cyne GmbH
*/

// shoutbox timer needs global scope
var shoutboxTimer = null;

isIE6 = function () {
	var browserName = navigator.appName;
	var browserVersion = parseInt(navigator.appVersion);
	if (browserName == "Microsoft Internet Explorer" && browserVersion == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1) {
		return(true);
	} else {
		return(false);
	}
}

getRequest = function( url ) {
	new Ajax.Updater('contentcontainer', url, {
		method: 'GET',
		evalScripts: true,
		onComplete: initActiveItems
	});	
	dhtmlHistory.add( url, {request: 'getRequest'});
}

dingRequest = function( url ) {	
	window.scroll(0,0);
	/* WeberT: Aus DING-310 einfach uebernommen - test und aenderung durch dasding */
	comBase = 'http://www.dasding.de/#/com'; // community base url
	if (url.indexOf(comBase)!= -1) {
		communityRequest(url.substr(23,url.length));
		return;
	}
	if (isIE6()) {
		new Ajax.Updater('contentcontainer', url, {
			evalScripts: true,
			onComplete: initActiveItems,
			asynchronous: false
		});
	} else {
		new Ajax.Updater('contentcontainer', url, {
			evalScripts: true,
			onComplete: initActiveItems,
			asynchronous: true
		});
	}
	dhtmlHistory.add( url, {request: 'dingRequest'});
}

communityRequest = function( url ) {
	window.scroll(0,0);
	if (isIE6()) {
		new Ajax.Updater('contentcontainer', url, {
			evalScripts: true,
			onComplete: initActiveItems,
			asynchronous: false
		});	
	} else {
		new Ajax.Updater('contentcontainer', url, {
			evalScripts: true,
			onComplete: initActiveItems,
			asynchronous: true
		});	
	}
	dhtmlHistory.add( url, {request: 'communityRequest'});
}

modalRequest = function( url ) {
	if (isIE6()) {
		new Ajax.Updater('modal_container', url, {
			evalScripts: true,
			asynchronous: false			
		});
	} else {
		new Ajax.Updater('modal_container', url, {
			evalScripts: true,
			asynchronous: true			
		});
	}	
}

dingFormRequest = function( form ) {
	f = $(form);
	new Ajax.Updater('contentcontainer', f.action, {
		method: f.method,
		parameters: Form.serialize(f), 
		evalScripts: true,
		onComplete: initActiveItems
	});
	formUrl = f.action + "?" + Form.serialize(f);
	dhtmlHistory.add( formUrl, {request: 'getRequest'});
}

communityFormRequest = function( form ) {
	f = $(form);
	window.scroll(0,0);
	if (f.target.substring(0,7) == 'iframe_') {
		f.submit();

		/* WeberT: Aus DING-310 einfach uebernommen - test und aenderung durch dasding */

		/*
		Event.observe($(f.target), 'load', function() {
		// todo: copy content of iframe document into contentcontainer element
		fr = $(''+f.target);
		$('contentcontainer').update(fr.document.communitySite.innerHTML);
		return;
		
		new Ajax.Updater('contentcontainer', f.action, {
			evalScripts: true,
			onComplete: initActiveItems
			});
		});
		*/
		
		return;
	}
	new Ajax.Updater('contentcontainer', f.action, {
		method: f.method,
		parameters: Form.serialize(f),
		evalScripts: true,
		onComplete: initActiveItems
	});

	//formUrl = f.action + "?" + Form.serialize(f);
	//dhtmlHistory.add( formUrl, {request: 'communityRequest'});
}

modalFormRequest = function( form ) {
	f = $(form);
	new Ajax.Updater('modal_container', f.action, {
		method: f.method,
		parameters: Form.serialize(f), 
		evalScripts: true
	});
}


// global variable for getIdToSerialize function
var toSerializeCounter = 0;

// function to get a new id for serialize mediaitems
getIdToSerialize = function() {
	var newId = "serialize_" + toSerializeCounter;
	toSerializeCounter += 1;
	return newId;	
}

// Callback function for all requests
initActiveItems = function() {

	// accordion initialisieren
	var accordionArray = $$('.Accordion');
	if (accordionArray.length > 0) {
		for (i = 0; i < accordionArray.length; i++) {
			accordionId = accordionArray[i].readAttribute('id');
			var aAccordion = new accordion('#' + accordionId, {
				classNames : {
						toggle : 'AccordionPanel',
						toggleActive : 'AccordionPanelOpen',
						content : 'AccordionPanelContent' },
				defaultSize : {
						height : 200,
						width : 188 }
				});
			accordionArray[i].style.visibility = 'visible';
			
			aAccordion.activate($$('#' + accordionId + ' .AccordionPanel')[0]);								
		}
	}
	
	// submenu initialisieren
	var submenuArray = $$('.Submenu');
	if (submenuArray.length > 0) {
		for (m = 0; m < submenuArray.length; m++) {
			submenuId = submenuArray[m].readAttribute('id');
				var aSubmenu = new Cyne.Submenu( submenuId );
		}
	}
	
	// submenu iframe initialisieren
  var submenuArray = $$('.SubmenuIframe');
  if (submenuArray.length > 0) {
    for (m = 0; m < submenuArray.length; m++) {
       submenuId = submenuArray[m].readAttribute('id');
          var aSubmenu = new Cyne.Submenu( submenuId );
    }
  }
   
	// D'n'D Elemente um observer anreichern
	var dingPlayerElements = $$('.PlaylistItem');
	if (dingPlayerElements.length > 0) {
		for (j = 0; j < dingPlayerElements.length; j++) {
			Event.observe(dingPlayerElements[j], 'click', function(event) {
				playElement(Event.element(event));				
			});
			
      //entfernt wegen nicht mehr benoetigter Playlist			
			// id fuer serialize vergeben -> li bekommt die id
/*			var dummyId = dingPlayerElements[j].up('li').readAttribute('id');
			if (dummyId == null || dummyId == "") {
				dingPlayerElements[j].up('li').writeAttribute('id', getIdToSerialize());
			}*/
		}
	}

	// modal-galerien initialisieren
	var modalGaleries = $$('.ModalGallery');		
	if (modalGaleries.length > 0) {
		for (k = 0; k < modalGaleries.length; k++) {
	        new Control.Modal(modalGaleries[k],{ width: 800, height: 600, iframe: true });				
		}
	}

	// modal-galerien initialisieren; workaround fuer die olle community
	var modalGaleries = $$('.ModalGalery');		
	if (modalGaleries.length > 0) {
		for (k = 0; k < modalGaleries.length; k++) {
	        new Control.Modal(modalGaleries[k],{ width: 802, height: 602, iframe: true });				
		}
	}
	
	// modal-infoboxen initialisieren
  	var modalInfoBoxes = $$('.ModalInfobox');   
  	if (modalInfoBoxes.length > 0) {
    		for (k = 0; k < modalInfoBoxes.length; k++) {
          	new Control.Modal(modalInfoBoxes[k],{ width: 512, height: 406, iframe: true });        
    		}
  	}

	// kleine modal-infoboxen initialisieren
  	var modalInfoBoxesSmall = $$('.ModalInfoboxSmall');   
  	if (modalInfoBoxesSmall.length > 0) {
    		for (k = 0; k < modalInfoBoxesSmall.length; k++) {
          	new Control.Modal(modalInfoBoxesSmall[k],{ width: 400, height: 285, iframe: true });        
    		}
  	}

   // 19.11.2008 webert: Playliste auskommentiert, da aktuell nicht im Einsatz  
	// mediaListen initialisieren
/*	var mediaLists = $$('.dndMediaItem');
	if (mediaLists.length > 0) {
		var mediaListIds = new Array();

		for (l = 0; l < mediaLists.length; l++) {				
			mediaListId = mediaLists[l].readAttribute('id');
			mediaListIds.push(mediaListId);
			Sortable.create( mediaListId, { constraint: false, containment:['playlist', mediaListId], dropOnEmpty:false });			
		}

		// damit verschieben in playliste funktioniert muss sie selbst in der containment liste sein
		mediaListIds.push('playlist');

		Sortable.create('playlist', {constraint: false, containment: mediaListIds, dropOnEmpty:true, onUpdate:initPlaylist });
		
		Droppables.remove('playerdropzone');
		Droppables.add('playerdropzone', {containment: mediaListIds, hoverclass: 'DropHover', onDrop: function(element) { playElement(element.firstChild) }});
	}*/

	// modal-mailing initialisieren
	var modalMailings = $$('.Mailing');
	if (modalMailings.length > 0) {
		for (k = 0; k < modalMailings.length; k++) {
	        new Control.Modal(modalMailings[k],{ opacity: 0.5, width: 460 });				
		}
	}
}	

checkSearchInput = function () {
    
    if( document.search.words.value == 'SUCHE' ) {
        return false; 
    } else {
        dingFormRequest(document.search);
    }
}

