//
////
//
//
////function shiftFooter(galleryId, activeItem){
//
//	var imgs = document.getElementsByTagName('img');
//	var todo = imgs.length;
//	for (var i = 0; i < imgs.length; i++) {
//		var img = imgs[i];
//		img.onload = function() {
//			todo--;
//			if (todo == 0) {
//				shift(galleryId, activeItem);
//			}
//		};
//	}
//}
//
//function shift(galleryId, activeItem){
//	if(activeItem && activeItem.toLowerCase() != "none"){
//		var gallery = document.getElementById(galleryId);
//
//		if(gallery){
//			var activeItemElement = document.getElementById(activeItem);
//			var activeItemElementWidth = activeItemElement.width;
//			var screenWidth;
//
//			if(typeof(netbiscuits) != "undefined"){
//				screenWidth = netbiscuits.screen.getWidth();
//			}else{
//				screenWidth = window.width;
//			}
//
//			if(screenWidth && activeItemElementWidth){
//				var numberOfVisibleItems = screenWidth/activeItemElementWidth;
//				var middleOfVisibleItems = Math.round(numberOfVisibleItems/2);
//
//				var activeItemOffsetLeft = activeItemElement.offsetLeft;
//				var nonVisible = activeItemOffsetLeft - screenWidth;
//
//				if(nonVisible > 0){
//					var numberOfnonVisibleElements = nonVisible/activeItemElementWidth;
//					var numberToShift = middleOfVisibleItems + numberOfnonVisibleElements;
//
//					for(var i = 0; i < numberToShift;i++){
//						Netbiscuits.slider.shiftGallery(galleryId, "left");
//					}
//				}
//			}
//		}
//	}
//}

function insertParam(searchstring, key, value)
{
	key = escape(key);
	value = escape(value);

	var s = searchstring;
	var kvp = key+"="+value;

	var r = new RegExp("(&|\\?)"+key+"=[^\&]*");

	s = s.replace(r,"$1"+kvp);

	if(!RegExp.$1) {
		s += (s.length>0 ? '&' : '?') + kvp;
	};

	return s;
}



function waitForImages(){
	var imgs = document.getElementsByTagName('img');
	var todo = imgs.length;
	for (var i = 0; i < imgs.length; i++) {
		var img = imgs[i];
		img.onload = function() {
			todo--;
			if (todo == 0) {
				repositionOverlayIcons();
			}
		};
	}
}

function repositionOverlayIcons(){
	//alert("start: repositionOverlayIcons");

	var overlayIconWidth = 20;
	var overlayIconHeight = 20;
	var originalImageHeight = 180;
	var originalImageWidth = 320;
	var originalImageRatio = 1.78; //originalImageWidth / originalImageHeight
	var originalImageRatioInvers = 0.56; // originalImageHeight / originalImageWidth
	var xPaddingFromBorder = 2;
	var yPaddingFromBorder = 4;

	var imgs = document.getElementsByTagName("img");
	var classNameDiv;
	var classNameImg;
	var classNameP;
	var musterImageClass = new RegExp("(^|\\s)" + "playIconImageGallery" + "(\\s|$)");
	var musterOverlayClass = new RegExp("(^|\\s)" + "playIconOverlayGallery" + "(\\s|$)");
	var galleryImage;
	var i = 0;
	var galleryImages = new Array();
	var galleryImagesContainer = new Array();

	//search image for caculation of image width and height
	for(i=0;i < imgs.length;i++){
		//for image with classname
		classNameImg = imgs[i].className;

		//for image with image classname by parent
		classNameDiv = imgs[i].parentNode.className;

		//for images with image classname by parent of parent
		classNameP = imgs[i].parentNode.parentNode.className;

		if(classNameImg.match(musterImageClass)){
			galleryImages.push(imgs[i]);
			galleryImagesContainer.push(imgs[i].parentNode);
		}

		if(classNameDiv.match(musterImageClass)){
			galleryImages.push(imgs[i]);
			galleryImagesContainer.push(imgs[i].parentNode);
		}

		if(classNameP.match(musterImageClass)){
			galleryImages.push(imgs[i]);
			galleryImagesContainer.push(imgs[i].parentNode.parentNode);
		}
	}
	if(galleryImages.length>0){
		galleryImage = galleryImages[0];
	}else{
		//no images in galleries with play icon
		return;
	}

	//alert("device: "+device);
	var widthImageIC = galleryImage.width;
	var heightImageIC = galleryImage.height;
	//alert(widthImageIC);
	//alert("wh1: "+widthImageIC + " "+heightImageIC);
	//if the height or width is not yet determined
	if(widthImageIC <= 1 || heightImageIC <= 1 || heightImageIC > originalImageHeight || widthImageIC > originalImageWidth){
		//alert("not wh1");
		var realsrc = galleryImage.getAttribute("realsrc");
		var src = galleryImage.getAttribute("src");
		//alert(realsrc);
		if(realsrc != null && realsrc != ""){
			var matchResult = realsrc.match("height=[0-9]*");
			if(matchResult.length > 0){
				heightImageIC = parseInt(matchResult[0].substring(matchResult[0].indexOf("=")+1));
			}
		//alert(heightImageIC);
		}else if(heightImageIC <=1 && src != null && src != ""){
			matchResult = src.match("height=[0-9]*");
			heightImageIC = parseInt(matchResult[0].substring(matchResult[0].indexOf("=")+1));
		}

		if(realsrc != null && realsrc != ""){
			matchResult = realsrc.match("width=[0-9]*");
			if(matchResult.length > 0){
				widthImageIC = parseInt(matchResult[0].substring(matchResult[0].indexOf("=")+1));
			}
		//alert(widthImageIC)
		}else if(widthImageIC <=1 && src != null && src != ""){
			matchResult = src.match("width=[0-9]*");
			widthImageIC = parseInt(matchResult[0].substring(matchResult[0].indexOf("=")+1));
		}

	}

	//alert("widhtIC: " + widthImageIC + " heightIC: " + heightImageIC);

	var imageRatioIC = Math.round((widthImageIC/heightImageIC)*100)/100;
	//alert("imageRatio: " + imageRatioIC);
	//caculate the position of play overlay icon

	var xPositionOfOverlayIcon = 0;
	var yPositionOfOverlayIcon = 0;
	var xPositionOfOverlayIconFromCenter = 0;

	//simply case image was not changed
	if(imageRatioIC == originalImageRatio){
		xPositionOfOverlayIcon = widthImageIC - overlayIconWidth - xPaddingFromBorder;
		yPositionOfOverlayIcon = yPaddingFromBorder;
		xPositionOfOverlayIconFromCenter = (widthOfImageInIC - overlayIconWidth - xPaddingFromBorder)/2;
	}

	//case 1 - Image was wider - black bars left and right
	if(imageRatioIC > originalImageRatio){
		var widthOfImageInIC = heightImageIC * originalImageRatio;
		var widthOfFillColorInImage = widthImageIC - widthOfImageInIC;
		var widthOfOneBlock = widthOfFillColorInImage/2;
		xPositionOfOverlayIcon = widthOfImageInIC + widthOfOneBlock - overlayIconWidth - xPaddingFromBorder;
		yPositionOfOverlayIcon = yPaddingFromBorder;
		xPositionOfOverlayIconFromCenter = (widthOfImageInIC - overlayIconWidth - xPaddingFromBorder)/2;
	}

	//case 2 - Image has been higher - black bars top and bottom
	if(imageRatioIC < originalImageRatio){
		var heightOfImageInIC = widthImageIC * originalImageRatioInvers;
		var heightOfFillColorInImage = heightImageIC - heightOfImageInIC;
		var heightOfOneBlock = heightOfFillColorInImage/2;
		yPositionOfOverlayIcon = (heightOfOneBlock + yPaddingFromBorder)*-1;
		xPositionOfOverlayIcon = widthImageIC - overlayIconWidth - xPaddingFromBorder;
		xPositionOfOverlayIconFromCenter = (widthImageIC - overlayIconWidth - xPaddingFromBorder)/2;
	}
	yPositionOfOverlayIcon = Math.round(yPositionOfOverlayIcon);
	xPositionOfOverlayIcon = Math.round(xPositionOfOverlayIcon);
	xPositionOfOverlayIconFromCenter = Math.round(xPositionOfOverlayIconFromCenter);
	//alert("yPositionOfOverlayIcon "+ yPositionOfOverlayIcon+ " xPositionOfOverlayIcon "+ xPositionOfOverlayIcon + "xPositionOfOverlayIconFromCenter" + xPositionOfOverlayIconFromCenter );

	for(i =0; i < galleryImages.length;i++){
		var toAppendParent = galleryImages[i].parentNode;
		galleryImagesContainer[i].style.textAlign = "center";
		//alert(heightImageIC);
		galleryImagesContainer[i].style.height = Math.round((heightImageIC*1.12)) +"px";
		var overlayIcon = document.createElement("img");
		overlayIcon.setAttribute("src", "/pics/Play.png");
		overlayIcon.setAttribute("style", "position: relative; bottom: " +(overlayIconHeight + yPaddingFromBorder)+"px; left: "+(xPositionOfOverlayIconFromCenter)+"px;");
		toAppendParent.appendChild(overlayIcon);
	}

	//remove background image from text
	removeOverlayBackground(musterOverlayClass);
//alert("End");
}

function removeOverlayBackground(musterOverlayClass){
	var htmlTags = document.getElementsByTagName("*");
	for(var k=0; k < htmlTags.length;k++){
		var className = htmlTags[k].className;
		if(className != null && className.match(musterOverlayClass)){
			htmlTags[k].className = className.replace(musterOverlayClass, "");
		//			htmlTags[k].setAttribute("style", htmlTags[k].getAttribute("style")+" background: none !important;");
		}
	}
}
function cbs_setWidth() {
	var width = -1;
	if(typeof method != "undefined"){
		if (method == "inner width") {
			width = window.innerWidth;
			height = window.innerHeight;
		} else if (method == "outer width") {
			width = window.outerWidth;
			height = window.outerHeight;
		} else if (method == "avail width") {
			width = screen.availWidth;
			height = screen.availHeight;
		} else if (method == "body client width") {
			width = document.body.clientWidth;
			height = document.body.clientHeight;
		} else if (method == "document client width") {
			width = document.documentElement.clientWidth;
			height = document.documentElement.clientHeight;
		}
	}
	if (width == -1) {
		return;
	}
	var body = document.getElementsByTagName("BODY")[0];
	var bodyDiv = body.getElementsByTagName("DIV")[0];
	body.style.width = width+"px";
	bodyDiv.style.width = width+"px";
//alert("done ("+width+")");
}


window.addEventListener('load', function(event) {
	var nodes = document.querySelectorAll(".execOnValueChange");
	var submt = function(e) {
		var form = e.target.parentNode;
		while (form.nodeName.toLowerCase() != 'form') {
			form = form.parentNode;
		}
		form.submit();
	};
	for (var i = 0; i < nodes.length; i++) {
		(function(){
			var select = nodes[i].getElementsByTagName("select")[0];
			var submit = nodes[i].getElementsByTagName("input")[0];
			if (select && submit) {
				// register onchange listener
				if (nodes[i].className.indexOf('execOnValueChange') >= 0) {
					select.addEventListener('change', submt, false);
					// remove submit button
					var td = submit.parentNode;
					td.style.display = "none";
				}

			}
		})();
	}
	setTimeout(hideAddressBar, 1000);
}, false);

function hideAddressBar() {
	window.scrollTo(0, 1);
}

function toogleMenu() {

	var menuSite = document.getElementById("menuSite");
	var widgetHeaderMenu = document.getElementById("widgetHeaderMenu");
	var menuText = document.getElementById("menuText");
	var menuIconURLNode = menuText.parentNode.parentNode.lastChild.firstChild;
	
	var menu = document.getElementById("widgetHeaderMenu");
	var imgs = menu.getElementsByTagName("img");
	if(imgs){
		for(i=0;i < imgs.length;i++){
			var src = imgs[i].getAttribute("src");
			if(src && (src.indexOf("Arrow_Down") != -1 || src.indexOf("Arrow_Up"))){
				menuIconURLNode = imgs[i];
			}
		}
	}

	if(menuSite.offsetTop == 0){
		//lock rest of the page
		var overlay = document.createElement("div");
		overlay.setAttribute("id","overlayDark");
		overlay.setAttribute("class", "overlay");
		overlay.setAttribute("style", "height:"+document.getElementsByTagName("body")[0].offsetHeight+"px;");
		widgetHeaderMenu.appendChild(overlay);

		//change text and source path
		menuText.innerHTML = "Close ";
		if(menuIconURLNode){
			menuIconURLNode.setAttribute("src", menuIconURLNode.getAttribute("src").replace("Arrow_Down", "Arrow_Up"));
		}

		//display menu
		menuSite.style.display = "block";
	}
	else{
		menuSite.style.display = "none";

		//change text and source path of icon
		menuText.innerHTML = "Menu ";
		if(menuIconURLNode){
			menuIconURLNode.setAttribute("src", menuIconURLNode.getAttribute("src").replace("Arrow_Up", "Arrow_Down"));
		}

		//remove lock-overlay from page
		widgetHeaderMenu.removeChild(document.getElementById("overlayDark"));

	}
}

function showMoreTeaserItems(numberOfMoreItems, parentId) {
	showMoreItems(numberOfMoreItems, 'div', parentId)
}


function toggleShortLongTexts(groupId){
	tglClassAllElements(groupId, "div", "isVisible", "isNotVisible" );
	Netbiscuits.slider.repositionArrows();
}

function moreText(textLong, textShort, closeButton, moreButton){
	showBiscuit(textLong);
	hideBiscuit(textShort);
	
	showBiscuit(closeButton);
	hideBiscuit(moreButton);
}

function lessText(textLong, textShort, closeButton, moreButton){
	showBiscuit(textShort);
	hideBiscuit(textLong);
	
	showBiscuit(moreButton);
	hideBiscuit(closeButton);
}

function hideBiscuit(biscuitId){
	
	var biscuit = document.getElementById(biscuitId);
	if(biscuit){
		biscuit.className = biscuit.className.replace("isVisible", "isNotVisible" );
	}
	Netbiscuits.slider.repositionArrows();
}

function showBiscuit(biscuitId){
	var biscuit = document.getElementById(biscuitId);
	if(biscuit){
		biscuit.className = biscuit.className.replace("isNotVisible", "isVisible" );
	}
	Netbiscuits.slider.repositionArrows();
}

function selectSegment(selectedItem){
	var tglButton = document.getElementById("segmentControl2Items");
	var classValue = tglButton.getAttribute("class");
	var activeButton = 1;

	if(classValue.search("segmentControl2ndItemActive") > -1){
		activeButton = 2;
	}

	if(selectedItem == 1){
		if(activeButton == 1){
			//reset teaser view
			resetMore("div", "teaserFull", 10);
		}
		if (activeButton == 2){
			resetMore("div", "teaserFull", 10);
			//load featured full episodes and the full teaser
			tglClassAllElements(null, "div", "isVisible", "isNotVisible" );
			//set the left button active
			replaceClass(tglButton, "segmentControl2ndItemActive", "segmentControl1stItemActive");
		}
	}

	if(selectedItem == 2){
		if(activeButton == 2){
			resetMore("div", "teaserClips", 10);
		}
		if (activeButton == 1){
			resetMore("div", "teaserClips", 10);
			//load featured clips and clips teaser
			tglClassAllElements(null, "div", "isVisible", "isNotVisible" );
			//set the right button active
			replaceClass(tglButton, "segmentControl1stItemActive", "segmentControl2ndItemActive");
		}
	}
}

function tglClassAllElements(parentId, htmlElementName, className1, className2){
	var htmlElements;
	if(parentId!=null) {
		htmlElements = document.getElementById(parentId).getElementsByTagName(htmlElementName);
	} else {
		htmlElements = document.getElementsByTagName(htmlElementName);
	}

	for(var i = 0; i < htmlElements.length; i++){
		var classValue = new String(htmlElements[i].getAttribute("class"));

		if(classValue.search(className1) > -1){
			replaceClass(htmlElements[i], className1, className2);
		}else{
			replaceClass(htmlElements[i], className2, className1);
		}
	}
}

function replaceClass(element, oldClass, newClass){
	var classValue = new String(element.getAttribute("class"));
	element.setAttribute("class", classValue.replace(oldClass, newClass));
}

function resetMore(htmlTag, id, numberOfItems){
	Elements = document.getElementsByTagName(htmlTag);
	zaehler = 0;

	for(var i =0; i < Elements.length; i++){
		classValue = Elements[i].getAttribute("class");
		elementId = Elements[i].getAttribute("id");

		if (classValue != null){
			if (classValue.search("visibilityOnMore") == -1){
				if(id == elementId){
					if(zaehler > numberOfItems-1){
						Elements[i].setAttribute("class", classValue + "visibilityOnMore" )
					}
					zaehler++;
				}
			}
		}

	}
}

function scheduleDayLoad(toAddId, toLoadId, toLoadUrl){
	var idOfLoadedContent = "loadedContent";
	var errorText = "Error";
	var classCSSAttribut = "class";
	var activeCellCSSClassName = "activeCell";
	var toAddElementTag = "div";
	var getUrl = toLoadUrl+"?id="+toLoadId;
	var toAddElement = document.getElementById(toAddId);
	var loadedContent = document.getElementById(idOfLoadedContent);
	var activeCell = document.getElementById(toLoadId);
	var cells = document.getElementsByTagName(toAddElementTag);

	//GalleryBiscuit layout Mode 2 fix
	if(activeCell == null){
		toLoadId = toLoadId + "td";
		activeCell = document.getElementById(toLoadId);
		cells = document.getElementsByTagName("td");
	}

	//remove old Content
	if(loadedContent != null){
		toAddElement.removeChild(document.getElementById(idOfLoadedContent));
	}

	//reset activeCell
	for(i = 0; i < cells.length;i++){
		var styleText = cells[i].getAttribute(classCSSAttribut);
		if(styleText){
			if(styleText.search(" " + activeCellCSSClassName)!=-1){
				cells[i].setAttribute(classCSSAttribut, styleText.replace(" " + activeCellCSSClassName, ""));
			}
		}
	}

	//set activeCell
	activeCellStyle = activeCell.getAttribute(classCSSAttribut);
	if(!activeCellStyle){
		activeCell.setAttribute(classCSSAttribut, activeCellCSSClassName);
	}else{
		activeCell.setAttribute(classCSSAttribut, activeCellStyle + " " + activeCellCSSClassName);
	}

	//create Request
	try{
		req = new XMLHttpRequest();
	}catch(e){
		req=false;
	}

	if(req){
		req.open("GET", getUrl, true);
		req.onreadystatechange = function(){
			if (req.readyState == 4) {
				if(req.status!=200) {
					toAddElement.appendChild(document.createTextNode(errorText+" "+req.status + " "+ req.statusText));
				}else{
					// put new content in prepared div
					div = document.createElement(toAddElementTag);
					div.setAttribute("id", idOfLoadedContent);
					div.innerHTML = req.responseText;
					toAddElement.appendChild(div);

					// position menu arrows
					/*
					var myTop = document.getElementById("caruselNavi").offsetTop - 10;
					document.getElementById("caruselNavilarrow").style.top = myTop+"px";
					document.getElementById("caruselNavirarrow").style.top = myTop+"px";
					 */
					Netbiscuits.slider.repositionArrows();
				}
			}
		}
		req.send(null);
	}
}

function selectSegmentOnVideoLandingPage(selectedItem){
	//parameter for Netbiscuits.core.ajax.getRemoteBiscuitInt
	//BiscuitIDtoInsert, URL, BiscuitIDToLoad, content recursive, append
	//funktioniert nicht bisher...
	var tglButton = document.getElementById("segmentControl2Items");
	var classValue = tglButton.getAttribute("class");
	var activeButton = 1;

	if(classValue.search("segmentControl2ndItemActive") > -1){
		activeButton = 2;
	}

	if(selectedItem == 1){
		var p = location.pathname+(location.search!=''?'':'?')+location.search.replace("&videoType=clip", "");
		Netbiscuits.core.ajax.getRemoteBiscuitInt("ajaxVideoContent", p,"ajaxVideoContent",  '1', false);
		Netbiscuits.core.ajax.getRemoteBiscuitInt("ajaxContentWidget", p, "ajaxContentWidget", '1', false);
		if (activeButton == 2){
			replaceClass(tglButton, "segmentControl2ndItemActive", "segmentControl1stItemActive");
		}
	}

	if(selectedItem == 2){
		var p = location.pathname+(location.search!=''?'':'?')+location.search.replace("&videoType=clip", "")+"&videoType=clip";
		Netbiscuits.core.ajax.getRemoteBiscuitInt("ajaxContentClips", p, "ajaxContentClips", '1', false);
		Netbiscuits.core.ajax.getRemoteBiscuitInt("ajaxContentWidget", p, "ajaxContentWidget", '1', false);
		if (activeButton == 1){
			replaceClass(tglButton, "segmentControl1stItemActive", "segmentControl2ndItemActive");
		}
	}
}

/*
 * Clear Default Text: functions for clearing and replacing default text in
 * <input> elements.
 *
 * by Ross Shannon, http://www.yourhtmlsource.com/
 */

/*
 * Cross-browser event handling, by Scott Andrew
 */
function addEvent(element, eventType, lamdaFunction, useCapture) {
	if (element.addEventListener) {
		element.addEventListener(eventType, lamdaFunction, useCapture);
		return true;
	} else if (element.attachEvent) {
		var r = element.attachEvent('on' + eventType, lamdaFunction);
		return r;
	} else {
		return false;
	}
}

/*
 * Kills an event's propagation and default action
 */
function knackerEvent(eventObject) {
	if (eventObject && eventObject.stopPropagation) {
		eventObject.stopPropagation();
	}
	if (window.event && window.event.cancelBubble ) {
		window.event.cancelBubble = true;
	}

	if (eventObject && eventObject.preventDefault) {
		eventObject.preventDefault();
	}
	if (window.event) {
		window.event.returnValue = false;
	}
}


/*
 * Safari doesn't support canceling events in the standard way, so we must
 * hard-code a return of false for it to work.
 */
function cancelEventSafari() {
	return false;
}

/*
 * Cross-browser style extraction, from the JavaScript & DHTML Cookbook
 * <http://www.oreillynet.com/pub/a/javascript/excerpt/JSDHTMLCkbk_chap5/index5.html>
 */
function getElementStyle(elementID, CssStyleProperty) {
	var element = document.getElementById(elementID);
	if (element.currentStyle) {
		return element.currentStyle[toCamelCase(CssStyleProperty)];
	} else if (window.getComputedStyle) {
		var compStyle = window.getComputedStyle(element, '');
		return compStyle.getPropertyValue(CssStyleProperty);
	} else {
		return '';
	}
}

/*
 * CamelCases CSS property names. Useful in conjunction with 'getElementStyle()'
 * From <http://dhtmlkitchen.com/learn/js/setstyle/index4.jsp>
 */
function toCamelCase(CssProperty) {
	var stringArray = CssProperty.toLowerCase().split('-');
	if (stringArray.length == 1) {
		return stringArray[0];
	}
	var ret = (CssProperty.indexOf("-") == 0)
	? stringArray[0].charAt(0).toUpperCase() + stringArray[0].substring(1)
	: stringArray[0];
	for (var i = 1; i < stringArray.length; i++) {
		var s = stringArray[i];
		ret += s.charAt(0).toUpperCase() + s.substring(1);
	}
	return ret;
}

/*
 * Disables all 'test' links, that point to the href '#', by Ross Shannon
 */
function disableTestLinks() {
	var pageLinks = document.getElementsByTagName('a');
	for (var i=0; i<pageLinks.length; i++) {
		if (pageLinks[i].href.match(/[^#]#$/)) {
			addEvent(pageLinks[i], 'click', knackerEvent, false);
		}
	}
}


addEvent(window, 'load', init, false);

function init() {
	var formInputs = document.getElementsByTagName('input');
	for (var i = 0; i < formInputs.length; i++) {
		var theInput = formInputs[i];

		if (theInput.type == 'text' ) {
			/* Add event handlers */
			addEvent(theInput, 'focus', clearDefaultText, false);
			addEvent(theInput, 'blur', replaceDefaultText, false);

			/* Save the current value */
			if (theInput.value != '') {
				theInput.defaultText = theInput.value;
			}
		}
	}
	var textAreaInputs = document.getElementsByTagName('textarea');
	for (var i = 0; i < textAreaInputs.length; i++) {
		var theInput = textAreaInputs[i];

		if (theInput.className.match(/\bcleardefault\b/)) {
			/* Add event handlers */
			addEvent(theInput, 'focus', clearDefaultText, false);
			addEvent(theInput, 'blur', replaceDefaultText, false);
			/* Save the current value */
			if (theInput.firstChild.nodeValue != '') {
				theInput.defaultText = theInput.firstChild.nodeValue;
			}
		}
	}
}


function clearDefaultText(e) {
	var target = window.event ? window.event.srcElement : e ? e.target : null;
	if (!target) return;


	if(target instanceof HTMLInputElement )
	{

		if (target.value == target.defaultText) {
			target.value = '';
		}
	}
	if(target instanceof HTMLTextAreaElement )
	{

		if (target.firstChild.nodeValue == target.defaultText) {
			target.firstChild.nodeValue = '';
		}
	}

}


function replaceDefaultText(e) {
	var target = window.event ? window.event.srcElement : e ? e.target : null;
	if (!target) return;
	if(target instanceof HTMLInputElement )
	{
		if (target.value == '' && target.defaultText) {
			target.value = target.defaultText;
		}
	}
	if(target instanceof HTMLTextAreaElement )
	{

		if (target.value == '' && target.defaultText) {
			target.firstChild.nodeValue = target.defaultText;
		}
	}

}

window.addEventListener("load", function() {
	var form = document.getElementById("pollform");
	if (form != null) {
		if (form.nodeName.toLowerCase() != "form") form = form.getElementsByTagName("form")[0];
		form.onsubmit = validatePoll;
	}
}, true);


function validatePoll() {
	var form = document.getElementById("pollform");
	if (form.nodeName.toLowerCase() != "form") form = form.getElementsByTagName("form")[0];
	var found = false;
	for (var i = 0; i < form.elements.length; i++) {
		var elem = form.elements[i];
		if (elem.name == "nb_pollAnswer" && elem.checked) {
			found = true;
			break;
		}
	}
	var e = document.getElementById("pollerror");
	e.innerHTML = "";
	if (!found) {
		e.appendChild(document.createTextNode("Please Make a Selection!"));
		Netbiscuits.slider.repositionArrows();
	//		e.style.display = null;
	//	} else {
	//		e.style.display = "none";
	}
	return found;
}

window.addEventListener("load", function() {
	var form = document.getElementById("subscribeForm");
	if (form != null) {
		if (form.nodeName.toLowerCase() != "form") form = form.getElementsByTagName("form")[0];
		form.onsubmit = validateSubscribe;
	}
}, true);
function validateSubscribe() {
	var form = document.getElementById("subscribeForm");
	if (form.nodeName.toLowerCase() != "form") form = form.getElementsByTagName("form")[0];
	var showSelected = false;
	var numberSet = false;
	for (var i = 0; i < form.elements.length; i++) {
		var elem = form.elements[i];
		if (elem.name == "subscribeTo") {
			if (elem.type == "checkbox" && elem.checked) {
				showSelected = true;
			} else if (elem.type == "hidden" && elem.value) {
				showSelected = true;
			}
		} else if (elem.name == "subscribeNumber") {
			if (elem.value) {
				numberSet = true;
			}
		}
	}
	var e = document.getElementById("subscribeerror");
	e.innerHTML = "";
	if (!showSelected) {
		e.appendChild(document.createTextNode("Please select a show."));
	}
	if (!numberSet) {
		if (!showSelected) {
			e.appendChild(document.createElement("br"));
		}
		e.appendChild(document.createTextNode("Please enter your mobile number."));
	}
	return showSelected && numberSet;
}


// -------------------------------
//            AJAX PART
// -------------------------------

window.addEventListener('load', function(event) {
	var click = function(parent) {
		var search = [parent];
		while(search.length > 0) {
			var node = search.pop();
			if (node.nodeType == Node.ELEMENT_NODE) {
				if ((node.nodeName+"").toLowerCase() == "a" && node.href) {
					window.location.href = node.href;
					return;
				}
				for (var child = node.firstChild; child != null; child = child.nextSibling) {
					search.push(child);
				}
			}
		}
		alert('no link found');
	};
	var nodes = document.querySelectorAll(".boxlink");
	for (var i = 0; i < nodes.length; i++) {
		(function(){
			var node = nodes[i];
			node.addEventListener('click', function (event) {
				click(node)
			}, true);
		})();
	}
}, false);



// ------------------------------------
// loads the biscuits into the new page
// ------------------------------------
function loadBiscuits(page, shownameAsId, photoAlbumId, photoId, biscuitId, referringLink){

	var remoteBiscuit = document.getElementById(biscuitId);
	if(remoteBiscuit){
		remoteBiscuit.className = "ajaxActive";
		this.remoteBiscuitId = biscuitId;
	}
	
	page = page + "?" + "shownameAsId=" + shownameAsId + "&" + "photoAlbumId=" + photoAlbumId + "&" + "photoId="+photoId+"&"+"referringLink=" + referringLink;
	
	//this ajax call is importend for sharing - If both parts are pulled together, the footer Carusel is not moved.
	Netbiscuits.core.ajax.getRemoteBiscuit("shareBar",page,"shareBar",1,null);
	
	Netbiscuits.core.ajax.getRemoteBiscuit(biscuitId,page,biscuitId,1,function(){
		window.location.href="#topHeadline_";
		window.location.hash="topHeadline_";
		window.location.href="#topHeadline";
		window.location.hash="topHeadline";
		var remoteBiscuit = document.getElementById(this.remoteBiscuitId);
		if(remoteBiscuit){
			remoteBiscuit.className = remoteBiscuit.className.replace("ajaxActive", "");
		}
		
		//for Like Button
		var likeURLDiv = document.getElementById("likeURL");
		var childnodes = likeURLDiv.childNodes;
		
		for(var i=0; i< childnodes.length; i++){
				if(childnodes[i].nodeValue && childnodes[i].nodeValue.search(/http:.*/)!=-1){
					addFacebookLikeButton(childnodes[i].nodeValue);
				}
		}
		
	});
	return false;
}


/* Fall Preview Form Submission Validation*/
function validateFallPreviewForm()
{
	/*check email*/
	var chk = document.forms[0]["email"].value;
	var atpos = chk.indexOf("@");
	var dotpos = chk.indexOf(".");
	if (atpos < 1 || dotpos+2>chk.length)
	{
		document.forms[0].action='';
		alert("Email address must be valid!");
		return false;
	}

	/*check phone number*/
	var chk = document.forms[0]["phone"].value;
	var phoneNumberPattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
	if (!phoneNumberPattern.test(chk)) 
	{
		document.forms[0].action='';
		alert("Invalid phone number!");
		return false;
	}

	/*check birthday*/
	if(!isValidDate(document.forms[0]["birthday"].value)){
		document.forms[0].action=''
		return false;
	}

	/*check name*/
	var chk = document.forms[0]["name"].value;
	if (chk == null || chk == "") {
		alert('Please enter your name!');
		document.forms[0].action='';
		return false;
	}

	document.forms[0].action='clickto';
	return true;
}


function isValidDate(dateStr) {
	// Checks for the following valid date formats:
	// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
	// Also separates date into month, day, and year variables
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
	// To require a 4 digit year entry, use this line instead:
	// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
		alert("Date is not in a valid format.")
		return false;
	}
	month = matchArray[1]; // parse date into variables
	day = matchArray[3];
	year = matchArray[4];
	if (month < 1 || month > 12) { // check month range
		alert("Month must be between 1 and 12.");
		return false;
	}
	if (day < 1 || day > 31) {
		alert("Day must be between 1 and 31.");
		return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("Month "+month+" doesn't have 31 days!")
		return false
	}
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			alert("February " + year + " doesn't have " + day + " days!");
			return false;
		}
	}
	return true;  // date is valid
}

